vulkan-198[G3]: guest codegen

Bug: 187216205
Change-Id: I26eff7a390f3fcce0d1c80e83c331173611bb50c
diff --git a/system/vulkan_enc/ResourceTracker.cpp b/system/vulkan_enc/ResourceTracker.cpp
index fcc4c42..cc7b71d 100644
--- a/system/vulkan_enc/ResourceTracker.cpp
+++ b/system/vulkan_enc/ResourceTracker.cpp
@@ -8288,7 +8288,9 @@
 void ResourceTracker::transformImpl_VkExternalMemoryProperties_tohost(
     VkExternalMemoryProperties*, uint32_t) {}
 
-void ResourceTracker::transformImpl_VkImageCreateInfo_tohost(VkImageCreateInfo*,
+void ResourceTracker::transformImpl_VkImageCreateInfo_fromhost(const VkImageCreateInfo*,
+                                                               uint32_t) {}
+void ResourceTracker::transformImpl_VkImageCreateInfo_tohost(const VkImageCreateInfo*,
                                                              uint32_t) {}
 
 #define DEFINE_TRANSFORMED_TYPE_IMPL(type)                                  \
diff --git a/system/vulkan_enc/ResourceTracker.h b/system/vulkan_enc/ResourceTracker.h
index af1c265..38a5800 100644
--- a/system/vulkan_enc/ResourceTracker.h
+++ b/system/vulkan_enc/ResourceTracker.h
@@ -641,7 +641,8 @@
     void transformImpl_VkExternalMemoryProperties_tohost(
         VkExternalMemoryProperties* pProperties,
         uint32_t);
-    void transformImpl_VkImageCreateInfo_tohost(VkImageCreateInfo*, uint32_t);
+    void transformImpl_VkImageCreateInfo_fromhost(const VkImageCreateInfo*, uint32_t);
+    void transformImpl_VkImageCreateInfo_tohost(const VkImageCreateInfo*, uint32_t);
 
 #define DEFINE_TRANSFORMED_TYPE_PROTOTYPE(type)          \
     void transformImpl_##type##_tohost(type*, uint32_t); \
diff --git a/system/vulkan_enc/VkEncoder.cpp b/system/vulkan_enc/VkEncoder.cpp
index 91a9708..bae084d 100644
--- a/system/vulkan_enc/VkEncoder.cpp
+++ b/system/vulkan_enc/VkEncoder.cpp
@@ -9460,7 +9460,12 @@
         uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkImageLayout);
-        count_VkClearColorValue(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkClearColorValue*)(local_pColor), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pColor)
+        {
+            count_VkClearColorValue(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkClearColorValue*)(local_pColor), countPtr);
+        }
         *countPtr += sizeof(uint32_t);
         for (uint32_t i = 0; i < (uint32_t)((rangeCount)); ++i)
         {
@@ -9487,7 +9492,15 @@
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkImageLayout*)&local_imageLayout, sizeof(VkImageLayout));
     *streamPtrPtr += sizeof(VkImageLayout);
-    reservedmarshal_VkClearColorValue(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkClearColorValue*)(local_pColor), streamPtrPtr);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pColor;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pColor)
+    {
+        reservedmarshal_VkClearColorValue(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkClearColorValue*)(local_pColor), streamPtrPtr);
+    }
     memcpy(*streamPtrPtr, (uint32_t*)&local_rangeCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
     for (uint32_t i = 0; i < (uint32_t)((rangeCount)); ++i)
@@ -16523,6 +16536,1123 @@
 #endif
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
+#ifdef VK_KHR_video_queue
+VkResult VkEncoder::vkGetPhysicalDeviceVideoCapabilitiesKHR(
+    VkPhysicalDevice physicalDevice,
+    const VkVideoProfileKHR* pVideoProfile,
+    VkVideoCapabilitiesKHR* pCapabilities,
+    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;
+    VkVideoProfileKHR* local_pVideoProfile;
+    local_physicalDevice = physicalDevice;
+    local_pVideoProfile = nullptr;
+    if (pVideoProfile)
+    {
+        local_pVideoProfile = (VkVideoProfileKHR*)pool->alloc(sizeof(const VkVideoProfileKHR));
+        deepcopy_VkVideoProfileKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pVideoProfile, (VkVideoProfileKHR*)(local_pVideoProfile));
+    }
+    if (local_pVideoProfile)
+    {
+        transform_tohost_VkVideoProfileKHR(sResourceTracker, (VkVideoProfileKHR*)(local_pVideoProfile));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkVideoProfileKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoProfileKHR*)(local_pVideoProfile), countPtr);
+        count_VkVideoCapabilitiesKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoCapabilitiesKHR*)(pCapabilities), countPtr);
+    }
+    uint32_t packetSize_vkGetPhysicalDeviceVideoCapabilitiesKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetPhysicalDeviceVideoCapabilitiesKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetPhysicalDeviceVideoCapabilitiesKHR = OP_vkGetPhysicalDeviceVideoCapabilitiesKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetPhysicalDeviceVideoCapabilitiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceVideoCapabilitiesKHR, 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_VkVideoProfileKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoProfileKHR*)(local_pVideoProfile), streamPtrPtr);
+    reservedmarshal_VkVideoCapabilitiesKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoCapabilitiesKHR*)(pCapabilities), streamPtrPtr);
+    unmarshal_VkVideoCapabilitiesKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoCapabilitiesKHR*)(pCapabilities));
+    if (pCapabilities)
+    {
+        transform_fromhost_VkVideoCapabilitiesKHR(sResourceTracker, (VkVideoCapabilitiesKHR*)(pCapabilities));
+    }
+    VkResult vkGetPhysicalDeviceVideoCapabilitiesKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkGetPhysicalDeviceVideoCapabilitiesKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetPhysicalDeviceVideoCapabilitiesKHR_VkResult_return;
+}
+
+VkResult VkEncoder::vkGetPhysicalDeviceVideoFormatPropertiesKHR(
+    VkPhysicalDevice physicalDevice,
+    const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo,
+    uint32_t* pVideoFormatPropertyCount,
+    VkVideoFormatPropertiesKHR* pVideoFormatProperties,
+    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;
+    VkPhysicalDeviceVideoFormatInfoKHR* local_pVideoFormatInfo;
+    local_physicalDevice = physicalDevice;
+    local_pVideoFormatInfo = nullptr;
+    if (pVideoFormatInfo)
+    {
+        local_pVideoFormatInfo = (VkPhysicalDeviceVideoFormatInfoKHR*)pool->alloc(sizeof(const VkPhysicalDeviceVideoFormatInfoKHR));
+        deepcopy_VkPhysicalDeviceVideoFormatInfoKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pVideoFormatInfo, (VkPhysicalDeviceVideoFormatInfoKHR*)(local_pVideoFormatInfo));
+    }
+    if (local_pVideoFormatInfo)
+    {
+        transform_tohost_VkPhysicalDeviceVideoFormatInfoKHR(sResourceTracker, (VkPhysicalDeviceVideoFormatInfoKHR*)(local_pVideoFormatInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkPhysicalDeviceVideoFormatInfoKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkPhysicalDeviceVideoFormatInfoKHR*)(local_pVideoFormatInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pVideoFormatPropertyCount)
+        {
+            *countPtr += sizeof(uint32_t);
+        }
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pVideoFormatProperties)
+        {
+            if (pVideoFormatPropertyCount)
+            {
+                for (uint32_t i = 0; i < (uint32_t)(*(pVideoFormatPropertyCount)); ++i)
+                {
+                    count_VkVideoFormatPropertiesKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoFormatPropertiesKHR*)(pVideoFormatProperties + i), countPtr);
+                }
+            }
+        }
+    }
+    uint32_t packetSize_vkGetPhysicalDeviceVideoFormatPropertiesKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetPhysicalDeviceVideoFormatPropertiesKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetPhysicalDeviceVideoFormatPropertiesKHR = OP_vkGetPhysicalDeviceVideoFormatPropertiesKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetPhysicalDeviceVideoFormatPropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceVideoFormatPropertiesKHR, 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_VkPhysicalDeviceVideoFormatInfoKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkPhysicalDeviceVideoFormatInfoKHR*)(local_pVideoFormatInfo), streamPtrPtr);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pVideoFormatPropertyCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pVideoFormatPropertyCount)
+    {
+        memcpy(*streamPtrPtr, (uint32_t*)pVideoFormatPropertyCount, sizeof(uint32_t));
+        *streamPtrPtr += sizeof(uint32_t);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pVideoFormatProperties;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pVideoFormatProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pVideoFormatPropertyCount)); ++i)
+        {
+            reservedmarshal_VkVideoFormatPropertiesKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoFormatPropertiesKHR*)(pVideoFormatProperties + i), streamPtrPtr);
+        }
+    }
+    // WARNING PTR CHECK
+    uint32_t* check_pVideoFormatPropertyCount;
+    check_pVideoFormatPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
+    if (pVideoFormatPropertyCount)
+    {
+        if (!(check_pVideoFormatPropertyCount))
+        {
+            fprintf(stderr, "fatal: pVideoFormatPropertyCount inconsistent between guest and host\n");
+        }
+        stream->read((uint32_t*)pVideoFormatPropertyCount, sizeof(uint32_t));
+    }
+    // WARNING PTR CHECK
+    VkVideoFormatPropertiesKHR* check_pVideoFormatProperties;
+    check_pVideoFormatProperties = (VkVideoFormatPropertiesKHR*)(uintptr_t)stream->getBe64();
+    if (pVideoFormatProperties)
+    {
+        if (!(check_pVideoFormatProperties))
+        {
+            fprintf(stderr, "fatal: pVideoFormatProperties inconsistent between guest and host\n");
+        }
+        if (pVideoFormatPropertyCount)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pVideoFormatPropertyCount)); ++i)
+            {
+                unmarshal_VkVideoFormatPropertiesKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoFormatPropertiesKHR*)(pVideoFormatProperties + i));
+            }
+        }
+    }
+    if (pVideoFormatPropertyCount)
+    {
+        if (pVideoFormatProperties)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pVideoFormatPropertyCount)); ++i)
+            {
+                transform_fromhost_VkVideoFormatPropertiesKHR(sResourceTracker, (VkVideoFormatPropertiesKHR*)(pVideoFormatProperties + i));
+            }
+        }
+    }
+    VkResult vkGetPhysicalDeviceVideoFormatPropertiesKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkGetPhysicalDeviceVideoFormatPropertiesKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetPhysicalDeviceVideoFormatPropertiesKHR_VkResult_return;
+}
+
+VkResult VkEncoder::vkCreateVideoSessionKHR(
+    VkDevice device,
+    const VkVideoSessionCreateInfoKHR* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkVideoSessionKHR* pVideoSession,
+    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;
+    VkVideoSessionCreateInfoKHR* local_pCreateInfo;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_pCreateInfo = nullptr;
+    if (pCreateInfo)
+    {
+        local_pCreateInfo = (VkVideoSessionCreateInfoKHR*)pool->alloc(sizeof(const VkVideoSessionCreateInfoKHR));
+        deepcopy_VkVideoSessionCreateInfoKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pCreateInfo, (VkVideoSessionCreateInfoKHR*)(local_pCreateInfo));
+    }
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pCreateInfo)
+    {
+        transform_tohost_VkVideoSessionCreateInfoKHR(sResourceTracker, (VkVideoSessionCreateInfoKHR*)(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_VkVideoSessionCreateInfoKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoSessionCreateInfoKHR*)(local_pCreateInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkCreateVideoSessionKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateVideoSessionKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCreateVideoSessionKHR = OP_vkCreateVideoSessionKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCreateVideoSessionKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCreateVideoSessionKHR, 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_VkVideoSessionCreateInfoKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoSessionCreateInfoKHR*)(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, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    uint64_t cgen_var_2 = (uint64_t)(*pVideoSession);
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    (*pVideoSession) = (VkVideoSessionKHR)stream->getBe64();
+    VkResult vkCreateVideoSessionKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkCreateVideoSessionKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCreateVideoSessionKHR_VkResult_return;
+}
+
+void VkEncoder::vkDestroyVideoSessionKHR(
+    VkDevice device,
+    VkVideoSessionKHR videoSession,
+    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;
+    VkVideoSessionKHR local_videoSession;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_videoSession = videoSession;
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, VK_STRUCTURE_TYPE_MAX_ENUM, 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, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+    }
+    uint32_t packetSize_vkDestroyVideoSessionKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkDestroyVideoSessionKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkDestroyVideoSessionKHR = OP_vkDestroyVideoSessionKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkDestroyVideoSessionKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkDestroyVideoSessionKHR, 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_videoSession;
+    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, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    stream->flush();
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+VkResult VkEncoder::vkGetVideoSessionMemoryRequirementsKHR(
+    VkDevice device,
+    VkVideoSessionKHR videoSession,
+    uint32_t* pVideoSessionMemoryRequirementsCount,
+    VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements,
+    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;
+    VkVideoSessionKHR local_videoSession;
+    local_device = device;
+    local_videoSession = videoSession;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += 8;
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pVideoSessionMemoryRequirementsCount)
+        {
+            *countPtr += sizeof(uint32_t);
+        }
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pVideoSessionMemoryRequirements)
+        {
+            if (pVideoSessionMemoryRequirementsCount)
+            {
+                for (uint32_t i = 0; i < (uint32_t)(*(pVideoSessionMemoryRequirementsCount)); ++i)
+                {
+                    count_VkVideoGetMemoryPropertiesKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoGetMemoryPropertiesKHR*)(pVideoSessionMemoryRequirements + i), countPtr);
+                }
+            }
+        }
+    }
+    uint32_t packetSize_vkGetVideoSessionMemoryRequirementsKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetVideoSessionMemoryRequirementsKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetVideoSessionMemoryRequirementsKHR = OP_vkGetVideoSessionMemoryRequirementsKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetVideoSessionMemoryRequirementsKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetVideoSessionMemoryRequirementsKHR, 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_videoSession;
+    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)pVideoSessionMemoryRequirementsCount;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pVideoSessionMemoryRequirementsCount)
+    {
+        memcpy(*streamPtrPtr, (uint32_t*)pVideoSessionMemoryRequirementsCount, sizeof(uint32_t));
+        *streamPtrPtr += sizeof(uint32_t);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)pVideoSessionMemoryRequirements;
+    memcpy((*streamPtrPtr), &cgen_var_3, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pVideoSessionMemoryRequirements)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pVideoSessionMemoryRequirementsCount)); ++i)
+        {
+            reservedmarshal_VkVideoGetMemoryPropertiesKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoGetMemoryPropertiesKHR*)(pVideoSessionMemoryRequirements + i), streamPtrPtr);
+        }
+    }
+    // WARNING PTR CHECK
+    uint32_t* check_pVideoSessionMemoryRequirementsCount;
+    check_pVideoSessionMemoryRequirementsCount = (uint32_t*)(uintptr_t)stream->getBe64();
+    if (pVideoSessionMemoryRequirementsCount)
+    {
+        if (!(check_pVideoSessionMemoryRequirementsCount))
+        {
+            fprintf(stderr, "fatal: pVideoSessionMemoryRequirementsCount inconsistent between guest and host\n");
+        }
+        stream->read((uint32_t*)pVideoSessionMemoryRequirementsCount, sizeof(uint32_t));
+    }
+    // WARNING PTR CHECK
+    VkVideoGetMemoryPropertiesKHR* check_pVideoSessionMemoryRequirements;
+    check_pVideoSessionMemoryRequirements = (VkVideoGetMemoryPropertiesKHR*)(uintptr_t)stream->getBe64();
+    if (pVideoSessionMemoryRequirements)
+    {
+        if (!(check_pVideoSessionMemoryRequirements))
+        {
+            fprintf(stderr, "fatal: pVideoSessionMemoryRequirements inconsistent between guest and host\n");
+        }
+        if (pVideoSessionMemoryRequirementsCount)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pVideoSessionMemoryRequirementsCount)); ++i)
+            {
+                unmarshal_VkVideoGetMemoryPropertiesKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoGetMemoryPropertiesKHR*)(pVideoSessionMemoryRequirements + i));
+            }
+        }
+    }
+    if (pVideoSessionMemoryRequirementsCount)
+    {
+        if (pVideoSessionMemoryRequirements)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pVideoSessionMemoryRequirementsCount)); ++i)
+            {
+                transform_fromhost_VkVideoGetMemoryPropertiesKHR(sResourceTracker, (VkVideoGetMemoryPropertiesKHR*)(pVideoSessionMemoryRequirements + i));
+            }
+        }
+    }
+    VkResult vkGetVideoSessionMemoryRequirementsKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkGetVideoSessionMemoryRequirementsKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetVideoSessionMemoryRequirementsKHR_VkResult_return;
+}
+
+VkResult VkEncoder::vkBindVideoSessionMemoryKHR(
+    VkDevice device,
+    VkVideoSessionKHR videoSession,
+    uint32_t videoSessionBindMemoryCount,
+    const VkVideoBindMemoryKHR* pVideoSessionBindMemories,
+    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;
+    VkVideoSessionKHR local_videoSession;
+    uint32_t local_videoSessionBindMemoryCount;
+    VkVideoBindMemoryKHR* local_pVideoSessionBindMemories;
+    local_device = device;
+    local_videoSession = videoSession;
+    local_videoSessionBindMemoryCount = videoSessionBindMemoryCount;
+    local_pVideoSessionBindMemories = nullptr;
+    if (pVideoSessionBindMemories)
+    {
+        local_pVideoSessionBindMemories = (VkVideoBindMemoryKHR*)pool->alloc(((videoSessionBindMemoryCount)) * sizeof(const VkVideoBindMemoryKHR));
+        for (uint32_t i = 0; i < (uint32_t)((videoSessionBindMemoryCount)); ++i)
+        {
+            deepcopy_VkVideoBindMemoryKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pVideoSessionBindMemories + i, (VkVideoBindMemoryKHR*)(local_pVideoSessionBindMemories + i));
+        }
+    }
+    if (local_pVideoSessionBindMemories)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((videoSessionBindMemoryCount)); ++i)
+        {
+            transform_tohost_VkVideoBindMemoryKHR(sResourceTracker, (VkVideoBindMemoryKHR*)(local_pVideoSessionBindMemories + i));
+        }
+    }
+    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)((videoSessionBindMemoryCount)); ++i)
+        {
+            count_VkVideoBindMemoryKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoBindMemoryKHR*)(local_pVideoSessionBindMemories + i), countPtr);
+        }
+    }
+    uint32_t packetSize_vkBindVideoSessionMemoryKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkBindVideoSessionMemoryKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkBindVideoSessionMemoryKHR = OP_vkBindVideoSessionMemoryKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkBindVideoSessionMemoryKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkBindVideoSessionMemoryKHR, 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_videoSession;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_videoSessionBindMemoryCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)((videoSessionBindMemoryCount)); ++i)
+    {
+        reservedmarshal_VkVideoBindMemoryKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoBindMemoryKHR*)(local_pVideoSessionBindMemories + i), streamPtrPtr);
+    }
+    VkResult vkBindVideoSessionMemoryKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkBindVideoSessionMemoryKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkBindVideoSessionMemoryKHR_VkResult_return;
+}
+
+VkResult VkEncoder::vkCreateVideoSessionParametersKHR(
+    VkDevice device,
+    const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkVideoSessionParametersKHR* pVideoSessionParameters,
+    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;
+    VkVideoSessionParametersCreateInfoKHR* local_pCreateInfo;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_pCreateInfo = nullptr;
+    if (pCreateInfo)
+    {
+        local_pCreateInfo = (VkVideoSessionParametersCreateInfoKHR*)pool->alloc(sizeof(const VkVideoSessionParametersCreateInfoKHR));
+        deepcopy_VkVideoSessionParametersCreateInfoKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pCreateInfo, (VkVideoSessionParametersCreateInfoKHR*)(local_pCreateInfo));
+    }
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pCreateInfo)
+    {
+        transform_tohost_VkVideoSessionParametersCreateInfoKHR(sResourceTracker, (VkVideoSessionParametersCreateInfoKHR*)(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_VkVideoSessionParametersCreateInfoKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoSessionParametersCreateInfoKHR*)(local_pCreateInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkCreateVideoSessionParametersKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateVideoSessionParametersKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCreateVideoSessionParametersKHR = OP_vkCreateVideoSessionParametersKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCreateVideoSessionParametersKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCreateVideoSessionParametersKHR, 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_VkVideoSessionParametersCreateInfoKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoSessionParametersCreateInfoKHR*)(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, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    uint64_t cgen_var_2 = (uint64_t)(*pVideoSessionParameters);
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    (*pVideoSessionParameters) = (VkVideoSessionParametersKHR)stream->getBe64();
+    VkResult vkCreateVideoSessionParametersKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkCreateVideoSessionParametersKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCreateVideoSessionParametersKHR_VkResult_return;
+}
+
+VkResult VkEncoder::vkUpdateVideoSessionParametersKHR(
+    VkDevice device,
+    VkVideoSessionParametersKHR videoSessionParameters,
+    const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo,
+    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;
+    VkVideoSessionParametersKHR local_videoSessionParameters;
+    VkVideoSessionParametersUpdateInfoKHR* local_pUpdateInfo;
+    local_device = device;
+    local_videoSessionParameters = videoSessionParameters;
+    local_pUpdateInfo = nullptr;
+    if (pUpdateInfo)
+    {
+        local_pUpdateInfo = (VkVideoSessionParametersUpdateInfoKHR*)pool->alloc(sizeof(const VkVideoSessionParametersUpdateInfoKHR));
+        deepcopy_VkVideoSessionParametersUpdateInfoKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pUpdateInfo, (VkVideoSessionParametersUpdateInfoKHR*)(local_pUpdateInfo));
+    }
+    if (local_pUpdateInfo)
+    {
+        transform_tohost_VkVideoSessionParametersUpdateInfoKHR(sResourceTracker, (VkVideoSessionParametersUpdateInfoKHR*)(local_pUpdateInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += 8;
+        count_VkVideoSessionParametersUpdateInfoKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoSessionParametersUpdateInfoKHR*)(local_pUpdateInfo), countPtr);
+    }
+    uint32_t packetSize_vkUpdateVideoSessionParametersKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkUpdateVideoSessionParametersKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkUpdateVideoSessionParametersKHR = OP_vkUpdateVideoSessionParametersKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkUpdateVideoSessionParametersKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkUpdateVideoSessionParametersKHR, 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_videoSessionParameters;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    reservedmarshal_VkVideoSessionParametersUpdateInfoKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoSessionParametersUpdateInfoKHR*)(local_pUpdateInfo), streamPtrPtr);
+    VkResult vkUpdateVideoSessionParametersKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkUpdateVideoSessionParametersKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkUpdateVideoSessionParametersKHR_VkResult_return;
+}
+
+void VkEncoder::vkDestroyVideoSessionParametersKHR(
+    VkDevice device,
+    VkVideoSessionParametersKHR videoSessionParameters,
+    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;
+    VkVideoSessionParametersKHR local_videoSessionParameters;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_videoSessionParameters = videoSessionParameters;
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, VK_STRUCTURE_TYPE_MAX_ENUM, 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, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+    }
+    uint32_t packetSize_vkDestroyVideoSessionParametersKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkDestroyVideoSessionParametersKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkDestroyVideoSessionParametersKHR = OP_vkDestroyVideoSessionParametersKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkDestroyVideoSessionParametersKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkDestroyVideoSessionParametersKHR, 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_videoSessionParameters;
+    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, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    stream->flush();
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdBeginVideoCodingKHR(
+    VkCommandBuffer commandBuffer,
+    const VkVideoBeginCodingInfoKHR* pBeginInfo,
+    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;
+    VkVideoBeginCodingInfoKHR* local_pBeginInfo;
+    local_commandBuffer = commandBuffer;
+    local_pBeginInfo = nullptr;
+    if (pBeginInfo)
+    {
+        local_pBeginInfo = (VkVideoBeginCodingInfoKHR*)pool->alloc(sizeof(const VkVideoBeginCodingInfoKHR));
+        deepcopy_VkVideoBeginCodingInfoKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pBeginInfo, (VkVideoBeginCodingInfoKHR*)(local_pBeginInfo));
+    }
+    if (local_pBeginInfo)
+    {
+        transform_tohost_VkVideoBeginCodingInfoKHR(sResourceTracker, (VkVideoBeginCodingInfoKHR*)(local_pBeginInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkVideoBeginCodingInfoKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoBeginCodingInfoKHR*)(local_pBeginInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdBeginVideoCodingKHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdBeginVideoCodingKHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdBeginVideoCodingKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdBeginVideoCodingKHR = OP_vkCmdBeginVideoCodingKHR;
+    memcpy(streamPtr, &opcode_vkCmdBeginVideoCodingKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdBeginVideoCodingKHR, 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_VkVideoBeginCodingInfoKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoBeginCodingInfoKHR*)(local_pBeginInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdEndVideoCodingKHR(
+    VkCommandBuffer commandBuffer,
+    const VkVideoEndCodingInfoKHR* pEndCodingInfo,
+    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;
+    VkVideoEndCodingInfoKHR* local_pEndCodingInfo;
+    local_commandBuffer = commandBuffer;
+    local_pEndCodingInfo = nullptr;
+    if (pEndCodingInfo)
+    {
+        local_pEndCodingInfo = (VkVideoEndCodingInfoKHR*)pool->alloc(sizeof(const VkVideoEndCodingInfoKHR));
+        deepcopy_VkVideoEndCodingInfoKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pEndCodingInfo, (VkVideoEndCodingInfoKHR*)(local_pEndCodingInfo));
+    }
+    if (local_pEndCodingInfo)
+    {
+        transform_tohost_VkVideoEndCodingInfoKHR(sResourceTracker, (VkVideoEndCodingInfoKHR*)(local_pEndCodingInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkVideoEndCodingInfoKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoEndCodingInfoKHR*)(local_pEndCodingInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdEndVideoCodingKHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdEndVideoCodingKHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdEndVideoCodingKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdEndVideoCodingKHR = OP_vkCmdEndVideoCodingKHR;
+    memcpy(streamPtr, &opcode_vkCmdEndVideoCodingKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdEndVideoCodingKHR, 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_VkVideoEndCodingInfoKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoEndCodingInfoKHR*)(local_pEndCodingInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdControlVideoCodingKHR(
+    VkCommandBuffer commandBuffer,
+    const VkVideoCodingControlInfoKHR* pCodingControlInfo,
+    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;
+    VkVideoCodingControlInfoKHR* local_pCodingControlInfo;
+    local_commandBuffer = commandBuffer;
+    local_pCodingControlInfo = nullptr;
+    if (pCodingControlInfo)
+    {
+        local_pCodingControlInfo = (VkVideoCodingControlInfoKHR*)pool->alloc(sizeof(const VkVideoCodingControlInfoKHR));
+        deepcopy_VkVideoCodingControlInfoKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pCodingControlInfo, (VkVideoCodingControlInfoKHR*)(local_pCodingControlInfo));
+    }
+    if (local_pCodingControlInfo)
+    {
+        transform_tohost_VkVideoCodingControlInfoKHR(sResourceTracker, (VkVideoCodingControlInfoKHR*)(local_pCodingControlInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkVideoCodingControlInfoKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoCodingControlInfoKHR*)(local_pCodingControlInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdControlVideoCodingKHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdControlVideoCodingKHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdControlVideoCodingKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdControlVideoCodingKHR = OP_vkCmdControlVideoCodingKHR;
+    memcpy(streamPtr, &opcode_vkCmdControlVideoCodingKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdControlVideoCodingKHR, 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_VkVideoCodingControlInfoKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoCodingControlInfoKHR*)(local_pCodingControlInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_KHR_video_decode_queue
+void VkEncoder::vkCmdDecodeVideoKHR(
+    VkCommandBuffer commandBuffer,
+    const VkVideoDecodeInfoKHR* pFrameInfo,
+    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;
+    VkVideoDecodeInfoKHR* local_pFrameInfo;
+    local_commandBuffer = commandBuffer;
+    local_pFrameInfo = nullptr;
+    if (pFrameInfo)
+    {
+        local_pFrameInfo = (VkVideoDecodeInfoKHR*)pool->alloc(sizeof(const VkVideoDecodeInfoKHR));
+        deepcopy_VkVideoDecodeInfoKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pFrameInfo, (VkVideoDecodeInfoKHR*)(local_pFrameInfo));
+    }
+    if (local_pFrameInfo)
+    {
+        transform_tohost_VkVideoDecodeInfoKHR(sResourceTracker, (VkVideoDecodeInfoKHR*)(local_pFrameInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkVideoDecodeInfoKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoDecodeInfoKHR*)(local_pFrameInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdDecodeVideoKHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdDecodeVideoKHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdDecodeVideoKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdDecodeVideoKHR = OP_vkCmdDecodeVideoKHR;
+    memcpy(streamPtr, &opcode_vkCmdDecodeVideoKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdDecodeVideoKHR, 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_VkVideoDecodeInfoKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoDecodeInfoKHR*)(local_pFrameInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_KHR_dynamic_rendering
+void VkEncoder::vkCmdBeginRenderingKHR(
+    VkCommandBuffer commandBuffer,
+    const VkRenderingInfoKHR* pRenderingInfo,
+    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;
+    VkRenderingInfoKHR* local_pRenderingInfo;
+    local_commandBuffer = commandBuffer;
+    local_pRenderingInfo = nullptr;
+    if (pRenderingInfo)
+    {
+        local_pRenderingInfo = (VkRenderingInfoKHR*)pool->alloc(sizeof(const VkRenderingInfoKHR));
+        deepcopy_VkRenderingInfoKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pRenderingInfo, (VkRenderingInfoKHR*)(local_pRenderingInfo));
+    }
+    if (local_pRenderingInfo)
+    {
+        transform_tohost_VkRenderingInfoKHR(sResourceTracker, (VkRenderingInfoKHR*)(local_pRenderingInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkRenderingInfoKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkRenderingInfoKHR*)(local_pRenderingInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdBeginRenderingKHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdBeginRenderingKHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdBeginRenderingKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdBeginRenderingKHR = OP_vkCmdBeginRenderingKHR;
+    memcpy(streamPtr, &opcode_vkCmdBeginRenderingKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdBeginRenderingKHR, 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_VkRenderingInfoKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkRenderingInfoKHR*)(local_pRenderingInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdEndRenderingKHR(
+    VkCommandBuffer commandBuffer,
+    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;
+    local_commandBuffer = commandBuffer;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+    }
+    uint32_t packetSize_vkCmdEndRenderingKHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdEndRenderingKHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdEndRenderingKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdEndRenderingKHR = OP_vkCmdEndRenderingKHR;
+    memcpy(streamPtr, &opcode_vkCmdEndRenderingKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdEndRenderingKHR, 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;
+    }
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
 #ifdef VK_KHR_multiview
 #endif
 #ifdef VK_KHR_get_physical_device_properties2
@@ -21260,6 +22390,70 @@
 #endif
 #ifdef VK_KHR_separate_depth_stencil_layouts
 #endif
+#ifdef VK_KHR_present_wait
+VkResult VkEncoder::vkWaitForPresentKHR(
+    VkDevice device,
+    VkSwapchainKHR swapchain,
+    uint64_t presentId,
+    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;
+    VkSwapchainKHR local_swapchain;
+    uint64_t local_presentId;
+    uint64_t local_timeout;
+    local_device = device;
+    local_swapchain = swapchain;
+    local_presentId = presentId;
+    local_timeout = timeout;
+    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);
+        *countPtr += sizeof(uint64_t);
+    }
+    uint32_t packetSize_vkWaitForPresentKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkWaitForPresentKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkWaitForPresentKHR = OP_vkWaitForPresentKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkWaitForPresentKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkWaitForPresentKHR, 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, (uint64_t*)&local_presentId, sizeof(uint64_t));
+    *streamPtrPtr += sizeof(uint64_t);
+    memcpy(*streamPtrPtr, (uint64_t*)&local_timeout, sizeof(uint64_t));
+    *streamPtrPtr += sizeof(uint64_t);
+    VkResult vkWaitForPresentKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkWaitForPresentKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkWaitForPresentKHR_VkResult_return;
+}
+
+#endif
 #ifdef VK_KHR_uniform_buffer_standard_layout
 #endif
 #ifdef VK_KHR_buffer_device_address
@@ -22136,10 +23330,668 @@
 }
 
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+#endif
 #ifdef VK_KHR_pipeline_library
 #endif
 #ifdef VK_KHR_shader_non_semantic_info
 #endif
+#ifdef VK_KHR_present_id
+#endif
+#ifdef VK_KHR_video_encode_queue
+void VkEncoder::vkCmdEncodeVideoKHR(
+    VkCommandBuffer commandBuffer,
+    const VkVideoEncodeInfoKHR* pEncodeInfo,
+    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;
+    VkVideoEncodeInfoKHR* local_pEncodeInfo;
+    local_commandBuffer = commandBuffer;
+    local_pEncodeInfo = nullptr;
+    if (pEncodeInfo)
+    {
+        local_pEncodeInfo = (VkVideoEncodeInfoKHR*)pool->alloc(sizeof(const VkVideoEncodeInfoKHR));
+        deepcopy_VkVideoEncodeInfoKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pEncodeInfo, (VkVideoEncodeInfoKHR*)(local_pEncodeInfo));
+    }
+    if (local_pEncodeInfo)
+    {
+        transform_tohost_VkVideoEncodeInfoKHR(sResourceTracker, (VkVideoEncodeInfoKHR*)(local_pEncodeInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkVideoEncodeInfoKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoEncodeInfoKHR*)(local_pEncodeInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdEncodeVideoKHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdEncodeVideoKHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdEncodeVideoKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdEncodeVideoKHR = OP_vkCmdEncodeVideoKHR;
+    memcpy(streamPtr, &opcode_vkCmdEncodeVideoKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdEncodeVideoKHR, 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_VkVideoEncodeInfoKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVideoEncodeInfoKHR*)(local_pEncodeInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_KHR_synchronization2
+void VkEncoder::vkCmdSetEvent2KHR(
+    VkCommandBuffer commandBuffer,
+    VkEvent event,
+    const VkDependencyInfoKHR* pDependencyInfo,
+    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;
+    VkEvent local_event;
+    VkDependencyInfoKHR* local_pDependencyInfo;
+    local_commandBuffer = commandBuffer;
+    local_event = event;
+    local_pDependencyInfo = nullptr;
+    if (pDependencyInfo)
+    {
+        local_pDependencyInfo = (VkDependencyInfoKHR*)pool->alloc(sizeof(const VkDependencyInfoKHR));
+        deepcopy_VkDependencyInfoKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pDependencyInfo, (VkDependencyInfoKHR*)(local_pDependencyInfo));
+    }
+    if (local_pDependencyInfo)
+    {
+        transform_tohost_VkDependencyInfoKHR(sResourceTracker, (VkDependencyInfoKHR*)(local_pDependencyInfo));
+    }
+    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_VkDependencyInfoKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkDependencyInfoKHR*)(local_pDependencyInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdSetEvent2KHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetEvent2KHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetEvent2KHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetEvent2KHR = OP_vkCmdSetEvent2KHR;
+    memcpy(streamPtr, &opcode_vkCmdSetEvent2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetEvent2KHR, 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_VkEvent((*&local_event));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkDependencyInfoKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkDependencyInfoKHR*)(local_pDependencyInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdResetEvent2KHR(
+    VkCommandBuffer commandBuffer,
+    VkEvent event,
+    VkPipelineStageFlags2KHR stageMask,
+    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;
+    VkEvent local_event;
+    VkPipelineStageFlags2KHR local_stageMask;
+    local_commandBuffer = commandBuffer;
+    local_event = event;
+    local_stageMask = stageMask;
+    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(VkPipelineStageFlags2KHR);
+    }
+    uint32_t packetSize_vkCmdResetEvent2KHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdResetEvent2KHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdResetEvent2KHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdResetEvent2KHR = OP_vkCmdResetEvent2KHR;
+    memcpy(streamPtr, &opcode_vkCmdResetEvent2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdResetEvent2KHR, 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_VkEvent((*&local_event));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkPipelineStageFlags2KHR*)&local_stageMask, sizeof(VkPipelineStageFlags2KHR));
+    *streamPtrPtr += sizeof(VkPipelineStageFlags2KHR);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdWaitEvents2KHR(
+    VkCommandBuffer commandBuffer,
+    uint32_t eventCount,
+    const VkEvent* pEvents,
+    const VkDependencyInfoKHR* pDependencyInfos,
+    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_eventCount;
+    VkEvent* local_pEvents;
+    VkDependencyInfoKHR* local_pDependencyInfos;
+    local_commandBuffer = commandBuffer;
+    local_eventCount = eventCount;
+    // Avoiding deepcopy for pEvents
+    local_pEvents = (VkEvent*)pEvents;
+    local_pDependencyInfos = nullptr;
+    if (pDependencyInfos)
+    {
+        local_pDependencyInfos = (VkDependencyInfoKHR*)pool->alloc(((eventCount)) * sizeof(const VkDependencyInfoKHR));
+        for (uint32_t i = 0; i < (uint32_t)((eventCount)); ++i)
+        {
+            deepcopy_VkDependencyInfoKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pDependencyInfos + i, (VkDependencyInfoKHR*)(local_pDependencyInfos + i));
+        }
+    }
+    if (local_pDependencyInfos)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((eventCount)); ++i)
+        {
+            transform_tohost_VkDependencyInfoKHR(sResourceTracker, (VkDependencyInfoKHR*)(local_pDependencyInfos + i));
+        }
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        if (((eventCount)))
+        {
+            *countPtr += ((eventCount)) * 8;
+        }
+        for (uint32_t i = 0; i < (uint32_t)((eventCount)); ++i)
+        {
+            count_VkDependencyInfoKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkDependencyInfoKHR*)(local_pDependencyInfos + i), countPtr);
+        }
+    }
+    uint32_t packetSize_vkCmdWaitEvents2KHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdWaitEvents2KHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdWaitEvents2KHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdWaitEvents2KHR = OP_vkCmdWaitEvents2KHR;
+    memcpy(streamPtr, &opcode_vkCmdWaitEvents2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdWaitEvents2KHR, 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_eventCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    if (((eventCount)))
+    {
+        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_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+        }
+        *streamPtrPtr += 8 * ((eventCount));
+    }
+    for (uint32_t i = 0; i < (uint32_t)((eventCount)); ++i)
+    {
+        reservedmarshal_VkDependencyInfoKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkDependencyInfoKHR*)(local_pDependencyInfos + i), streamPtrPtr);
+    }
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdPipelineBarrier2KHR(
+    VkCommandBuffer commandBuffer,
+    const VkDependencyInfoKHR* pDependencyInfo,
+    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;
+    VkDependencyInfoKHR* local_pDependencyInfo;
+    local_commandBuffer = commandBuffer;
+    local_pDependencyInfo = nullptr;
+    if (pDependencyInfo)
+    {
+        local_pDependencyInfo = (VkDependencyInfoKHR*)pool->alloc(sizeof(const VkDependencyInfoKHR));
+        deepcopy_VkDependencyInfoKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pDependencyInfo, (VkDependencyInfoKHR*)(local_pDependencyInfo));
+    }
+    if (local_pDependencyInfo)
+    {
+        transform_tohost_VkDependencyInfoKHR(sResourceTracker, (VkDependencyInfoKHR*)(local_pDependencyInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkDependencyInfoKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkDependencyInfoKHR*)(local_pDependencyInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdPipelineBarrier2KHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdPipelineBarrier2KHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdPipelineBarrier2KHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdPipelineBarrier2KHR = OP_vkCmdPipelineBarrier2KHR;
+    memcpy(streamPtr, &opcode_vkCmdPipelineBarrier2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdPipelineBarrier2KHR, 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_VkDependencyInfoKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkDependencyInfoKHR*)(local_pDependencyInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdWriteTimestamp2KHR(
+    VkCommandBuffer commandBuffer,
+    VkPipelineStageFlags2KHR stage,
+    VkQueryPool queryPool,
+    uint32_t query,
+    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;
+    VkPipelineStageFlags2KHR local_stage;
+    VkQueryPool local_queryPool;
+    uint32_t local_query;
+    local_commandBuffer = commandBuffer;
+    local_stage = stage;
+    local_queryPool = queryPool;
+    local_query = query;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkPipelineStageFlags2KHR);
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkCmdWriteTimestamp2KHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdWriteTimestamp2KHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdWriteTimestamp2KHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdWriteTimestamp2KHR = OP_vkCmdWriteTimestamp2KHR;
+    memcpy(streamPtr, &opcode_vkCmdWriteTimestamp2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdWriteTimestamp2KHR, 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, (VkPipelineStageFlags2KHR*)&local_stage, sizeof(VkPipelineStageFlags2KHR));
+    *streamPtrPtr += sizeof(VkPipelineStageFlags2KHR);
+    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);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+VkResult VkEncoder::vkQueueSubmit2KHR(
+    VkQueue queue,
+    uint32_t submitCount,
+    const VkSubmitInfo2KHR* pSubmits,
+    VkFence fence,
+    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;
+    uint32_t local_submitCount;
+    VkSubmitInfo2KHR* local_pSubmits;
+    VkFence local_fence;
+    local_queue = queue;
+    local_submitCount = submitCount;
+    local_pSubmits = nullptr;
+    if (pSubmits)
+    {
+        local_pSubmits = (VkSubmitInfo2KHR*)pool->alloc(((submitCount)) * sizeof(const VkSubmitInfo2KHR));
+        for (uint32_t i = 0; i < (uint32_t)((submitCount)); ++i)
+        {
+            deepcopy_VkSubmitInfo2KHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pSubmits + i, (VkSubmitInfo2KHR*)(local_pSubmits + i));
+        }
+    }
+    local_fence = fence;
+    if (local_pSubmits)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((submitCount)); ++i)
+        {
+            transform_tohost_VkSubmitInfo2KHR(sResourceTracker, (VkSubmitInfo2KHR*)(local_pSubmits + 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)((submitCount)); ++i)
+        {
+            count_VkSubmitInfo2KHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkSubmitInfo2KHR*)(local_pSubmits + i), countPtr);
+        }
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+    }
+    uint32_t packetSize_vkQueueSubmit2KHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkQueueSubmit2KHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkQueueSubmit2KHR = OP_vkQueueSubmit2KHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkQueueSubmit2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkQueueSubmit2KHR, 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;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_submitCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)((submitCount)); ++i)
+    {
+        reservedmarshal_VkSubmitInfo2KHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkSubmitInfo2KHR*)(local_pSubmits + i), streamPtrPtr);
+    }
+    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 vkQueueSubmit2KHR_VkResult_return = (VkResult)0;
+    stream->read(&vkQueueSubmit2KHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkQueueSubmit2KHR_VkResult_return;
+}
+
+void VkEncoder::vkCmdWriteBufferMarker2AMD(
+    VkCommandBuffer commandBuffer,
+    VkPipelineStageFlags2KHR stage,
+    VkBuffer dstBuffer,
+    VkDeviceSize dstOffset,
+    uint32_t marker,
+    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;
+    VkPipelineStageFlags2KHR local_stage;
+    VkBuffer local_dstBuffer;
+    VkDeviceSize local_dstOffset;
+    uint32_t local_marker;
+    local_commandBuffer = commandBuffer;
+    local_stage = stage;
+    local_dstBuffer = dstBuffer;
+    local_dstOffset = dstOffset;
+    local_marker = marker;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkPipelineStageFlags2KHR);
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkDeviceSize);
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkCmdWriteBufferMarker2AMD = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdWriteBufferMarker2AMD -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdWriteBufferMarker2AMD);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdWriteBufferMarker2AMD = OP_vkCmdWriteBufferMarker2AMD;
+    memcpy(streamPtr, &opcode_vkCmdWriteBufferMarker2AMD, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdWriteBufferMarker2AMD, 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, (VkPipelineStageFlags2KHR*)&local_stage, sizeof(VkPipelineStageFlags2KHR));
+    *streamPtrPtr += sizeof(VkPipelineStageFlags2KHR);
+    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);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_marker, 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::vkGetQueueCheckpointData2NV(
+    VkQueue queue,
+    uint32_t* pCheckpointDataCount,
+    VkCheckpointData2NV* pCheckpointData,
+    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;
+    local_queue = queue;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pCheckpointDataCount)
+        {
+            *countPtr += sizeof(uint32_t);
+        }
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pCheckpointData)
+        {
+            if (pCheckpointDataCount)
+            {
+                for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i)
+                {
+                    count_VkCheckpointData2NV(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkCheckpointData2NV*)(pCheckpointData + i), countPtr);
+                }
+            }
+        }
+    }
+    uint32_t packetSize_vkGetQueueCheckpointData2NV = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetQueueCheckpointData2NV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetQueueCheckpointData2NV = OP_vkGetQueueCheckpointData2NV;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetQueueCheckpointData2NV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetQueueCheckpointData2NV, 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;
+    // WARNING PTR CHECK
+    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)
+    {
+        memcpy(*streamPtrPtr, (uint32_t*)pCheckpointDataCount, sizeof(uint32_t));
+        *streamPtrPtr += sizeof(uint32_t);
+    }
+    // WARNING PTR CHECK
+    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)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i)
+        {
+            reservedmarshal_VkCheckpointData2NV(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkCheckpointData2NV*)(pCheckpointData + i), streamPtrPtr);
+        }
+    }
+    // WARNING PTR CHECK
+    uint32_t* check_pCheckpointDataCount;
+    check_pCheckpointDataCount = (uint32_t*)(uintptr_t)stream->getBe64();
+    if (pCheckpointDataCount)
+    {
+        if (!(check_pCheckpointDataCount))
+        {
+            fprintf(stderr, "fatal: pCheckpointDataCount inconsistent between guest and host\n");
+        }
+        stream->read((uint32_t*)pCheckpointDataCount, sizeof(uint32_t));
+    }
+    // WARNING PTR CHECK
+    VkCheckpointData2NV* check_pCheckpointData;
+    check_pCheckpointData = (VkCheckpointData2NV*)(uintptr_t)stream->getBe64();
+    if (pCheckpointData)
+    {
+        if (!(check_pCheckpointData))
+        {
+            fprintf(stderr, "fatal: pCheckpointData inconsistent between guest and host\n");
+        }
+        if (pCheckpointDataCount)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i)
+            {
+                unmarshal_VkCheckpointData2NV(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkCheckpointData2NV*)(pCheckpointData + i));
+            }
+        }
+    }
+    if (pCheckpointDataCount)
+    {
+        if (pCheckpointData)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i)
+            {
+                transform_fromhost_VkCheckpointData2NV(sResourceTracker, (VkCheckpointData2NV*)(pCheckpointData + i));
+            }
+        }
+    }
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+#endif
 #ifdef VK_KHR_copy_commands2
 void VkEncoder::vkCmdCopyBuffer2KHR(
     VkCommandBuffer commandBuffer,
@@ -22466,6 +24318,262 @@
 }
 
 #endif
+#ifdef VK_KHR_format_feature_flags2
+#endif
+#ifdef VK_KHR_maintenance4
+void VkEncoder::vkGetDeviceBufferMemoryRequirementsKHR(
+    VkDevice device,
+    const VkDeviceBufferMemoryRequirementsKHR* 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;
+    VkDeviceBufferMemoryRequirementsKHR* local_pInfo;
+    local_device = device;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkDeviceBufferMemoryRequirementsKHR*)pool->alloc(sizeof(const VkDeviceBufferMemoryRequirementsKHR));
+        deepcopy_VkDeviceBufferMemoryRequirementsKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pInfo, (VkDeviceBufferMemoryRequirementsKHR*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkDeviceBufferMemoryRequirementsKHR(sResourceTracker, (VkDeviceBufferMemoryRequirementsKHR*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkDeviceBufferMemoryRequirementsKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkDeviceBufferMemoryRequirementsKHR*)(local_pInfo), countPtr);
+        count_VkMemoryRequirements2(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkMemoryRequirements2*)(pMemoryRequirements), countPtr);
+    }
+    uint32_t packetSize_vkGetDeviceBufferMemoryRequirementsKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetDeviceBufferMemoryRequirementsKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetDeviceBufferMemoryRequirementsKHR = OP_vkGetDeviceBufferMemoryRequirementsKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetDeviceBufferMemoryRequirementsKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetDeviceBufferMemoryRequirementsKHR, 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_VkDeviceBufferMemoryRequirementsKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkDeviceBufferMemoryRequirementsKHR*)(local_pInfo), streamPtrPtr);
+    reservedmarshal_VkMemoryRequirements2(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkMemoryRequirements2*)(pMemoryRequirements), streamPtrPtr);
+    unmarshal_VkMemoryRequirements2(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (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::vkGetDeviceImageMemoryRequirementsKHR(
+    VkDevice device,
+    const VkDeviceImageMemoryRequirementsKHR* 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;
+    VkDeviceImageMemoryRequirementsKHR* local_pInfo;
+    local_device = device;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkDeviceImageMemoryRequirementsKHR*)pool->alloc(sizeof(const VkDeviceImageMemoryRequirementsKHR));
+        deepcopy_VkDeviceImageMemoryRequirementsKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pInfo, (VkDeviceImageMemoryRequirementsKHR*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkDeviceImageMemoryRequirementsKHR(sResourceTracker, (VkDeviceImageMemoryRequirementsKHR*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkDeviceImageMemoryRequirementsKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkDeviceImageMemoryRequirementsKHR*)(local_pInfo), countPtr);
+        count_VkMemoryRequirements2(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkMemoryRequirements2*)(pMemoryRequirements), countPtr);
+    }
+    uint32_t packetSize_vkGetDeviceImageMemoryRequirementsKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetDeviceImageMemoryRequirementsKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetDeviceImageMemoryRequirementsKHR = OP_vkGetDeviceImageMemoryRequirementsKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetDeviceImageMemoryRequirementsKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetDeviceImageMemoryRequirementsKHR, 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_VkDeviceImageMemoryRequirementsKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkDeviceImageMemoryRequirementsKHR*)(local_pInfo), streamPtrPtr);
+    reservedmarshal_VkMemoryRequirements2(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkMemoryRequirements2*)(pMemoryRequirements), streamPtrPtr);
+    unmarshal_VkMemoryRequirements2(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (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::vkGetDeviceImageSparseMemoryRequirementsKHR(
+    VkDevice device,
+    const VkDeviceImageMemoryRequirementsKHR* pInfo,
+    uint32_t* pSparseMemoryRequirementCount,
+    VkSparseImageMemoryRequirements2* pSparseMemoryRequirements,
+    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;
+    VkDeviceImageMemoryRequirementsKHR* local_pInfo;
+    local_device = device;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkDeviceImageMemoryRequirementsKHR*)pool->alloc(sizeof(const VkDeviceImageMemoryRequirementsKHR));
+        deepcopy_VkDeviceImageMemoryRequirementsKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pInfo, (VkDeviceImageMemoryRequirementsKHR*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkDeviceImageMemoryRequirementsKHR(sResourceTracker, (VkDeviceImageMemoryRequirementsKHR*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkDeviceImageMemoryRequirementsKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkDeviceImageMemoryRequirementsKHR*)(local_pInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pSparseMemoryRequirementCount)
+        {
+            *countPtr += sizeof(uint32_t);
+        }
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pSparseMemoryRequirements)
+        {
+            if (pSparseMemoryRequirementCount)
+            {
+                for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+                {
+                    count_VkSparseImageMemoryRequirements2(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i), countPtr);
+                }
+            }
+        }
+    }
+    uint32_t packetSize_vkGetDeviceImageSparseMemoryRequirementsKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetDeviceImageSparseMemoryRequirementsKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetDeviceImageSparseMemoryRequirementsKHR = OP_vkGetDeviceImageSparseMemoryRequirementsKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetDeviceImageSparseMemoryRequirementsKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetDeviceImageSparseMemoryRequirementsKHR, 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_VkDeviceImageMemoryRequirementsKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkDeviceImageMemoryRequirementsKHR*)(local_pInfo), streamPtrPtr);
+    // WARNING PTR CHECK
+    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)
+    {
+        memcpy(*streamPtrPtr, (uint32_t*)pSparseMemoryRequirementCount, sizeof(uint32_t));
+        *streamPtrPtr += sizeof(uint32_t);
+    }
+    // WARNING PTR CHECK
+    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)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+        {
+            reservedmarshal_VkSparseImageMemoryRequirements2(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i), streamPtrPtr);
+        }
+    }
+    // WARNING PTR CHECK
+    uint32_t* check_pSparseMemoryRequirementCount;
+    check_pSparseMemoryRequirementCount = (uint32_t*)(uintptr_t)stream->getBe64();
+    if (pSparseMemoryRequirementCount)
+    {
+        if (!(check_pSparseMemoryRequirementCount))
+        {
+            fprintf(stderr, "fatal: pSparseMemoryRequirementCount inconsistent between guest and host\n");
+        }
+        stream->read((uint32_t*)pSparseMemoryRequirementCount, sizeof(uint32_t));
+    }
+    // WARNING PTR CHECK
+    VkSparseImageMemoryRequirements2* check_pSparseMemoryRequirements;
+    check_pSparseMemoryRequirements = (VkSparseImageMemoryRequirements2*)(uintptr_t)stream->getBe64();
+    if (pSparseMemoryRequirements)
+    {
+        if (!(check_pSparseMemoryRequirements))
+        {
+            fprintf(stderr, "fatal: pSparseMemoryRequirements inconsistent between guest and host\n");
+        }
+        if (pSparseMemoryRequirementCount)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+            {
+                unmarshal_VkSparseImageMemoryRequirements2(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
+            }
+        }
+    }
+    if (pSparseMemoryRequirementCount)
+    {
+        if (pSparseMemoryRequirements)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+            {
+                transform_fromhost_VkSparseImageMemoryRequirements2(sResourceTracker, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
+            }
+        }
+    }
+    ++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(
     VkDevice device,
@@ -23755,6 +25863,392 @@
 }
 
 #endif
+#ifdef VK_NVX_binary_import
+VkResult VkEncoder::vkCreateCuModuleNVX(
+    VkDevice device,
+    const VkCuModuleCreateInfoNVX* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkCuModuleNVX* pModule,
+    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;
+    VkCuModuleCreateInfoNVX* local_pCreateInfo;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_pCreateInfo = nullptr;
+    if (pCreateInfo)
+    {
+        local_pCreateInfo = (VkCuModuleCreateInfoNVX*)pool->alloc(sizeof(const VkCuModuleCreateInfoNVX));
+        deepcopy_VkCuModuleCreateInfoNVX(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pCreateInfo, (VkCuModuleCreateInfoNVX*)(local_pCreateInfo));
+    }
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pCreateInfo)
+    {
+        transform_tohost_VkCuModuleCreateInfoNVX(sResourceTracker, (VkCuModuleCreateInfoNVX*)(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_VkCuModuleCreateInfoNVX(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkCuModuleCreateInfoNVX*)(local_pCreateInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkCreateCuModuleNVX = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateCuModuleNVX);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCreateCuModuleNVX = OP_vkCreateCuModuleNVX;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCreateCuModuleNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCreateCuModuleNVX, 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_VkCuModuleCreateInfoNVX(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkCuModuleCreateInfoNVX*)(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, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    uint64_t cgen_var_2 = (uint64_t)(*pModule);
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    (*pModule) = (VkCuModuleNVX)stream->getBe64();
+    VkResult vkCreateCuModuleNVX_VkResult_return = (VkResult)0;
+    stream->read(&vkCreateCuModuleNVX_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCreateCuModuleNVX_VkResult_return;
+}
+
+VkResult VkEncoder::vkCreateCuFunctionNVX(
+    VkDevice device,
+    const VkCuFunctionCreateInfoNVX* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkCuFunctionNVX* pFunction,
+    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;
+    VkCuFunctionCreateInfoNVX* local_pCreateInfo;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_pCreateInfo = nullptr;
+    if (pCreateInfo)
+    {
+        local_pCreateInfo = (VkCuFunctionCreateInfoNVX*)pool->alloc(sizeof(const VkCuFunctionCreateInfoNVX));
+        deepcopy_VkCuFunctionCreateInfoNVX(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pCreateInfo, (VkCuFunctionCreateInfoNVX*)(local_pCreateInfo));
+    }
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pCreateInfo)
+    {
+        transform_tohost_VkCuFunctionCreateInfoNVX(sResourceTracker, (VkCuFunctionCreateInfoNVX*)(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_VkCuFunctionCreateInfoNVX(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkCuFunctionCreateInfoNVX*)(local_pCreateInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkCreateCuFunctionNVX = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateCuFunctionNVX);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCreateCuFunctionNVX = OP_vkCreateCuFunctionNVX;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCreateCuFunctionNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCreateCuFunctionNVX, 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_VkCuFunctionCreateInfoNVX(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkCuFunctionCreateInfoNVX*)(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, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    uint64_t cgen_var_2 = (uint64_t)(*pFunction);
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    (*pFunction) = (VkCuFunctionNVX)stream->getBe64();
+    VkResult vkCreateCuFunctionNVX_VkResult_return = (VkResult)0;
+    stream->read(&vkCreateCuFunctionNVX_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCreateCuFunctionNVX_VkResult_return;
+}
+
+void VkEncoder::vkDestroyCuModuleNVX(
+    VkDevice device,
+    VkCuModuleNVX module,
+    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;
+    VkCuModuleNVX local_module;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_module = module;
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, VK_STRUCTURE_TYPE_MAX_ENUM, 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, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+    }
+    uint32_t packetSize_vkDestroyCuModuleNVX = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkDestroyCuModuleNVX);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkDestroyCuModuleNVX = OP_vkDestroyCuModuleNVX;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkDestroyCuModuleNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkDestroyCuModuleNVX, 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_module;
+    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, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    stream->flush();
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkDestroyCuFunctionNVX(
+    VkDevice device,
+    VkCuFunctionNVX function,
+    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;
+    VkCuFunctionNVX local_function;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_function = function;
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, VK_STRUCTURE_TYPE_MAX_ENUM, 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, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+    }
+    uint32_t packetSize_vkDestroyCuFunctionNVX = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkDestroyCuFunctionNVX);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkDestroyCuFunctionNVX = OP_vkDestroyCuFunctionNVX;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkDestroyCuFunctionNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkDestroyCuFunctionNVX, 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_function;
+    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, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    stream->flush();
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdCuLaunchKernelNVX(
+    VkCommandBuffer commandBuffer,
+    const VkCuLaunchInfoNVX* pLaunchInfo,
+    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;
+    VkCuLaunchInfoNVX* local_pLaunchInfo;
+    local_commandBuffer = commandBuffer;
+    local_pLaunchInfo = nullptr;
+    if (pLaunchInfo)
+    {
+        local_pLaunchInfo = (VkCuLaunchInfoNVX*)pool->alloc(sizeof(const VkCuLaunchInfoNVX));
+        deepcopy_VkCuLaunchInfoNVX(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pLaunchInfo, (VkCuLaunchInfoNVX*)(local_pLaunchInfo));
+    }
+    if (local_pLaunchInfo)
+    {
+        transform_tohost_VkCuLaunchInfoNVX(sResourceTracker, (VkCuLaunchInfoNVX*)(local_pLaunchInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkCuLaunchInfoNVX(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkCuLaunchInfoNVX*)(local_pLaunchInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdCuLaunchKernelNVX = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdCuLaunchKernelNVX -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdCuLaunchKernelNVX);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdCuLaunchKernelNVX = OP_vkCmdCuLaunchKernelNVX;
+    memcpy(streamPtr, &opcode_vkCmdCuLaunchKernelNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdCuLaunchKernelNVX, 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_VkCuLaunchInfoNVX(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkCuLaunchInfoNVX*)(local_pLaunchInfo), streamPtrPtr);
+    ++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,
@@ -24042,6 +26536,12 @@
 #endif
 #ifdef VK_AMD_shader_ballot
 #endif
+#ifdef VK_EXT_video_encode_h264
+#endif
+#ifdef VK_EXT_video_encode_h265
+#endif
+#ifdef VK_EXT_video_decode_h264
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
 #endif
 #ifdef VK_AMD_shader_info
@@ -29090,6 +31590,8 @@
 #endif
 #ifdef VK_AMD_shader_core_properties
 #endif
+#ifdef VK_EXT_video_decode_h265
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
 #endif
 #ifdef VK_EXT_vertex_attribute_divisor
@@ -30761,6 +33263,8 @@
 #endif
 #ifdef VK_EXT_ycbcr_image_arrays
 #endif
+#ifdef VK_EXT_provoking_vertex
+#endif
 #ifdef VK_EXT_full_screen_exclusive
 VkResult VkEncoder::vkGetPhysicalDeviceSurfacePresentModes2EXT(
     VkPhysicalDevice physicalDevice,
@@ -31600,9 +34104,14 @@
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
-        if (((bindingCount)))
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pBuffers)
         {
-            *countPtr += ((bindingCount)) * 8;
+            if (((bindingCount)))
+            {
+                *countPtr += ((bindingCount)) * 8;
+            }
         }
         *countPtr += ((bindingCount)) * sizeof(VkDeviceSize);
         // WARNING PTR CHECK
@@ -31636,15 +34145,23 @@
     *streamPtrPtr += sizeof(uint32_t);
     memcpy(*streamPtrPtr, (uint32_t*)&local_bindingCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
-    if (((bindingCount)))
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)local_pBuffers;
+    memcpy((*streamPtrPtr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pBuffers)
     {
-        uint8_t* cgen_var_0_ptr = (uint8_t*)(*streamPtrPtr);
-        for (uint32_t k = 0; k < ((bindingCount)); ++k)
+        if (((bindingCount)))
         {
-            uint64_t tmpval = get_host_u64_VkBuffer(local_pBuffers[k]);
-            memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            uint8_t* cgen_var_0_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_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
+            *streamPtrPtr += 8 * ((bindingCount));
         }
-        *streamPtrPtr += 8 * ((bindingCount));
     }
     memcpy(*streamPtrPtr, (VkDeviceSize*)local_pOffsets, ((bindingCount)) * sizeof(VkDeviceSize));
     *streamPtrPtr += ((bindingCount)) * sizeof(VkDeviceSize);
@@ -31978,6 +34495,8 @@
 }
 
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+#endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 #endif
 #ifdef VK_NV_device_generated_commands
@@ -32391,12 +34910,137 @@
 }
 
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+#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_acquire_drm_display
+VkResult VkEncoder::vkAcquireDrmDisplayEXT(
+    VkPhysicalDevice physicalDevice,
+    int32_t drmFd,
+    VkDisplayKHR display,
+    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;
+    int32_t local_drmFd;
+    VkDisplayKHR local_display;
+    local_physicalDevice = physicalDevice;
+    local_drmFd = drmFd;
+    local_display = display;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(int32_t);
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+    }
+    uint32_t packetSize_vkAcquireDrmDisplayEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkAcquireDrmDisplayEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkAcquireDrmDisplayEXT = OP_vkAcquireDrmDisplayEXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkAcquireDrmDisplayEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkAcquireDrmDisplayEXT, 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, (int32_t*)&local_drmFd, sizeof(int32_t));
+    *streamPtrPtr += sizeof(int32_t);
+    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 vkAcquireDrmDisplayEXT_VkResult_return = (VkResult)0;
+    stream->read(&vkAcquireDrmDisplayEXT_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkAcquireDrmDisplayEXT_VkResult_return;
+}
+
+VkResult VkEncoder::vkGetDrmDisplayEXT(
+    VkPhysicalDevice physicalDevice,
+    int32_t drmFd,
+    uint32_t connectorId,
+    VkDisplayKHR* display,
+    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;
+    int32_t local_drmFd;
+    uint32_t local_connectorId;
+    local_physicalDevice = physicalDevice;
+    local_drmFd = drmFd;
+    local_connectorId = connectorId;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(int32_t);
+        *countPtr += sizeof(uint32_t);
+        uint64_t cgen_var_1;
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkGetDrmDisplayEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetDrmDisplayEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetDrmDisplayEXT = OP_vkGetDrmDisplayEXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetDrmDisplayEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetDrmDisplayEXT, 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, (int32_t*)&local_drmFd, sizeof(int32_t));
+    *streamPtrPtr += sizeof(int32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_connectorId, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    /* is handle, possibly out */;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = (uint64_t)((*display));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 8);
+    *streamPtrPtr += 8;
+    /* is handle, possibly out */;
+    uint64_t cgen_var_2;
+    stream->read((uint64_t*)&cgen_var_2, 8);
+    stream->handleMapping()->mapHandles_u64_VkDisplayKHR(&cgen_var_2, (VkDisplayKHR*)display, 1);
+    VkResult vkGetDrmDisplayEXT_VkResult_return = (VkResult)0;
+    stream->read(&vkGetDrmDisplayEXT_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetDrmDisplayEXT_VkResult_return;
+}
+
+#endif
 #ifdef VK_EXT_robustness2
 #endif
 #ifdef VK_EXT_custom_border_color
@@ -32760,6 +35404,10 @@
 }
 
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+#endif
 #ifdef VK_EXT_fragment_density_map2
 #endif
 #ifdef VK_QCOM_rotated_copy_commands
@@ -32768,6 +35416,119 @@
 #endif
 #ifdef VK_EXT_4444_formats
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+#endif
+#ifdef VK_NV_acquire_winrt_display
+VkResult VkEncoder::vkAcquireWinrtDisplayNV(
+    VkPhysicalDevice physicalDevice,
+    VkDisplayKHR display,
+    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;
+    VkDisplayKHR local_display;
+    local_physicalDevice = physicalDevice;
+    local_display = display;
+    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_vkAcquireWinrtDisplayNV = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkAcquireWinrtDisplayNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkAcquireWinrtDisplayNV = OP_vkAcquireWinrtDisplayNV;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkAcquireWinrtDisplayNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkAcquireWinrtDisplayNV, 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;
+    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 vkAcquireWinrtDisplayNV_VkResult_return = (VkResult)0;
+    stream->read(&vkAcquireWinrtDisplayNV_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkAcquireWinrtDisplayNV_VkResult_return;
+}
+
+VkResult VkEncoder::vkGetWinrtDisplayNV(
+    VkPhysicalDevice physicalDevice,
+    uint32_t deviceRelativeId,
+    VkDisplayKHR* pDisplay,
+    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_deviceRelativeId;
+    local_physicalDevice = physicalDevice;
+    local_deviceRelativeId = deviceRelativeId;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        uint64_t cgen_var_1;
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkGetWinrtDisplayNV = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetWinrtDisplayNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetWinrtDisplayNV = OP_vkGetWinrtDisplayNV;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetWinrtDisplayNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetWinrtDisplayNV, 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_deviceRelativeId, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    /* is handle, possibly out */;
+    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 */;
+    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 vkGetWinrtDisplayNV_VkResult_return = (VkResult)0;
+    stream->read(&vkGetWinrtDisplayNV_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetWinrtDisplayNV_VkResult_return;
+}
+
+#endif
 #ifdef VK_EXT_directfb_surface
 VkResult VkEncoder::vkCreateDirectFBSurfaceEXT(
     VkInstance instance,
@@ -32917,6 +35678,1363 @@
 }
 
 #endif
+#ifdef VK_VALVE_mutable_descriptor_type
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+void VkEncoder::vkCmdSetVertexInputEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t vertexBindingDescriptionCount,
+    const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions,
+    uint32_t vertexAttributeDescriptionCount,
+    const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions,
+    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_vertexBindingDescriptionCount;
+    VkVertexInputBindingDescription2EXT* local_pVertexBindingDescriptions;
+    uint32_t local_vertexAttributeDescriptionCount;
+    VkVertexInputAttributeDescription2EXT* local_pVertexAttributeDescriptions;
+    local_commandBuffer = commandBuffer;
+    local_vertexBindingDescriptionCount = vertexBindingDescriptionCount;
+    local_pVertexBindingDescriptions = nullptr;
+    if (pVertexBindingDescriptions)
+    {
+        local_pVertexBindingDescriptions = (VkVertexInputBindingDescription2EXT*)pool->alloc(((vertexBindingDescriptionCount)) * sizeof(const VkVertexInputBindingDescription2EXT));
+        for (uint32_t i = 0; i < (uint32_t)((vertexBindingDescriptionCount)); ++i)
+        {
+            deepcopy_VkVertexInputBindingDescription2EXT(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pVertexBindingDescriptions + i, (VkVertexInputBindingDescription2EXT*)(local_pVertexBindingDescriptions + i));
+        }
+    }
+    local_vertexAttributeDescriptionCount = vertexAttributeDescriptionCount;
+    local_pVertexAttributeDescriptions = nullptr;
+    if (pVertexAttributeDescriptions)
+    {
+        local_pVertexAttributeDescriptions = (VkVertexInputAttributeDescription2EXT*)pool->alloc(((vertexAttributeDescriptionCount)) * sizeof(const VkVertexInputAttributeDescription2EXT));
+        for (uint32_t i = 0; i < (uint32_t)((vertexAttributeDescriptionCount)); ++i)
+        {
+            deepcopy_VkVertexInputAttributeDescription2EXT(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pVertexAttributeDescriptions + i, (VkVertexInputAttributeDescription2EXT*)(local_pVertexAttributeDescriptions + i));
+        }
+    }
+    if (local_pVertexBindingDescriptions)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((vertexBindingDescriptionCount)); ++i)
+        {
+            transform_tohost_VkVertexInputBindingDescription2EXT(sResourceTracker, (VkVertexInputBindingDescription2EXT*)(local_pVertexBindingDescriptions + i));
+        }
+    }
+    if (local_pVertexAttributeDescriptions)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((vertexAttributeDescriptionCount)); ++i)
+        {
+            transform_tohost_VkVertexInputAttributeDescription2EXT(sResourceTracker, (VkVertexInputAttributeDescription2EXT*)(local_pVertexAttributeDescriptions + 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)((vertexBindingDescriptionCount)); ++i)
+        {
+            count_VkVertexInputBindingDescription2EXT(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVertexInputBindingDescription2EXT*)(local_pVertexBindingDescriptions + i), countPtr);
+        }
+        *countPtr += sizeof(uint32_t);
+        for (uint32_t i = 0; i < (uint32_t)((vertexAttributeDescriptionCount)); ++i)
+        {
+            count_VkVertexInputAttributeDescription2EXT(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVertexInputAttributeDescription2EXT*)(local_pVertexAttributeDescriptions + i), countPtr);
+        }
+    }
+    uint32_t packetSize_vkCmdSetVertexInputEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetVertexInputEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetVertexInputEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetVertexInputEXT = OP_vkCmdSetVertexInputEXT;
+    memcpy(streamPtr, &opcode_vkCmdSetVertexInputEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetVertexInputEXT, 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_vertexBindingDescriptionCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)((vertexBindingDescriptionCount)); ++i)
+    {
+        reservedmarshal_VkVertexInputBindingDescription2EXT(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVertexInputBindingDescription2EXT*)(local_pVertexBindingDescriptions + i), streamPtrPtr);
+    }
+    memcpy(*streamPtrPtr, (uint32_t*)&local_vertexAttributeDescriptionCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)((vertexAttributeDescriptionCount)); ++i)
+    {
+        reservedmarshal_VkVertexInputAttributeDescription2EXT(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkVertexInputAttributeDescription2EXT*)(local_pVertexAttributeDescriptions + i), streamPtrPtr);
+    }
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_EXT_physical_device_drm
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+#endif
+#ifdef VK_FUCHSIA_external_memory
+VkResult VkEncoder::vkGetMemoryZirconHandleFUCHSIA(
+    VkDevice device,
+    const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
+    zx_handle_t* pZirconHandle,
+    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;
+    VkMemoryGetZirconHandleInfoFUCHSIA* local_pGetZirconHandleInfo;
+    local_device = device;
+    local_pGetZirconHandleInfo = nullptr;
+    if (pGetZirconHandleInfo)
+    {
+        local_pGetZirconHandleInfo = (VkMemoryGetZirconHandleInfoFUCHSIA*)pool->alloc(sizeof(const VkMemoryGetZirconHandleInfoFUCHSIA));
+        deepcopy_VkMemoryGetZirconHandleInfoFUCHSIA(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pGetZirconHandleInfo, (VkMemoryGetZirconHandleInfoFUCHSIA*)(local_pGetZirconHandleInfo));
+    }
+    if (local_pGetZirconHandleInfo)
+    {
+        transform_tohost_VkMemoryGetZirconHandleInfoFUCHSIA(sResourceTracker, (VkMemoryGetZirconHandleInfoFUCHSIA*)(local_pGetZirconHandleInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkMemoryGetZirconHandleInfoFUCHSIA(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkMemoryGetZirconHandleInfoFUCHSIA*)(local_pGetZirconHandleInfo), countPtr);
+        *countPtr += sizeof(zx_handle_t);
+    }
+    uint32_t packetSize_vkGetMemoryZirconHandleFUCHSIA = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetMemoryZirconHandleFUCHSIA);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetMemoryZirconHandleFUCHSIA = OP_vkGetMemoryZirconHandleFUCHSIA;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetMemoryZirconHandleFUCHSIA, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetMemoryZirconHandleFUCHSIA, 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_VkMemoryGetZirconHandleInfoFUCHSIA(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkMemoryGetZirconHandleInfoFUCHSIA*)(local_pGetZirconHandleInfo), streamPtrPtr);
+    memcpy(*streamPtrPtr, (zx_handle_t*)pZirconHandle, sizeof(zx_handle_t));
+    *streamPtrPtr += sizeof(zx_handle_t);
+    stream->read((zx_handle_t*)pZirconHandle, sizeof(zx_handle_t));
+    VkResult vkGetMemoryZirconHandleFUCHSIA_VkResult_return = (VkResult)0;
+    stream->read(&vkGetMemoryZirconHandleFUCHSIA_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetMemoryZirconHandleFUCHSIA_VkResult_return;
+}
+
+VkResult VkEncoder::vkGetMemoryZirconHandlePropertiesFUCHSIA(
+    VkDevice device,
+    VkExternalMemoryHandleTypeFlagBits handleType,
+    zx_handle_t zirconHandle,
+    VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties,
+    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;
+    VkExternalMemoryHandleTypeFlagBits local_handleType;
+    zx_handle_t local_zirconHandle;
+    local_device = device;
+    local_handleType = handleType;
+    local_zirconHandle = zirconHandle;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkExternalMemoryHandleTypeFlagBits);
+        *countPtr += sizeof(zx_handle_t);
+        count_VkMemoryZirconHandlePropertiesFUCHSIA(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkMemoryZirconHandlePropertiesFUCHSIA*)(pMemoryZirconHandleProperties), countPtr);
+    }
+    uint32_t packetSize_vkGetMemoryZirconHandlePropertiesFUCHSIA = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetMemoryZirconHandlePropertiesFUCHSIA);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetMemoryZirconHandlePropertiesFUCHSIA = OP_vkGetMemoryZirconHandlePropertiesFUCHSIA;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetMemoryZirconHandlePropertiesFUCHSIA, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetMemoryZirconHandlePropertiesFUCHSIA, 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, (VkExternalMemoryHandleTypeFlagBits*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
+    *streamPtrPtr += sizeof(VkExternalMemoryHandleTypeFlagBits);
+    memcpy(*streamPtrPtr, (zx_handle_t*)&local_zirconHandle, sizeof(zx_handle_t));
+    *streamPtrPtr += sizeof(zx_handle_t);
+    reservedmarshal_VkMemoryZirconHandlePropertiesFUCHSIA(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkMemoryZirconHandlePropertiesFUCHSIA*)(pMemoryZirconHandleProperties), streamPtrPtr);
+    unmarshal_VkMemoryZirconHandlePropertiesFUCHSIA(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkMemoryZirconHandlePropertiesFUCHSIA*)(pMemoryZirconHandleProperties));
+    if (pMemoryZirconHandleProperties)
+    {
+        transform_fromhost_VkMemoryZirconHandlePropertiesFUCHSIA(sResourceTracker, (VkMemoryZirconHandlePropertiesFUCHSIA*)(pMemoryZirconHandleProperties));
+    }
+    VkResult vkGetMemoryZirconHandlePropertiesFUCHSIA_VkResult_return = (VkResult)0;
+    stream->read(&vkGetMemoryZirconHandlePropertiesFUCHSIA_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetMemoryZirconHandlePropertiesFUCHSIA_VkResult_return;
+}
+
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+VkResult VkEncoder::vkImportSemaphoreZirconHandleFUCHSIA(
+    VkDevice device,
+    const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo,
+    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;
+    VkImportSemaphoreZirconHandleInfoFUCHSIA* local_pImportSemaphoreZirconHandleInfo;
+    local_device = device;
+    local_pImportSemaphoreZirconHandleInfo = nullptr;
+    if (pImportSemaphoreZirconHandleInfo)
+    {
+        local_pImportSemaphoreZirconHandleInfo = (VkImportSemaphoreZirconHandleInfoFUCHSIA*)pool->alloc(sizeof(const VkImportSemaphoreZirconHandleInfoFUCHSIA));
+        deepcopy_VkImportSemaphoreZirconHandleInfoFUCHSIA(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pImportSemaphoreZirconHandleInfo, (VkImportSemaphoreZirconHandleInfoFUCHSIA*)(local_pImportSemaphoreZirconHandleInfo));
+    }
+    if (local_pImportSemaphoreZirconHandleInfo)
+    {
+        transform_tohost_VkImportSemaphoreZirconHandleInfoFUCHSIA(sResourceTracker, (VkImportSemaphoreZirconHandleInfoFUCHSIA*)(local_pImportSemaphoreZirconHandleInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkImportSemaphoreZirconHandleInfoFUCHSIA(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkImportSemaphoreZirconHandleInfoFUCHSIA*)(local_pImportSemaphoreZirconHandleInfo), countPtr);
+    }
+    uint32_t packetSize_vkImportSemaphoreZirconHandleFUCHSIA = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkImportSemaphoreZirconHandleFUCHSIA);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkImportSemaphoreZirconHandleFUCHSIA = OP_vkImportSemaphoreZirconHandleFUCHSIA;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkImportSemaphoreZirconHandleFUCHSIA, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkImportSemaphoreZirconHandleFUCHSIA, 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_VkImportSemaphoreZirconHandleInfoFUCHSIA(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkImportSemaphoreZirconHandleInfoFUCHSIA*)(local_pImportSemaphoreZirconHandleInfo), streamPtrPtr);
+    VkResult vkImportSemaphoreZirconHandleFUCHSIA_VkResult_return = (VkResult)0;
+    stream->read(&vkImportSemaphoreZirconHandleFUCHSIA_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkImportSemaphoreZirconHandleFUCHSIA_VkResult_return;
+}
+
+VkResult VkEncoder::vkGetSemaphoreZirconHandleFUCHSIA(
+    VkDevice device,
+    const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
+    zx_handle_t* pZirconHandle,
+    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;
+    VkSemaphoreGetZirconHandleInfoFUCHSIA* local_pGetZirconHandleInfo;
+    local_device = device;
+    local_pGetZirconHandleInfo = nullptr;
+    if (pGetZirconHandleInfo)
+    {
+        local_pGetZirconHandleInfo = (VkSemaphoreGetZirconHandleInfoFUCHSIA*)pool->alloc(sizeof(const VkSemaphoreGetZirconHandleInfoFUCHSIA));
+        deepcopy_VkSemaphoreGetZirconHandleInfoFUCHSIA(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pGetZirconHandleInfo, (VkSemaphoreGetZirconHandleInfoFUCHSIA*)(local_pGetZirconHandleInfo));
+    }
+    if (local_pGetZirconHandleInfo)
+    {
+        transform_tohost_VkSemaphoreGetZirconHandleInfoFUCHSIA(sResourceTracker, (VkSemaphoreGetZirconHandleInfoFUCHSIA*)(local_pGetZirconHandleInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkSemaphoreGetZirconHandleInfoFUCHSIA(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkSemaphoreGetZirconHandleInfoFUCHSIA*)(local_pGetZirconHandleInfo), countPtr);
+        *countPtr += sizeof(zx_handle_t);
+    }
+    uint32_t packetSize_vkGetSemaphoreZirconHandleFUCHSIA = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetSemaphoreZirconHandleFUCHSIA);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetSemaphoreZirconHandleFUCHSIA = OP_vkGetSemaphoreZirconHandleFUCHSIA;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetSemaphoreZirconHandleFUCHSIA, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetSemaphoreZirconHandleFUCHSIA, 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_VkSemaphoreGetZirconHandleInfoFUCHSIA(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkSemaphoreGetZirconHandleInfoFUCHSIA*)(local_pGetZirconHandleInfo), streamPtrPtr);
+    memcpy(*streamPtrPtr, (zx_handle_t*)pZirconHandle, sizeof(zx_handle_t));
+    *streamPtrPtr += sizeof(zx_handle_t);
+    stream->read((zx_handle_t*)pZirconHandle, sizeof(zx_handle_t));
+    VkResult vkGetSemaphoreZirconHandleFUCHSIA_VkResult_return = (VkResult)0;
+    stream->read(&vkGetSemaphoreZirconHandleFUCHSIA_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetSemaphoreZirconHandleFUCHSIA_VkResult_return;
+}
+
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+VkResult VkEncoder::vkCreateBufferCollectionFUCHSIA(
+    VkDevice device,
+    const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkBufferCollectionFUCHSIA* pCollection,
+    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;
+    VkBufferCollectionCreateInfoFUCHSIA* local_pCreateInfo;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_pCreateInfo = nullptr;
+    if (pCreateInfo)
+    {
+        local_pCreateInfo = (VkBufferCollectionCreateInfoFUCHSIA*)pool->alloc(sizeof(const VkBufferCollectionCreateInfoFUCHSIA));
+        deepcopy_VkBufferCollectionCreateInfoFUCHSIA(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pCreateInfo, (VkBufferCollectionCreateInfoFUCHSIA*)(local_pCreateInfo));
+    }
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pCreateInfo)
+    {
+        transform_tohost_VkBufferCollectionCreateInfoFUCHSIA(sResourceTracker, (VkBufferCollectionCreateInfoFUCHSIA*)(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_VkBufferCollectionCreateInfoFUCHSIA(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkBufferCollectionCreateInfoFUCHSIA*)(local_pCreateInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkCreateBufferCollectionFUCHSIA = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateBufferCollectionFUCHSIA);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCreateBufferCollectionFUCHSIA = OP_vkCreateBufferCollectionFUCHSIA;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCreateBufferCollectionFUCHSIA, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCreateBufferCollectionFUCHSIA, 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_VkBufferCollectionCreateInfoFUCHSIA(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkBufferCollectionCreateInfoFUCHSIA*)(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, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    uint64_t cgen_var_2 = (uint64_t)(*pCollection);
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    (*pCollection) = (VkBufferCollectionFUCHSIA)stream->getBe64();
+    VkResult vkCreateBufferCollectionFUCHSIA_VkResult_return = (VkResult)0;
+    stream->read(&vkCreateBufferCollectionFUCHSIA_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCreateBufferCollectionFUCHSIA_VkResult_return;
+}
+
+VkResult VkEncoder::vkSetBufferCollectionImageConstraintsFUCHSIA(
+    VkDevice device,
+    VkBufferCollectionFUCHSIA collection,
+    const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo,
+    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;
+    VkBufferCollectionFUCHSIA local_collection;
+    VkImageConstraintsInfoFUCHSIA* local_pImageConstraintsInfo;
+    local_device = device;
+    local_collection = collection;
+    local_pImageConstraintsInfo = nullptr;
+    if (pImageConstraintsInfo)
+    {
+        local_pImageConstraintsInfo = (VkImageConstraintsInfoFUCHSIA*)pool->alloc(sizeof(const VkImageConstraintsInfoFUCHSIA));
+        deepcopy_VkImageConstraintsInfoFUCHSIA(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pImageConstraintsInfo, (VkImageConstraintsInfoFUCHSIA*)(local_pImageConstraintsInfo));
+    }
+    if (local_pImageConstraintsInfo)
+    {
+        transform_tohost_VkImageConstraintsInfoFUCHSIA(sResourceTracker, (VkImageConstraintsInfoFUCHSIA*)(local_pImageConstraintsInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += 8;
+        count_VkImageConstraintsInfoFUCHSIA(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkImageConstraintsInfoFUCHSIA*)(local_pImageConstraintsInfo), countPtr);
+    }
+    uint32_t packetSize_vkSetBufferCollectionImageConstraintsFUCHSIA = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkSetBufferCollectionImageConstraintsFUCHSIA);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkSetBufferCollectionImageConstraintsFUCHSIA = OP_vkSetBufferCollectionImageConstraintsFUCHSIA;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkSetBufferCollectionImageConstraintsFUCHSIA, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkSetBufferCollectionImageConstraintsFUCHSIA, 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_collection;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    reservedmarshal_VkImageConstraintsInfoFUCHSIA(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkImageConstraintsInfoFUCHSIA*)(local_pImageConstraintsInfo), streamPtrPtr);
+    VkResult vkSetBufferCollectionImageConstraintsFUCHSIA_VkResult_return = (VkResult)0;
+    stream->read(&vkSetBufferCollectionImageConstraintsFUCHSIA_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkSetBufferCollectionImageConstraintsFUCHSIA_VkResult_return;
+}
+
+VkResult VkEncoder::vkSetBufferCollectionBufferConstraintsFUCHSIA(
+    VkDevice device,
+    VkBufferCollectionFUCHSIA collection,
+    const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo,
+    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;
+    VkBufferCollectionFUCHSIA local_collection;
+    VkBufferConstraintsInfoFUCHSIA* local_pBufferConstraintsInfo;
+    local_device = device;
+    local_collection = collection;
+    local_pBufferConstraintsInfo = nullptr;
+    if (pBufferConstraintsInfo)
+    {
+        local_pBufferConstraintsInfo = (VkBufferConstraintsInfoFUCHSIA*)pool->alloc(sizeof(const VkBufferConstraintsInfoFUCHSIA));
+        deepcopy_VkBufferConstraintsInfoFUCHSIA(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pBufferConstraintsInfo, (VkBufferConstraintsInfoFUCHSIA*)(local_pBufferConstraintsInfo));
+    }
+    if (local_pBufferConstraintsInfo)
+    {
+        transform_tohost_VkBufferConstraintsInfoFUCHSIA(sResourceTracker, (VkBufferConstraintsInfoFUCHSIA*)(local_pBufferConstraintsInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += 8;
+        count_VkBufferConstraintsInfoFUCHSIA(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkBufferConstraintsInfoFUCHSIA*)(local_pBufferConstraintsInfo), countPtr);
+    }
+    uint32_t packetSize_vkSetBufferCollectionBufferConstraintsFUCHSIA = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkSetBufferCollectionBufferConstraintsFUCHSIA);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkSetBufferCollectionBufferConstraintsFUCHSIA = OP_vkSetBufferCollectionBufferConstraintsFUCHSIA;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkSetBufferCollectionBufferConstraintsFUCHSIA, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkSetBufferCollectionBufferConstraintsFUCHSIA, 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_collection;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    reservedmarshal_VkBufferConstraintsInfoFUCHSIA(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkBufferConstraintsInfoFUCHSIA*)(local_pBufferConstraintsInfo), streamPtrPtr);
+    VkResult vkSetBufferCollectionBufferConstraintsFUCHSIA_VkResult_return = (VkResult)0;
+    stream->read(&vkSetBufferCollectionBufferConstraintsFUCHSIA_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkSetBufferCollectionBufferConstraintsFUCHSIA_VkResult_return;
+}
+
+void VkEncoder::vkDestroyBufferCollectionFUCHSIA(
+    VkDevice device,
+    VkBufferCollectionFUCHSIA collection,
+    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;
+    VkBufferCollectionFUCHSIA local_collection;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_collection = collection;
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, VK_STRUCTURE_TYPE_MAX_ENUM, 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, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+    }
+    uint32_t packetSize_vkDestroyBufferCollectionFUCHSIA = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkDestroyBufferCollectionFUCHSIA);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkDestroyBufferCollectionFUCHSIA = OP_vkDestroyBufferCollectionFUCHSIA;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkDestroyBufferCollectionFUCHSIA, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkDestroyBufferCollectionFUCHSIA, 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_collection;
+    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, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    stream->flush();
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+VkResult VkEncoder::vkGetBufferCollectionPropertiesFUCHSIA(
+    VkDevice device,
+    VkBufferCollectionFUCHSIA collection,
+    VkBufferCollectionPropertiesFUCHSIA* 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;
+    VkBufferCollectionFUCHSIA local_collection;
+    local_device = device;
+    local_collection = collection;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += 8;
+        count_VkBufferCollectionPropertiesFUCHSIA(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkBufferCollectionPropertiesFUCHSIA*)(pProperties), countPtr);
+    }
+    uint32_t packetSize_vkGetBufferCollectionPropertiesFUCHSIA = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetBufferCollectionPropertiesFUCHSIA);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetBufferCollectionPropertiesFUCHSIA = OP_vkGetBufferCollectionPropertiesFUCHSIA;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetBufferCollectionPropertiesFUCHSIA, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetBufferCollectionPropertiesFUCHSIA, 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_collection;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    reservedmarshal_VkBufferCollectionPropertiesFUCHSIA(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkBufferCollectionPropertiesFUCHSIA*)(pProperties), streamPtrPtr);
+    unmarshal_VkBufferCollectionPropertiesFUCHSIA(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkBufferCollectionPropertiesFUCHSIA*)(pProperties));
+    if (pProperties)
+    {
+        transform_fromhost_VkBufferCollectionPropertiesFUCHSIA(sResourceTracker, (VkBufferCollectionPropertiesFUCHSIA*)(pProperties));
+    }
+    VkResult vkGetBufferCollectionPropertiesFUCHSIA_VkResult_return = (VkResult)0;
+    stream->read(&vkGetBufferCollectionPropertiesFUCHSIA_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetBufferCollectionPropertiesFUCHSIA_VkResult_return;
+}
+
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+VkResult VkEncoder::vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
+    VkDevice device,
+    VkRenderPass renderpass,
+    VkExtent2D* pMaxWorkgroupSize,
+    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;
+    VkRenderPass local_renderpass;
+    local_device = device;
+    local_renderpass = renderpass;
+    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_VkExtent2D(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkExtent2D*)(pMaxWorkgroupSize), countPtr);
+    }
+    uint32_t packetSize_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = OP_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, 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_VkRenderPass((*&local_renderpass));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkExtent2D(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkExtent2D*)(pMaxWorkgroupSize), streamPtrPtr);
+    unmarshal_VkExtent2D(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkExtent2D*)(pMaxWorkgroupSize));
+    if (pMaxWorkgroupSize)
+    {
+        transform_fromhost_VkExtent2D(sResourceTracker, (VkExtent2D*)(pMaxWorkgroupSize));
+    }
+    VkResult vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI_VkResult_return = (VkResult)0;
+    stream->read(&vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI_VkResult_return;
+}
+
+void VkEncoder::vkCmdSubpassShadingHUAWEI(
+    VkCommandBuffer commandBuffer,
+    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;
+    local_commandBuffer = commandBuffer;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+    }
+    uint32_t packetSize_vkCmdSubpassShadingHUAWEI = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSubpassShadingHUAWEI -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSubpassShadingHUAWEI);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSubpassShadingHUAWEI = OP_vkCmdSubpassShadingHUAWEI;
+    memcpy(streamPtr, &opcode_vkCmdSubpassShadingHUAWEI, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSubpassShadingHUAWEI, 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;
+    }
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+void VkEncoder::vkCmdBindInvocationMaskHUAWEI(
+    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_vkCmdBindInvocationMaskHUAWEI = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdBindInvocationMaskHUAWEI -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdBindInvocationMaskHUAWEI);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdBindInvocationMaskHUAWEI = OP_vkCmdBindInvocationMaskHUAWEI;
+    memcpy(streamPtr, &opcode_vkCmdBindInvocationMaskHUAWEI, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdBindInvocationMaskHUAWEI, 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();
+}
+
+#endif
+#ifdef VK_NV_external_memory_rdma
+VkResult VkEncoder::vkGetMemoryRemoteAddressNV(
+    VkDevice device,
+    const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo,
+    VkRemoteAddressNV* pAddress,
+    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;
+    VkMemoryGetRemoteAddressInfoNV* local_pMemoryGetRemoteAddressInfo;
+    local_device = device;
+    local_pMemoryGetRemoteAddressInfo = nullptr;
+    if (pMemoryGetRemoteAddressInfo)
+    {
+        local_pMemoryGetRemoteAddressInfo = (VkMemoryGetRemoteAddressInfoNV*)pool->alloc(sizeof(const VkMemoryGetRemoteAddressInfoNV));
+        deepcopy_VkMemoryGetRemoteAddressInfoNV(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pMemoryGetRemoteAddressInfo, (VkMemoryGetRemoteAddressInfoNV*)(local_pMemoryGetRemoteAddressInfo));
+    }
+    if (local_pMemoryGetRemoteAddressInfo)
+    {
+        transform_tohost_VkMemoryGetRemoteAddressInfoNV(sResourceTracker, (VkMemoryGetRemoteAddressInfoNV*)(local_pMemoryGetRemoteAddressInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkMemoryGetRemoteAddressInfoNV(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkMemoryGetRemoteAddressInfoNV*)(local_pMemoryGetRemoteAddressInfo), countPtr);
+        *countPtr += sizeof(VkRemoteAddressNV);
+    }
+    uint32_t packetSize_vkGetMemoryRemoteAddressNV = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetMemoryRemoteAddressNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetMemoryRemoteAddressNV = OP_vkGetMemoryRemoteAddressNV;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetMemoryRemoteAddressNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetMemoryRemoteAddressNV, 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_VkMemoryGetRemoteAddressInfoNV(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkMemoryGetRemoteAddressInfoNV*)(local_pMemoryGetRemoteAddressInfo), streamPtrPtr);
+    memcpy(*streamPtrPtr, (VkRemoteAddressNV*)pAddress, sizeof(VkRemoteAddressNV));
+    *streamPtrPtr += sizeof(VkRemoteAddressNV);
+    stream->read((VkRemoteAddressNV*)pAddress, sizeof(VkRemoteAddressNV));
+    VkResult vkGetMemoryRemoteAddressNV_VkResult_return = (VkResult)0;
+    stream->read(&vkGetMemoryRemoteAddressNV_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetMemoryRemoteAddressNV_VkResult_return;
+}
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+void VkEncoder::vkCmdSetPatchControlPointsEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t patchControlPoints,
+    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_patchControlPoints;
+    local_commandBuffer = commandBuffer;
+    local_patchControlPoints = patchControlPoints;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkCmdSetPatchControlPointsEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetPatchControlPointsEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetPatchControlPointsEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetPatchControlPointsEXT = OP_vkCmdSetPatchControlPointsEXT;
+    memcpy(streamPtr, &opcode_vkCmdSetPatchControlPointsEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetPatchControlPointsEXT, 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_patchControlPoints, 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::vkCmdSetRasterizerDiscardEnableEXT(
+    VkCommandBuffer commandBuffer,
+    VkBool32 rasterizerDiscardEnable,
+    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_rasterizerDiscardEnable;
+    local_commandBuffer = commandBuffer;
+    local_rasterizerDiscardEnable = rasterizerDiscardEnable;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkBool32);
+    }
+    uint32_t packetSize_vkCmdSetRasterizerDiscardEnableEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetRasterizerDiscardEnableEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetRasterizerDiscardEnableEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetRasterizerDiscardEnableEXT = OP_vkCmdSetRasterizerDiscardEnableEXT;
+    memcpy(streamPtr, &opcode_vkCmdSetRasterizerDiscardEnableEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetRasterizerDiscardEnableEXT, 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_rasterizerDiscardEnable, sizeof(VkBool32));
+    *streamPtrPtr += sizeof(VkBool32);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdSetDepthBiasEnableEXT(
+    VkCommandBuffer commandBuffer,
+    VkBool32 depthBiasEnable,
+    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_depthBiasEnable;
+    local_commandBuffer = commandBuffer;
+    local_depthBiasEnable = depthBiasEnable;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkBool32);
+    }
+    uint32_t packetSize_vkCmdSetDepthBiasEnableEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetDepthBiasEnableEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetDepthBiasEnableEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetDepthBiasEnableEXT = OP_vkCmdSetDepthBiasEnableEXT;
+    memcpy(streamPtr, &opcode_vkCmdSetDepthBiasEnableEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetDepthBiasEnableEXT, 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_depthBiasEnable, sizeof(VkBool32));
+    *streamPtrPtr += sizeof(VkBool32);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdSetLogicOpEXT(
+    VkCommandBuffer commandBuffer,
+    VkLogicOp logicOp,
+    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;
+    VkLogicOp local_logicOp;
+    local_commandBuffer = commandBuffer;
+    local_logicOp = logicOp;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkLogicOp);
+    }
+    uint32_t packetSize_vkCmdSetLogicOpEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetLogicOpEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetLogicOpEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetLogicOpEXT = OP_vkCmdSetLogicOpEXT;
+    memcpy(streamPtr, &opcode_vkCmdSetLogicOpEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetLogicOpEXT, 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, (VkLogicOp*)&local_logicOp, sizeof(VkLogicOp));
+    *streamPtrPtr += sizeof(VkLogicOp);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdSetPrimitiveRestartEnableEXT(
+    VkCommandBuffer commandBuffer,
+    VkBool32 primitiveRestartEnable,
+    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_primitiveRestartEnable;
+    local_commandBuffer = commandBuffer;
+    local_primitiveRestartEnable = primitiveRestartEnable;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkBool32);
+    }
+    uint32_t packetSize_vkCmdSetPrimitiveRestartEnableEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetPrimitiveRestartEnableEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetPrimitiveRestartEnableEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetPrimitiveRestartEnableEXT = OP_vkCmdSetPrimitiveRestartEnableEXT;
+    memcpy(streamPtr, &opcode_vkCmdSetPrimitiveRestartEnableEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetPrimitiveRestartEnableEXT, 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_primitiveRestartEnable, sizeof(VkBool32));
+    *streamPtrPtr += sizeof(VkBool32);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_QNX_screen_surface
+VkResult VkEncoder::vkCreateScreenSurfaceQNX(
+    VkInstance instance,
+    const VkScreenSurfaceCreateInfoQNX* 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;
+    VkScreenSurfaceCreateInfoQNX* local_pCreateInfo;
+    VkAllocationCallbacks* local_pAllocator;
+    local_instance = instance;
+    local_pCreateInfo = nullptr;
+    if (pCreateInfo)
+    {
+        local_pCreateInfo = (VkScreenSurfaceCreateInfoQNX*)pool->alloc(sizeof(const VkScreenSurfaceCreateInfoQNX));
+        deepcopy_VkScreenSurfaceCreateInfoQNX(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pCreateInfo, (VkScreenSurfaceCreateInfoQNX*)(local_pCreateInfo));
+    }
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pCreateInfo)
+    {
+        transform_tohost_VkScreenSurfaceCreateInfoQNX(sResourceTracker, (VkScreenSurfaceCreateInfoQNX*)(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_VkScreenSurfaceCreateInfoQNX(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkScreenSurfaceCreateInfoQNX*)(local_pCreateInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+        uint64_t cgen_var_1;
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkCreateScreenSurfaceQNX = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateScreenSurfaceQNX);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCreateScreenSurfaceQNX = OP_vkCreateScreenSurfaceQNX;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCreateScreenSurfaceQNX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCreateScreenSurfaceQNX, 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_VkScreenSurfaceCreateInfoQNX(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkScreenSurfaceCreateInfoQNX*)(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, VK_STRUCTURE_TYPE_MAX_ENUM, (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 vkCreateScreenSurfaceQNX_VkResult_return = (VkResult)0;
+    stream->read(&vkCreateScreenSurfaceQNX_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCreateScreenSurfaceQNX_VkResult_return;
+}
+
+VkBool32 VkEncoder::vkGetPhysicalDeviceScreenPresentationSupportQNX(
+    VkPhysicalDevice physicalDevice,
+    uint32_t queueFamilyIndex,
+    _screen_window* window,
+    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(_screen_window);
+    }
+    uint32_t packetSize_vkGetPhysicalDeviceScreenPresentationSupportQNX = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetPhysicalDeviceScreenPresentationSupportQNX);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetPhysicalDeviceScreenPresentationSupportQNX = OP_vkGetPhysicalDeviceScreenPresentationSupportQNX;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetPhysicalDeviceScreenPresentationSupportQNX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceScreenPresentationSupportQNX, 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, (_screen_window*)window, sizeof(_screen_window));
+    *streamPtrPtr += sizeof(_screen_window);
+    stream->read((_screen_window*)window, sizeof(_screen_window));
+    VkBool32 vkGetPhysicalDeviceScreenPresentationSupportQNX_VkBool32_return = (VkBool32)0;
+    stream->read(&vkGetPhysicalDeviceScreenPresentationSupportQNX_VkBool32_return, sizeof(VkBool32));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetPhysicalDeviceScreenPresentationSupportQNX_VkBool32_return;
+}
+
+#endif
+#ifdef VK_EXT_color_write_enable
+void VkEncoder::vkCmdSetColorWriteEnableEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t attachmentCount,
+    const VkBool32* pColorWriteEnables,
+    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_attachmentCount;
+    VkBool32* local_pColorWriteEnables;
+    local_commandBuffer = commandBuffer;
+    local_attachmentCount = attachmentCount;
+    // Avoiding deepcopy for pColorWriteEnables
+    local_pColorWriteEnables = (VkBool32*)pColorWriteEnables;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        *countPtr += ((attachmentCount)) * sizeof(VkBool32);
+    }
+    uint32_t packetSize_vkCmdSetColorWriteEnableEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetColorWriteEnableEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetColorWriteEnableEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetColorWriteEnableEXT = OP_vkCmdSetColorWriteEnableEXT;
+    memcpy(streamPtr, &opcode_vkCmdSetColorWriteEnableEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetColorWriteEnableEXT, 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_attachmentCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (VkBool32*)local_pColorWriteEnables, ((attachmentCount)) * sizeof(VkBool32));
+    *streamPtrPtr += ((attachmentCount)) * sizeof(VkBool32);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
 #ifdef VK_GOOGLE_gfxstream
 VkResult VkEncoder::vkRegisterImageColorBufferGOOGLE(
     VkDevice device,
@@ -34601,6 +38719,296 @@
 }
 
 #endif
+#ifdef VK_EXT_global_priority_query
+#endif
+#ifdef VK_EXT_multi_draw
+void VkEncoder::vkCmdDrawMultiEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t drawCount,
+    const VkMultiDrawInfoEXT* pVertexInfo,
+    uint32_t instanceCount,
+    uint32_t firstInstance,
+    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;
+    uint32_t local_drawCount;
+    VkMultiDrawInfoEXT* local_pVertexInfo;
+    uint32_t local_instanceCount;
+    uint32_t local_firstInstance;
+    uint32_t local_stride;
+    local_commandBuffer = commandBuffer;
+    local_drawCount = drawCount;
+    local_pVertexInfo = nullptr;
+    if (pVertexInfo)
+    {
+        local_pVertexInfo = (VkMultiDrawInfoEXT*)pool->alloc(((drawCount)) * sizeof(const VkMultiDrawInfoEXT));
+        for (uint32_t i = 0; i < (uint32_t)((drawCount)); ++i)
+        {
+            deepcopy_VkMultiDrawInfoEXT(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pVertexInfo + i, (VkMultiDrawInfoEXT*)(local_pVertexInfo + i));
+        }
+    }
+    local_instanceCount = instanceCount;
+    local_firstInstance = firstInstance;
+    local_stride = stride;
+    if (local_pVertexInfo)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((drawCount)); ++i)
+        {
+            transform_tohost_VkMultiDrawInfoEXT(sResourceTracker, (VkMultiDrawInfoEXT*)(local_pVertexInfo + i));
+        }
+    }
+    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 (local_pVertexInfo)
+        {
+            for (uint32_t i = 0; i < (uint32_t)((drawCount)); ++i)
+            {
+                count_VkMultiDrawInfoEXT(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkMultiDrawInfoEXT*)(local_pVertexInfo + i), countPtr);
+            }
+        }
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkCmdDrawMultiEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdDrawMultiEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdDrawMultiEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdDrawMultiEXT = OP_vkCmdDrawMultiEXT;
+    memcpy(streamPtr, &opcode_vkCmdDrawMultiEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdDrawMultiEXT, 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_drawCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)local_pVertexInfo;
+    memcpy((*streamPtrPtr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pVertexInfo)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((drawCount)); ++i)
+        {
+            reservedmarshal_VkMultiDrawInfoEXT(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkMultiDrawInfoEXT*)(local_pVertexInfo + i), streamPtrPtr);
+        }
+    }
+    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);
+    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::vkCmdDrawMultiIndexedEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t drawCount,
+    const VkMultiDrawIndexedInfoEXT* pIndexInfo,
+    uint32_t instanceCount,
+    uint32_t firstInstance,
+    uint32_t stride,
+    const int32_t* pVertexOffset,
+    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_drawCount;
+    VkMultiDrawIndexedInfoEXT* local_pIndexInfo;
+    uint32_t local_instanceCount;
+    uint32_t local_firstInstance;
+    uint32_t local_stride;
+    int32_t* local_pVertexOffset;
+    local_commandBuffer = commandBuffer;
+    local_drawCount = drawCount;
+    local_pIndexInfo = nullptr;
+    if (pIndexInfo)
+    {
+        local_pIndexInfo = (VkMultiDrawIndexedInfoEXT*)pool->alloc(((drawCount)) * sizeof(const VkMultiDrawIndexedInfoEXT));
+        for (uint32_t i = 0; i < (uint32_t)((drawCount)); ++i)
+        {
+            deepcopy_VkMultiDrawIndexedInfoEXT(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pIndexInfo + i, (VkMultiDrawIndexedInfoEXT*)(local_pIndexInfo + i));
+        }
+    }
+    local_instanceCount = instanceCount;
+    local_firstInstance = firstInstance;
+    local_stride = stride;
+    // Avoiding deepcopy for pVertexOffset
+    local_pVertexOffset = (int32_t*)pVertexOffset;
+    if (local_pIndexInfo)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((drawCount)); ++i)
+        {
+            transform_tohost_VkMultiDrawIndexedInfoEXT(sResourceTracker, (VkMultiDrawIndexedInfoEXT*)(local_pIndexInfo + i));
+        }
+    }
+    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 (local_pIndexInfo)
+        {
+            for (uint32_t i = 0; i < (uint32_t)((drawCount)); ++i)
+            {
+                count_VkMultiDrawIndexedInfoEXT(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkMultiDrawIndexedInfoEXT*)(local_pIndexInfo + i), countPtr);
+            }
+        }
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pVertexOffset)
+        {
+            *countPtr += sizeof(int32_t);
+        }
+    }
+    uint32_t packetSize_vkCmdDrawMultiIndexedEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdDrawMultiIndexedEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdDrawMultiIndexedEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdDrawMultiIndexedEXT = OP_vkCmdDrawMultiIndexedEXT;
+    memcpy(streamPtr, &opcode_vkCmdDrawMultiIndexedEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdDrawMultiIndexedEXT, 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_drawCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)local_pIndexInfo;
+    memcpy((*streamPtrPtr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pIndexInfo)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((drawCount)); ++i)
+        {
+            reservedmarshal_VkMultiDrawIndexedInfoEXT(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkMultiDrawIndexedInfoEXT*)(local_pIndexInfo + i), streamPtrPtr);
+        }
+    }
+    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);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_stride, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pVertexOffset;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pVertexOffset)
+    {
+        memcpy(*streamPtrPtr, (int32_t*)local_pVertexOffset, sizeof(int32_t));
+        *streamPtrPtr += sizeof(int32_t);
+    }
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_EXT_load_store_op_none
+#endif
+#ifdef VK_EXT_border_color_swizzle
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+void VkEncoder::vkSetDeviceMemoryPriorityEXT(
+    VkDevice device,
+    VkDeviceMemory memory,
+    float priority,
+    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;
+    VkDeviceMemory local_memory;
+    float local_priority;
+    local_device = device;
+    local_memory = memory;
+    local_priority = priority;
+    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(float);
+    }
+    uint32_t packetSize_vkSetDeviceMemoryPriorityEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkSetDeviceMemoryPriorityEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkSetDeviceMemoryPriorityEXT = OP_vkSetDeviceMemoryPriorityEXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkSetDeviceMemoryPriorityEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkSetDeviceMemoryPriorityEXT, 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;
+    memcpy(*streamPtrPtr, (float*)&local_priority, sizeof(float));
+    *streamPtrPtr += sizeof(float);
+    stream->flush();
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
 #ifdef VK_KHR_acceleration_structure
 VkResult VkEncoder::vkCreateAccelerationStructureKHR(
     VkDevice device,
@@ -35711,7 +40119,12 @@
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkAccelerationStructureBuildTypeKHR);
         count_VkAccelerationStructureBuildGeometryInfoKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAccelerationStructureBuildGeometryInfoKHR*)(local_pBuildInfo), countPtr);
-        *countPtr += pBuildInfo->geometryCount * sizeof(uint32_t);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pMaxPrimitiveCounts)
+        {
+            *countPtr += pBuildInfo->geometryCount * sizeof(uint32_t);
+        }
         count_VkAccelerationStructureBuildSizesInfoKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAccelerationStructureBuildSizesInfoKHR*)(pSizeInfo), countPtr);
     }
     uint32_t packetSize_vkGetAccelerationStructureBuildSizesKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -35729,8 +40142,16 @@
     memcpy(*streamPtrPtr, (VkAccelerationStructureBuildTypeKHR*)&local_buildType, sizeof(VkAccelerationStructureBuildTypeKHR));
     *streamPtrPtr += sizeof(VkAccelerationStructureBuildTypeKHR);
     reservedmarshal_VkAccelerationStructureBuildGeometryInfoKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAccelerationStructureBuildGeometryInfoKHR*)(local_pBuildInfo), streamPtrPtr);
-    memcpy(*streamPtrPtr, (uint32_t*)local_pMaxPrimitiveCounts, pBuildInfo->geometryCount * sizeof(uint32_t));
-    *streamPtrPtr += pBuildInfo->geometryCount * sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pMaxPrimitiveCounts;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pMaxPrimitiveCounts)
+    {
+        memcpy(*streamPtrPtr, (uint32_t*)local_pMaxPrimitiveCounts, pBuildInfo->geometryCount * sizeof(uint32_t));
+        *streamPtrPtr += pBuildInfo->geometryCount * sizeof(uint32_t);
+    }
     reservedmarshal_VkAccelerationStructureBuildSizesInfoKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAccelerationStructureBuildSizesInfoKHR*)(pSizeInfo), streamPtrPtr);
     unmarshal_VkAccelerationStructureBuildSizesInfoKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkAccelerationStructureBuildSizesInfoKHR*)(pSizeInfo));
     if (pSizeInfo)
diff --git a/system/vulkan_enc/VkEncoder.h b/system/vulkan_enc/VkEncoder.h
index 91554c2..06dcbfb 100644
--- a/system/vulkan_enc/VkEncoder.h
+++ b/system/vulkan_enc/VkEncoder.h
@@ -1255,6 +1255,85 @@
 #endif
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
+#ifdef VK_KHR_video_queue
+    VkResult vkGetPhysicalDeviceVideoCapabilitiesKHR(
+    VkPhysicalDevice physicalDevice,
+        const VkVideoProfileKHR* pVideoProfile,
+        VkVideoCapabilitiesKHR* pCapabilities,
+        uint32_t doLock);
+    VkResult vkGetPhysicalDeviceVideoFormatPropertiesKHR(
+    VkPhysicalDevice physicalDevice,
+        const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo,
+        uint32_t* pVideoFormatPropertyCount,
+        VkVideoFormatPropertiesKHR* pVideoFormatProperties,
+        uint32_t doLock);
+    VkResult vkCreateVideoSessionKHR(
+    VkDevice device,
+        const VkVideoSessionCreateInfoKHR* pCreateInfo,
+        const VkAllocationCallbacks* pAllocator,
+        VkVideoSessionKHR* pVideoSession,
+        uint32_t doLock);
+    void vkDestroyVideoSessionKHR(
+    VkDevice device,
+        VkVideoSessionKHR videoSession,
+        const VkAllocationCallbacks* pAllocator,
+        uint32_t doLock);
+    VkResult vkGetVideoSessionMemoryRequirementsKHR(
+    VkDevice device,
+        VkVideoSessionKHR videoSession,
+        uint32_t* pVideoSessionMemoryRequirementsCount,
+        VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements,
+        uint32_t doLock);
+    VkResult vkBindVideoSessionMemoryKHR(
+    VkDevice device,
+        VkVideoSessionKHR videoSession,
+        uint32_t videoSessionBindMemoryCount,
+        const VkVideoBindMemoryKHR* pVideoSessionBindMemories,
+        uint32_t doLock);
+    VkResult vkCreateVideoSessionParametersKHR(
+    VkDevice device,
+        const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
+        const VkAllocationCallbacks* pAllocator,
+        VkVideoSessionParametersKHR* pVideoSessionParameters,
+        uint32_t doLock);
+    VkResult vkUpdateVideoSessionParametersKHR(
+    VkDevice device,
+        VkVideoSessionParametersKHR videoSessionParameters,
+        const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo,
+        uint32_t doLock);
+    void vkDestroyVideoSessionParametersKHR(
+    VkDevice device,
+        VkVideoSessionParametersKHR videoSessionParameters,
+        const VkAllocationCallbacks* pAllocator,
+        uint32_t doLock);
+    void vkCmdBeginVideoCodingKHR(
+    VkCommandBuffer commandBuffer,
+        const VkVideoBeginCodingInfoKHR* pBeginInfo,
+        uint32_t doLock);
+    void vkCmdEndVideoCodingKHR(
+    VkCommandBuffer commandBuffer,
+        const VkVideoEndCodingInfoKHR* pEndCodingInfo,
+        uint32_t doLock);
+    void vkCmdControlVideoCodingKHR(
+    VkCommandBuffer commandBuffer,
+        const VkVideoCodingControlInfoKHR* pCodingControlInfo,
+        uint32_t doLock);
+#endif
+#ifdef VK_KHR_video_decode_queue
+    void vkCmdDecodeVideoKHR(
+    VkCommandBuffer commandBuffer,
+        const VkVideoDecodeInfoKHR* pFrameInfo,
+        uint32_t doLock);
+#endif
+#ifdef VK_KHR_dynamic_rendering
+    void vkCmdBeginRenderingKHR(
+    VkCommandBuffer commandBuffer,
+        const VkRenderingInfoKHR* pRenderingInfo,
+        uint32_t doLock);
+    void vkCmdEndRenderingKHR(
+    VkCommandBuffer commandBuffer,
+        uint32_t doLock);
+#endif
 #ifdef VK_KHR_multiview
 #endif
 #ifdef VK_KHR_get_physical_device_properties2
@@ -1696,6 +1775,14 @@
 #endif
 #ifdef VK_KHR_separate_depth_stencil_layouts
 #endif
+#ifdef VK_KHR_present_wait
+    VkResult vkWaitForPresentKHR(
+    VkDevice device,
+        VkSwapchainKHR swapchain,
+        uint64_t presentId,
+        uint64_t timeout,
+        uint32_t doLock);
+#endif
 #ifdef VK_KHR_uniform_buffer_standard_layout
 #endif
 #ifdef VK_KHR_buffer_device_address
@@ -1756,10 +1843,72 @@
         VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations,
         uint32_t doLock);
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+#endif
 #ifdef VK_KHR_pipeline_library
 #endif
 #ifdef VK_KHR_shader_non_semantic_info
 #endif
+#ifdef VK_KHR_present_id
+#endif
+#ifdef VK_KHR_video_encode_queue
+    void vkCmdEncodeVideoKHR(
+    VkCommandBuffer commandBuffer,
+        const VkVideoEncodeInfoKHR* pEncodeInfo,
+        uint32_t doLock);
+#endif
+#ifdef VK_KHR_synchronization2
+    void vkCmdSetEvent2KHR(
+    VkCommandBuffer commandBuffer,
+        VkEvent event,
+        const VkDependencyInfoKHR* pDependencyInfo,
+        uint32_t doLock);
+    void vkCmdResetEvent2KHR(
+    VkCommandBuffer commandBuffer,
+        VkEvent event,
+        VkPipelineStageFlags2KHR stageMask,
+        uint32_t doLock);
+    void vkCmdWaitEvents2KHR(
+    VkCommandBuffer commandBuffer,
+        uint32_t eventCount,
+        const VkEvent* pEvents,
+        const VkDependencyInfoKHR* pDependencyInfos,
+        uint32_t doLock);
+    void vkCmdPipelineBarrier2KHR(
+    VkCommandBuffer commandBuffer,
+        const VkDependencyInfoKHR* pDependencyInfo,
+        uint32_t doLock);
+    void vkCmdWriteTimestamp2KHR(
+    VkCommandBuffer commandBuffer,
+        VkPipelineStageFlags2KHR stage,
+        VkQueryPool queryPool,
+        uint32_t query,
+        uint32_t doLock);
+    VkResult vkQueueSubmit2KHR(
+    VkQueue queue,
+        uint32_t submitCount,
+        const VkSubmitInfo2KHR* pSubmits,
+        VkFence fence,
+        uint32_t doLock);
+    void vkCmdWriteBufferMarker2AMD(
+    VkCommandBuffer commandBuffer,
+        VkPipelineStageFlags2KHR stage,
+        VkBuffer dstBuffer,
+        VkDeviceSize dstOffset,
+        uint32_t marker,
+        uint32_t doLock);
+    void vkGetQueueCheckpointData2NV(
+    VkQueue queue,
+        uint32_t* pCheckpointDataCount,
+        VkCheckpointData2NV* pCheckpointData,
+        uint32_t doLock);
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+#endif
 #ifdef VK_KHR_copy_commands2
     void vkCmdCopyBuffer2KHR(
     VkCommandBuffer commandBuffer,
@@ -1786,6 +1935,26 @@
         const VkResolveImageInfo2KHR* pResolveImageInfo,
         uint32_t doLock);
 #endif
+#ifdef VK_KHR_format_feature_flags2
+#endif
+#ifdef VK_KHR_maintenance4
+    void vkGetDeviceBufferMemoryRequirementsKHR(
+    VkDevice device,
+        const VkDeviceBufferMemoryRequirementsKHR* pInfo,
+        VkMemoryRequirements2* pMemoryRequirements,
+        uint32_t doLock);
+    void vkGetDeviceImageMemoryRequirementsKHR(
+    VkDevice device,
+        const VkDeviceImageMemoryRequirementsKHR* pInfo,
+        VkMemoryRequirements2* pMemoryRequirements,
+        uint32_t doLock);
+    void vkGetDeviceImageSparseMemoryRequirementsKHR(
+    VkDevice device,
+        const VkDeviceImageMemoryRequirementsKHR* pInfo,
+        uint32_t* pSparseMemoryRequirementCount,
+        VkSparseImageMemoryRequirements2* pSparseMemoryRequirements,
+        uint32_t doLock);
+#endif
 #ifdef VK_ANDROID_native_buffer
     VkResult vkGetSwapchainGrallocUsageANDROID(
     VkDevice device,
@@ -1914,6 +2083,34 @@
         uint32_t vertexStride,
         uint32_t doLock);
 #endif
+#ifdef VK_NVX_binary_import
+    VkResult vkCreateCuModuleNVX(
+    VkDevice device,
+        const VkCuModuleCreateInfoNVX* pCreateInfo,
+        const VkAllocationCallbacks* pAllocator,
+        VkCuModuleNVX* pModule,
+        uint32_t doLock);
+    VkResult vkCreateCuFunctionNVX(
+    VkDevice device,
+        const VkCuFunctionCreateInfoNVX* pCreateInfo,
+        const VkAllocationCallbacks* pAllocator,
+        VkCuFunctionNVX* pFunction,
+        uint32_t doLock);
+    void vkDestroyCuModuleNVX(
+    VkDevice device,
+        VkCuModuleNVX module,
+        const VkAllocationCallbacks* pAllocator,
+        uint32_t doLock);
+    void vkDestroyCuFunctionNVX(
+    VkDevice device,
+        VkCuFunctionNVX function,
+        const VkAllocationCallbacks* pAllocator,
+        uint32_t doLock);
+    void vkCmdCuLaunchKernelNVX(
+    VkCommandBuffer commandBuffer,
+        const VkCuLaunchInfoNVX* pLaunchInfo,
+        uint32_t doLock);
+#endif
 #ifdef VK_NVX_image_view_handle
     uint32_t vkGetImageViewHandleNVX(
     VkDevice device,
@@ -1951,6 +2148,12 @@
 #endif
 #ifdef VK_AMD_shader_ballot
 #endif
+#ifdef VK_EXT_video_encode_h264
+#endif
+#ifdef VK_EXT_video_encode_h265
+#endif
+#ifdef VK_EXT_video_decode_h264
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
 #endif
 #ifdef VK_AMD_shader_info
@@ -2473,6 +2676,8 @@
 #endif
 #ifdef VK_AMD_shader_core_properties
 #endif
+#ifdef VK_EXT_video_decode_h265
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
 #endif
 #ifdef VK_EXT_vertex_attribute_divisor
@@ -2654,6 +2859,8 @@
 #endif
 #ifdef VK_EXT_ycbcr_image_arrays
 #endif
+#ifdef VK_EXT_provoking_vertex
+#endif
 #ifdef VK_EXT_full_screen_exclusive
     VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT(
     VkPhysicalDevice physicalDevice,
@@ -2763,6 +2970,8 @@
         VkCompareOp compareOp,
         uint32_t doLock);
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+#endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 #endif
 #ifdef VK_NV_device_generated_commands
@@ -2798,12 +3007,27 @@
         const VkAllocationCallbacks* pAllocator,
         uint32_t doLock);
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+#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_acquire_drm_display
+    VkResult vkAcquireDrmDisplayEXT(
+    VkPhysicalDevice physicalDevice,
+        int32_t drmFd,
+        VkDisplayKHR display,
+        uint32_t doLock);
+    VkResult vkGetDrmDisplayEXT(
+    VkPhysicalDevice physicalDevice,
+        int32_t drmFd,
+        uint32_t connectorId,
+        VkDisplayKHR* display,
+        uint32_t doLock);
+#endif
 #ifdef VK_EXT_robustness2
 #endif
 #ifdef VK_EXT_custom_border_color
@@ -2850,6 +3074,10 @@
         const VkFragmentShadingRateCombinerOpKHR combinerOps[2],
         uint32_t doLock);
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+#endif
 #ifdef VK_EXT_fragment_density_map2
 #endif
 #ifdef VK_QCOM_rotated_copy_commands
@@ -2858,6 +3086,19 @@
 #endif
 #ifdef VK_EXT_4444_formats
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+#endif
+#ifdef VK_NV_acquire_winrt_display
+    VkResult vkAcquireWinrtDisplayNV(
+    VkPhysicalDevice physicalDevice,
+        VkDisplayKHR display,
+        uint32_t doLock);
+    VkResult vkGetWinrtDisplayNV(
+    VkPhysicalDevice physicalDevice,
+        uint32_t deviceRelativeId,
+        VkDisplayKHR* pDisplay,
+        uint32_t doLock);
+#endif
 #ifdef VK_EXT_directfb_surface
     VkResult vkCreateDirectFBSurfaceEXT(
     VkInstance instance,
@@ -2871,6 +3112,139 @@
         IDirectFB* dfb,
         uint32_t doLock);
 #endif
+#ifdef VK_VALVE_mutable_descriptor_type
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+    void vkCmdSetVertexInputEXT(
+    VkCommandBuffer commandBuffer,
+        uint32_t vertexBindingDescriptionCount,
+        const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions,
+        uint32_t vertexAttributeDescriptionCount,
+        const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions,
+        uint32_t doLock);
+#endif
+#ifdef VK_EXT_physical_device_drm
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+#endif
+#ifdef VK_FUCHSIA_external_memory
+    VkResult vkGetMemoryZirconHandleFUCHSIA(
+    VkDevice device,
+        const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
+        zx_handle_t* pZirconHandle,
+        uint32_t doLock);
+    VkResult vkGetMemoryZirconHandlePropertiesFUCHSIA(
+    VkDevice device,
+        VkExternalMemoryHandleTypeFlagBits handleType,
+        zx_handle_t zirconHandle,
+        VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties,
+        uint32_t doLock);
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+    VkResult vkImportSemaphoreZirconHandleFUCHSIA(
+    VkDevice device,
+        const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo,
+        uint32_t doLock);
+    VkResult vkGetSemaphoreZirconHandleFUCHSIA(
+    VkDevice device,
+        const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
+        zx_handle_t* pZirconHandle,
+        uint32_t doLock);
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+    VkResult vkCreateBufferCollectionFUCHSIA(
+    VkDevice device,
+        const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo,
+        const VkAllocationCallbacks* pAllocator,
+        VkBufferCollectionFUCHSIA* pCollection,
+        uint32_t doLock);
+    VkResult vkSetBufferCollectionImageConstraintsFUCHSIA(
+    VkDevice device,
+        VkBufferCollectionFUCHSIA collection,
+        const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo,
+        uint32_t doLock);
+    VkResult vkSetBufferCollectionBufferConstraintsFUCHSIA(
+    VkDevice device,
+        VkBufferCollectionFUCHSIA collection,
+        const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo,
+        uint32_t doLock);
+    void vkDestroyBufferCollectionFUCHSIA(
+    VkDevice device,
+        VkBufferCollectionFUCHSIA collection,
+        const VkAllocationCallbacks* pAllocator,
+        uint32_t doLock);
+    VkResult vkGetBufferCollectionPropertiesFUCHSIA(
+    VkDevice device,
+        VkBufferCollectionFUCHSIA collection,
+        VkBufferCollectionPropertiesFUCHSIA* pProperties,
+        uint32_t doLock);
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+    VkResult vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
+    VkDevice device,
+        VkRenderPass renderpass,
+        VkExtent2D* pMaxWorkgroupSize,
+        uint32_t doLock);
+    void vkCmdSubpassShadingHUAWEI(
+    VkCommandBuffer commandBuffer,
+        uint32_t doLock);
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+    void vkCmdBindInvocationMaskHUAWEI(
+    VkCommandBuffer commandBuffer,
+        VkImageView imageView,
+        VkImageLayout imageLayout,
+        uint32_t doLock);
+#endif
+#ifdef VK_NV_external_memory_rdma
+    VkResult vkGetMemoryRemoteAddressNV(
+    VkDevice device,
+        const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo,
+        VkRemoteAddressNV* pAddress,
+        uint32_t doLock);
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+    void vkCmdSetPatchControlPointsEXT(
+    VkCommandBuffer commandBuffer,
+        uint32_t patchControlPoints,
+        uint32_t doLock);
+    void vkCmdSetRasterizerDiscardEnableEXT(
+    VkCommandBuffer commandBuffer,
+        VkBool32 rasterizerDiscardEnable,
+        uint32_t doLock);
+    void vkCmdSetDepthBiasEnableEXT(
+    VkCommandBuffer commandBuffer,
+        VkBool32 depthBiasEnable,
+        uint32_t doLock);
+    void vkCmdSetLogicOpEXT(
+    VkCommandBuffer commandBuffer,
+        VkLogicOp logicOp,
+        uint32_t doLock);
+    void vkCmdSetPrimitiveRestartEnableEXT(
+    VkCommandBuffer commandBuffer,
+        VkBool32 primitiveRestartEnable,
+        uint32_t doLock);
+#endif
+#ifdef VK_QNX_screen_surface
+    VkResult vkCreateScreenSurfaceQNX(
+    VkInstance instance,
+        const VkScreenSurfaceCreateInfoQNX* pCreateInfo,
+        const VkAllocationCallbacks* pAllocator,
+        VkSurfaceKHR* pSurface,
+        uint32_t doLock);
+    VkBool32 vkGetPhysicalDeviceScreenPresentationSupportQNX(
+    VkPhysicalDevice physicalDevice,
+        uint32_t queueFamilyIndex,
+        _screen_window* window,
+        uint32_t doLock);
+#endif
+#ifdef VK_EXT_color_write_enable
+    void vkCmdSetColorWriteEnableEXT(
+    VkCommandBuffer commandBuffer,
+        uint32_t attachmentCount,
+        const VkBool32* pColorWriteEnables,
+        uint32_t doLock);
+#endif
 #ifdef VK_GOOGLE_gfxstream
     VkResult vkRegisterImageColorBufferGOOGLE(
     VkDevice device,
@@ -3001,6 +3375,38 @@
         VkImage image,
         uint32_t doLock);
 #endif
+#ifdef VK_EXT_global_priority_query
+#endif
+#ifdef VK_EXT_multi_draw
+    void vkCmdDrawMultiEXT(
+    VkCommandBuffer commandBuffer,
+        uint32_t drawCount,
+        const VkMultiDrawInfoEXT* pVertexInfo,
+        uint32_t instanceCount,
+        uint32_t firstInstance,
+        uint32_t stride,
+        uint32_t doLock);
+    void vkCmdDrawMultiIndexedEXT(
+    VkCommandBuffer commandBuffer,
+        uint32_t drawCount,
+        const VkMultiDrawIndexedInfoEXT* pIndexInfo,
+        uint32_t instanceCount,
+        uint32_t firstInstance,
+        uint32_t stride,
+        const int32_t* pVertexOffset,
+        uint32_t doLock);
+#endif
+#ifdef VK_EXT_load_store_op_none
+#endif
+#ifdef VK_EXT_border_color_swizzle
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+    void vkSetDeviceMemoryPriorityEXT(
+    VkDevice device,
+        VkDeviceMemory memory,
+        float priority,
+        uint32_t doLock);
+#endif
 #ifdef VK_KHR_acceleration_structure
     VkResult vkCreateAccelerationStructureKHR(
     VkDevice device,
diff --git a/system/vulkan_enc/func_table.cpp b/system/vulkan_enc/func_table.cpp
index a27e40f..d19f969 100644
--- a/system/vulkan_enc/func_table.cpp
+++ b/system/vulkan_enc/func_table.cpp
@@ -2812,6 +2812,271 @@
 #endif
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
+#ifdef VK_KHR_video_queue
+static VkResult entry_vkGetPhysicalDeviceVideoCapabilitiesKHR(
+    VkPhysicalDevice physicalDevice,
+    const VkVideoProfileKHR* pVideoProfile,
+    VkVideoCapabilitiesKHR* pCapabilities)
+{
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceVideoCapabilitiesKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetPhysicalDeviceVideoCapabilitiesKHR_VkResult_return = (VkResult)0;
+    vkGetPhysicalDeviceVideoCapabilitiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities, true /* do lock */);
+    return vkGetPhysicalDeviceVideoCapabilitiesKHR_VkResult_return;
+}
+static VkResult entry_vkGetPhysicalDeviceVideoFormatPropertiesKHR(
+    VkPhysicalDevice physicalDevice,
+    const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo,
+    uint32_t* pVideoFormatPropertyCount,
+    VkVideoFormatPropertiesKHR* pVideoFormatProperties)
+{
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceVideoFormatPropertiesKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetPhysicalDeviceVideoFormatPropertiesKHR_VkResult_return = (VkResult)0;
+    vkGetPhysicalDeviceVideoFormatPropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties, true /* do lock */);
+    return vkGetPhysicalDeviceVideoFormatPropertiesKHR_VkResult_return;
+}
+static VkResult entry_vkCreateVideoSessionKHR(
+    VkDevice device,
+    const VkVideoSessionCreateInfoKHR* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkVideoSessionKHR* pVideoSession)
+{
+    AEMU_SCOPED_TRACE("vkCreateVideoSessionKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateVideoSessionKHR_VkResult_return = (VkResult)0;
+    vkCreateVideoSessionKHR_VkResult_return = vkEnc->vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession, true /* do lock */);
+    return vkCreateVideoSessionKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkCreateVideoSessionKHR(
+    VkDevice device,
+    const VkVideoSessionCreateInfoKHR* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkVideoSessionKHR* pVideoSession)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkCreateVideoSessionKHR", "VK_KHR_video_queue");
+    }
+    AEMU_SCOPED_TRACE("vkCreateVideoSessionKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateVideoSessionKHR_VkResult_return = (VkResult)0;
+    vkCreateVideoSessionKHR_VkResult_return = vkEnc->vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession, true /* do lock */);
+    return vkCreateVideoSessionKHR_VkResult_return;
+}
+static void entry_vkDestroyVideoSessionKHR(
+    VkDevice device,
+    VkVideoSessionKHR videoSession,
+    const VkAllocationCallbacks* pAllocator)
+{
+    AEMU_SCOPED_TRACE("vkDestroyVideoSessionKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkDestroyVideoSessionKHR(device, videoSession, pAllocator, true /* do lock */);
+}
+static void dynCheck_entry_vkDestroyVideoSessionKHR(
+    VkDevice device,
+    VkVideoSessionKHR videoSession,
+    const VkAllocationCallbacks* pAllocator)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkDestroyVideoSessionKHR", "VK_KHR_video_queue");
+    }
+    AEMU_SCOPED_TRACE("vkDestroyVideoSessionKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkDestroyVideoSessionKHR(device, videoSession, pAllocator, true /* do lock */);
+}
+static VkResult entry_vkGetVideoSessionMemoryRequirementsKHR(
+    VkDevice device,
+    VkVideoSessionKHR videoSession,
+    uint32_t* pVideoSessionMemoryRequirementsCount,
+    VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements)
+{
+    AEMU_SCOPED_TRACE("vkGetVideoSessionMemoryRequirementsKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetVideoSessionMemoryRequirementsKHR_VkResult_return = (VkResult)0;
+    vkGetVideoSessionMemoryRequirementsKHR_VkResult_return = vkEnc->vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pVideoSessionMemoryRequirementsCount, pVideoSessionMemoryRequirements, true /* do lock */);
+    return vkGetVideoSessionMemoryRequirementsKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetVideoSessionMemoryRequirementsKHR(
+    VkDevice device,
+    VkVideoSessionKHR videoSession,
+    uint32_t* pVideoSessionMemoryRequirementsCount,
+    VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetVideoSessionMemoryRequirementsKHR", "VK_KHR_video_queue");
+    }
+    AEMU_SCOPED_TRACE("vkGetVideoSessionMemoryRequirementsKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetVideoSessionMemoryRequirementsKHR_VkResult_return = (VkResult)0;
+    vkGetVideoSessionMemoryRequirementsKHR_VkResult_return = vkEnc->vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pVideoSessionMemoryRequirementsCount, pVideoSessionMemoryRequirements, true /* do lock */);
+    return vkGetVideoSessionMemoryRequirementsKHR_VkResult_return;
+}
+static VkResult entry_vkBindVideoSessionMemoryKHR(
+    VkDevice device,
+    VkVideoSessionKHR videoSession,
+    uint32_t videoSessionBindMemoryCount,
+    const VkVideoBindMemoryKHR* pVideoSessionBindMemories)
+{
+    AEMU_SCOPED_TRACE("vkBindVideoSessionMemoryKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkBindVideoSessionMemoryKHR_VkResult_return = (VkResult)0;
+    vkBindVideoSessionMemoryKHR_VkResult_return = vkEnc->vkBindVideoSessionMemoryKHR(device, videoSession, videoSessionBindMemoryCount, pVideoSessionBindMemories, true /* do lock */);
+    return vkBindVideoSessionMemoryKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkBindVideoSessionMemoryKHR(
+    VkDevice device,
+    VkVideoSessionKHR videoSession,
+    uint32_t videoSessionBindMemoryCount,
+    const VkVideoBindMemoryKHR* pVideoSessionBindMemories)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkBindVideoSessionMemoryKHR", "VK_KHR_video_queue");
+    }
+    AEMU_SCOPED_TRACE("vkBindVideoSessionMemoryKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkBindVideoSessionMemoryKHR_VkResult_return = (VkResult)0;
+    vkBindVideoSessionMemoryKHR_VkResult_return = vkEnc->vkBindVideoSessionMemoryKHR(device, videoSession, videoSessionBindMemoryCount, pVideoSessionBindMemories, true /* do lock */);
+    return vkBindVideoSessionMemoryKHR_VkResult_return;
+}
+static VkResult entry_vkCreateVideoSessionParametersKHR(
+    VkDevice device,
+    const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkVideoSessionParametersKHR* pVideoSessionParameters)
+{
+    AEMU_SCOPED_TRACE("vkCreateVideoSessionParametersKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateVideoSessionParametersKHR_VkResult_return = (VkResult)0;
+    vkCreateVideoSessionParametersKHR_VkResult_return = vkEnc->vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters, true /* do lock */);
+    return vkCreateVideoSessionParametersKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkCreateVideoSessionParametersKHR(
+    VkDevice device,
+    const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkVideoSessionParametersKHR* pVideoSessionParameters)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkCreateVideoSessionParametersKHR", "VK_KHR_video_queue");
+    }
+    AEMU_SCOPED_TRACE("vkCreateVideoSessionParametersKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateVideoSessionParametersKHR_VkResult_return = (VkResult)0;
+    vkCreateVideoSessionParametersKHR_VkResult_return = vkEnc->vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters, true /* do lock */);
+    return vkCreateVideoSessionParametersKHR_VkResult_return;
+}
+static VkResult entry_vkUpdateVideoSessionParametersKHR(
+    VkDevice device,
+    VkVideoSessionParametersKHR videoSessionParameters,
+    const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo)
+{
+    AEMU_SCOPED_TRACE("vkUpdateVideoSessionParametersKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkUpdateVideoSessionParametersKHR_VkResult_return = (VkResult)0;
+    vkUpdateVideoSessionParametersKHR_VkResult_return = vkEnc->vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo, true /* do lock */);
+    return vkUpdateVideoSessionParametersKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkUpdateVideoSessionParametersKHR(
+    VkDevice device,
+    VkVideoSessionParametersKHR videoSessionParameters,
+    const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkUpdateVideoSessionParametersKHR", "VK_KHR_video_queue");
+    }
+    AEMU_SCOPED_TRACE("vkUpdateVideoSessionParametersKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkUpdateVideoSessionParametersKHR_VkResult_return = (VkResult)0;
+    vkUpdateVideoSessionParametersKHR_VkResult_return = vkEnc->vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo, true /* do lock */);
+    return vkUpdateVideoSessionParametersKHR_VkResult_return;
+}
+static void entry_vkDestroyVideoSessionParametersKHR(
+    VkDevice device,
+    VkVideoSessionParametersKHR videoSessionParameters,
+    const VkAllocationCallbacks* pAllocator)
+{
+    AEMU_SCOPED_TRACE("vkDestroyVideoSessionParametersKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator, true /* do lock */);
+}
+static void dynCheck_entry_vkDestroyVideoSessionParametersKHR(
+    VkDevice device,
+    VkVideoSessionParametersKHR videoSessionParameters,
+    const VkAllocationCallbacks* pAllocator)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkDestroyVideoSessionParametersKHR", "VK_KHR_video_queue");
+    }
+    AEMU_SCOPED_TRACE("vkDestroyVideoSessionParametersKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator, true /* do lock */);
+}
+static void entry_vkCmdBeginVideoCodingKHR(
+    VkCommandBuffer commandBuffer,
+    const VkVideoBeginCodingInfoKHR* pBeginInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdBeginVideoCodingKHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, true /* do lock */);
+}
+static void entry_vkCmdEndVideoCodingKHR(
+    VkCommandBuffer commandBuffer,
+    const VkVideoEndCodingInfoKHR* pEndCodingInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdEndVideoCodingKHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, true /* do lock */);
+}
+static void entry_vkCmdControlVideoCodingKHR(
+    VkCommandBuffer commandBuffer,
+    const VkVideoCodingControlInfoKHR* pCodingControlInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdControlVideoCodingKHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, true /* do lock */);
+}
+#endif
+#ifdef VK_KHR_video_decode_queue
+static void entry_vkCmdDecodeVideoKHR(
+    VkCommandBuffer commandBuffer,
+    const VkVideoDecodeInfoKHR* pFrameInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdDecodeVideoKHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdDecodeVideoKHR(commandBuffer, pFrameInfo, true /* do lock */);
+}
+#endif
+#ifdef VK_KHR_dynamic_rendering
+static void entry_vkCmdBeginRenderingKHR(
+    VkCommandBuffer commandBuffer,
+    const VkRenderingInfoKHR* pRenderingInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdBeginRenderingKHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, true /* do lock */);
+}
+static void entry_vkCmdEndRenderingKHR(
+    VkCommandBuffer commandBuffer)
+{
+    AEMU_SCOPED_TRACE("vkCmdEndRenderingKHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdEndRenderingKHR(commandBuffer, true /* do lock */);
+}
+#endif
 #ifdef VK_KHR_multiview
 #endif
 #ifdef VK_KHR_get_physical_device_properties2
@@ -4069,6 +4334,37 @@
 #endif
 #ifdef VK_KHR_separate_depth_stencil_layouts
 #endif
+#ifdef VK_KHR_present_wait
+static VkResult entry_vkWaitForPresentKHR(
+    VkDevice device,
+    VkSwapchainKHR swapchain,
+    uint64_t presentId,
+    uint64_t timeout)
+{
+    AEMU_SCOPED_TRACE("vkWaitForPresentKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkWaitForPresentKHR_VkResult_return = (VkResult)0;
+    vkWaitForPresentKHR_VkResult_return = vkEnc->vkWaitForPresentKHR(device, swapchain, presentId, timeout, true /* do lock */);
+    return vkWaitForPresentKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkWaitForPresentKHR(
+    VkDevice device,
+    VkSwapchainKHR swapchain,
+    uint64_t presentId,
+    uint64_t timeout)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_present_wait"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkWaitForPresentKHR", "VK_KHR_present_wait");
+    }
+    AEMU_SCOPED_TRACE("vkWaitForPresentKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkWaitForPresentKHR_VkResult_return = (VkResult)0;
+    vkWaitForPresentKHR_VkResult_return = vkEnc->vkWaitForPresentKHR(device, swapchain, presentId, timeout, true /* do lock */);
+    return vkWaitForPresentKHR_VkResult_return;
+}
+#endif
 #ifdef VK_KHR_uniform_buffer_standard_layout
 #endif
 #ifdef VK_KHR_buffer_device_address
@@ -4364,10 +4660,110 @@
     return vkGetPipelineExecutableInternalRepresentationsKHR_VkResult_return;
 }
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+#endif
 #ifdef VK_KHR_pipeline_library
 #endif
 #ifdef VK_KHR_shader_non_semantic_info
 #endif
+#ifdef VK_KHR_present_id
+#endif
+#ifdef VK_KHR_video_encode_queue
+static void entry_vkCmdEncodeVideoKHR(
+    VkCommandBuffer commandBuffer,
+    const VkVideoEncodeInfoKHR* pEncodeInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdEncodeVideoKHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdEncodeVideoKHR(commandBuffer, pEncodeInfo, true /* do lock */);
+}
+#endif
+#ifdef VK_KHR_synchronization2
+static void entry_vkCmdSetEvent2KHR(
+    VkCommandBuffer commandBuffer,
+    VkEvent event,
+    const VkDependencyInfoKHR* pDependencyInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetEvent2KHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, true /* do lock */);
+}
+static void entry_vkCmdResetEvent2KHR(
+    VkCommandBuffer commandBuffer,
+    VkEvent event,
+    VkPipelineStageFlags2KHR stageMask)
+{
+    AEMU_SCOPED_TRACE("vkCmdResetEvent2KHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdResetEvent2KHR(commandBuffer, event, stageMask, true /* do lock */);
+}
+static void entry_vkCmdWaitEvents2KHR(
+    VkCommandBuffer commandBuffer,
+    uint32_t eventCount,
+    const VkEvent* pEvents,
+    const VkDependencyInfoKHR* pDependencyInfos)
+{
+    AEMU_SCOPED_TRACE("vkCmdWaitEvents2KHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, true /* do lock */);
+}
+static void entry_vkCmdPipelineBarrier2KHR(
+    VkCommandBuffer commandBuffer,
+    const VkDependencyInfoKHR* pDependencyInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdPipelineBarrier2KHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, true /* do lock */);
+}
+static void entry_vkCmdWriteTimestamp2KHR(
+    VkCommandBuffer commandBuffer,
+    VkPipelineStageFlags2KHR stage,
+    VkQueryPool queryPool,
+    uint32_t query)
+{
+    AEMU_SCOPED_TRACE("vkCmdWriteTimestamp2KHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, true /* do lock */);
+}
+static VkResult entry_vkQueueSubmit2KHR(
+    VkQueue queue,
+    uint32_t submitCount,
+    const VkSubmitInfo2KHR* pSubmits,
+    VkFence fence)
+{
+    AEMU_SCOPED_TRACE("vkQueueSubmit2KHR");
+    auto vkEnc = ResourceTracker::getQueueEncoder(queue);
+    VkResult vkQueueSubmit2KHR_VkResult_return = (VkResult)0;
+    vkQueueSubmit2KHR_VkResult_return = vkEnc->vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, true /* do lock */);
+    return vkQueueSubmit2KHR_VkResult_return;
+}
+static void entry_vkCmdWriteBufferMarker2AMD(
+    VkCommandBuffer commandBuffer,
+    VkPipelineStageFlags2KHR stage,
+    VkBuffer dstBuffer,
+    VkDeviceSize dstOffset,
+    uint32_t marker)
+{
+    AEMU_SCOPED_TRACE("vkCmdWriteBufferMarker2AMD");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, true /* do lock */);
+}
+static void entry_vkGetQueueCheckpointData2NV(
+    VkQueue queue,
+    uint32_t* pCheckpointDataCount,
+    VkCheckpointData2NV* pCheckpointData)
+{
+    AEMU_SCOPED_TRACE("vkGetQueueCheckpointData2NV");
+    auto vkEnc = ResourceTracker::getQueueEncoder(queue);
+    vkEnc->vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, true /* do lock */);
+}
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+#endif
 #ifdef VK_KHR_copy_commands2
 static void entry_vkCmdCopyBuffer2KHR(
     VkCommandBuffer commandBuffer,
@@ -4418,6 +4814,81 @@
     vkEnc->vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, true /* do lock */);
 }
 #endif
+#ifdef VK_KHR_format_feature_flags2
+#endif
+#ifdef VK_KHR_maintenance4
+static void entry_vkGetDeviceBufferMemoryRequirementsKHR(
+    VkDevice device,
+    const VkDeviceBufferMemoryRequirementsKHR* pInfo,
+    VkMemoryRequirements2* pMemoryRequirements)
+{
+    AEMU_SCOPED_TRACE("vkGetDeviceBufferMemoryRequirementsKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, true /* do lock */);
+}
+static void dynCheck_entry_vkGetDeviceBufferMemoryRequirementsKHR(
+    VkDevice device,
+    const VkDeviceBufferMemoryRequirementsKHR* pInfo,
+    VkMemoryRequirements2* pMemoryRequirements)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_maintenance4"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetDeviceBufferMemoryRequirementsKHR", "VK_KHR_maintenance4");
+    }
+    AEMU_SCOPED_TRACE("vkGetDeviceBufferMemoryRequirementsKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, true /* do lock */);
+}
+static void entry_vkGetDeviceImageMemoryRequirementsKHR(
+    VkDevice device,
+    const VkDeviceImageMemoryRequirementsKHR* pInfo,
+    VkMemoryRequirements2* pMemoryRequirements)
+{
+    AEMU_SCOPED_TRACE("vkGetDeviceImageMemoryRequirementsKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, true /* do lock */);
+}
+static void dynCheck_entry_vkGetDeviceImageMemoryRequirementsKHR(
+    VkDevice device,
+    const VkDeviceImageMemoryRequirementsKHR* pInfo,
+    VkMemoryRequirements2* pMemoryRequirements)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_maintenance4"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetDeviceImageMemoryRequirementsKHR", "VK_KHR_maintenance4");
+    }
+    AEMU_SCOPED_TRACE("vkGetDeviceImageMemoryRequirementsKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, true /* do lock */);
+}
+static void entry_vkGetDeviceImageSparseMemoryRequirementsKHR(
+    VkDevice device,
+    const VkDeviceImageMemoryRequirementsKHR* pInfo,
+    uint32_t* pSparseMemoryRequirementCount,
+    VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
+{
+    AEMU_SCOPED_TRACE("vkGetDeviceImageSparseMemoryRequirementsKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, true /* do lock */);
+}
+static void dynCheck_entry_vkGetDeviceImageSparseMemoryRequirementsKHR(
+    VkDevice device,
+    const VkDeviceImageMemoryRequirementsKHR* pInfo,
+    uint32_t* pSparseMemoryRequirementCount,
+    VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_maintenance4"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetDeviceImageSparseMemoryRequirementsKHR", "VK_KHR_maintenance4");
+    }
+    AEMU_SCOPED_TRACE("vkGetDeviceImageSparseMemoryRequirementsKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, true /* do lock */);
+}
+#endif
 #ifdef VK_ANDROID_native_buffer
 static VkResult entry_vkGetSwapchainGrallocUsageANDROID(
     VkDevice device,
@@ -4692,6 +5163,120 @@
     vkEnc->vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, true /* do lock */);
 }
 #endif
+#ifdef VK_NVX_binary_import
+static VkResult entry_vkCreateCuModuleNVX(
+    VkDevice device,
+    const VkCuModuleCreateInfoNVX* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkCuModuleNVX* pModule)
+{
+    AEMU_SCOPED_TRACE("vkCreateCuModuleNVX");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateCuModuleNVX_VkResult_return = (VkResult)0;
+    vkCreateCuModuleNVX_VkResult_return = vkEnc->vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, true /* do lock */);
+    return vkCreateCuModuleNVX_VkResult_return;
+}
+static VkResult dynCheck_entry_vkCreateCuModuleNVX(
+    VkDevice device,
+    const VkCuModuleCreateInfoNVX* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkCuModuleNVX* pModule)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_NVX_binary_import"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkCreateCuModuleNVX", "VK_NVX_binary_import");
+    }
+    AEMU_SCOPED_TRACE("vkCreateCuModuleNVX");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateCuModuleNVX_VkResult_return = (VkResult)0;
+    vkCreateCuModuleNVX_VkResult_return = vkEnc->vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, true /* do lock */);
+    return vkCreateCuModuleNVX_VkResult_return;
+}
+static VkResult entry_vkCreateCuFunctionNVX(
+    VkDevice device,
+    const VkCuFunctionCreateInfoNVX* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkCuFunctionNVX* pFunction)
+{
+    AEMU_SCOPED_TRACE("vkCreateCuFunctionNVX");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateCuFunctionNVX_VkResult_return = (VkResult)0;
+    vkCreateCuFunctionNVX_VkResult_return = vkEnc->vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, true /* do lock */);
+    return vkCreateCuFunctionNVX_VkResult_return;
+}
+static VkResult dynCheck_entry_vkCreateCuFunctionNVX(
+    VkDevice device,
+    const VkCuFunctionCreateInfoNVX* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkCuFunctionNVX* pFunction)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_NVX_binary_import"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkCreateCuFunctionNVX", "VK_NVX_binary_import");
+    }
+    AEMU_SCOPED_TRACE("vkCreateCuFunctionNVX");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateCuFunctionNVX_VkResult_return = (VkResult)0;
+    vkCreateCuFunctionNVX_VkResult_return = vkEnc->vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, true /* do lock */);
+    return vkCreateCuFunctionNVX_VkResult_return;
+}
+static void entry_vkDestroyCuModuleNVX(
+    VkDevice device,
+    VkCuModuleNVX module,
+    const VkAllocationCallbacks* pAllocator)
+{
+    AEMU_SCOPED_TRACE("vkDestroyCuModuleNVX");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkDestroyCuModuleNVX(device, module, pAllocator, true /* do lock */);
+}
+static void dynCheck_entry_vkDestroyCuModuleNVX(
+    VkDevice device,
+    VkCuModuleNVX module,
+    const VkAllocationCallbacks* pAllocator)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_NVX_binary_import"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkDestroyCuModuleNVX", "VK_NVX_binary_import");
+    }
+    AEMU_SCOPED_TRACE("vkDestroyCuModuleNVX");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkDestroyCuModuleNVX(device, module, pAllocator, true /* do lock */);
+}
+static void entry_vkDestroyCuFunctionNVX(
+    VkDevice device,
+    VkCuFunctionNVX function,
+    const VkAllocationCallbacks* pAllocator)
+{
+    AEMU_SCOPED_TRACE("vkDestroyCuFunctionNVX");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkDestroyCuFunctionNVX(device, function, pAllocator, true /* do lock */);
+}
+static void dynCheck_entry_vkDestroyCuFunctionNVX(
+    VkDevice device,
+    VkCuFunctionNVX function,
+    const VkAllocationCallbacks* pAllocator)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_NVX_binary_import"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkDestroyCuFunctionNVX", "VK_NVX_binary_import");
+    }
+    AEMU_SCOPED_TRACE("vkDestroyCuFunctionNVX");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkDestroyCuFunctionNVX(device, function, pAllocator, true /* do lock */);
+}
+static void entry_vkCmdCuLaunchKernelNVX(
+    VkCommandBuffer commandBuffer,
+    const VkCuLaunchInfoNVX* pLaunchInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdCuLaunchKernelNVX");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, true /* do lock */);
+}
+#endif
 #ifdef VK_NVX_image_view_handle
 static uint32_t entry_vkGetImageViewHandleNVX(
     VkDevice device,
@@ -4780,6 +5365,12 @@
 #endif
 #ifdef VK_AMD_shader_ballot
 #endif
+#ifdef VK_EXT_video_encode_h264
+#endif
+#ifdef VK_EXT_video_encode_h265
+#endif
+#ifdef VK_EXT_video_decode_h264
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
 #endif
 #ifdef VK_AMD_shader_info
@@ -6133,6 +6724,8 @@
 #endif
 #ifdef VK_AMD_shader_core_properties
 #endif
+#ifdef VK_EXT_video_decode_h265
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
 #endif
 #ifdef VK_EXT_vertex_attribute_divisor
@@ -6533,6 +7126,8 @@
 #endif
 #ifdef VK_EXT_ycbcr_image_arrays
 #endif
+#ifdef VK_EXT_provoking_vertex
+#endif
 #ifdef VK_EXT_full_screen_exclusive
 static VkResult entry_vkGetPhysicalDeviceSurfacePresentModes2EXT(
     VkPhysicalDevice physicalDevice,
@@ -6789,6 +7384,8 @@
     vkEnc->vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, true /* do lock */);
 }
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+#endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 #endif
 #ifdef VK_NV_device_generated_commands
@@ -6895,12 +7492,39 @@
     vkEnc->vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, true /* do lock */);
 }
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+#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_acquire_drm_display
+static VkResult entry_vkAcquireDrmDisplayEXT(
+    VkPhysicalDevice physicalDevice,
+    int32_t drmFd,
+    VkDisplayKHR display)
+{
+    AEMU_SCOPED_TRACE("vkAcquireDrmDisplayEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkAcquireDrmDisplayEXT_VkResult_return = (VkResult)0;
+    vkAcquireDrmDisplayEXT_VkResult_return = vkEnc->vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, true /* do lock */);
+    return vkAcquireDrmDisplayEXT_VkResult_return;
+}
+static VkResult entry_vkGetDrmDisplayEXT(
+    VkPhysicalDevice physicalDevice,
+    int32_t drmFd,
+    uint32_t connectorId,
+    VkDisplayKHR* display)
+{
+    AEMU_SCOPED_TRACE("vkGetDrmDisplayEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetDrmDisplayEXT_VkResult_return = (VkResult)0;
+    vkGetDrmDisplayEXT_VkResult_return = vkEnc->vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, true /* do lock */);
+    return vkGetDrmDisplayEXT_VkResult_return;
+}
+#endif
 #ifdef VK_EXT_robustness2
 #endif
 #ifdef VK_EXT_custom_border_color
@@ -7036,6 +7660,10 @@
     vkEnc->vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, true /* do lock */);
 }
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+#endif
 #ifdef VK_EXT_fragment_density_map2
 #endif
 #ifdef VK_QCOM_rotated_copy_commands
@@ -7044,6 +7672,31 @@
 #endif
 #ifdef VK_EXT_4444_formats
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+#endif
+#ifdef VK_NV_acquire_winrt_display
+static VkResult entry_vkAcquireWinrtDisplayNV(
+    VkPhysicalDevice physicalDevice,
+    VkDisplayKHR display)
+{
+    AEMU_SCOPED_TRACE("vkAcquireWinrtDisplayNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkAcquireWinrtDisplayNV_VkResult_return = (VkResult)0;
+    vkAcquireWinrtDisplayNV_VkResult_return = vkEnc->vkAcquireWinrtDisplayNV(physicalDevice, display, true /* do lock */);
+    return vkAcquireWinrtDisplayNV_VkResult_return;
+}
+static VkResult entry_vkGetWinrtDisplayNV(
+    VkPhysicalDevice physicalDevice,
+    uint32_t deviceRelativeId,
+    VkDisplayKHR* pDisplay)
+{
+    AEMU_SCOPED_TRACE("vkGetWinrtDisplayNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetWinrtDisplayNV_VkResult_return = (VkResult)0;
+    vkGetWinrtDisplayNV_VkResult_return = vkEnc->vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay, true /* do lock */);
+    return vkGetWinrtDisplayNV_VkResult_return;
+}
+#endif
 #ifdef VK_EXT_directfb_surface
 static VkResult entry_vkCreateDirectFBSurfaceEXT(
     VkInstance instance,
@@ -7069,6 +7722,426 @@
     return vkGetPhysicalDeviceDirectFBPresentationSupportEXT_VkBool32_return;
 }
 #endif
+#ifdef VK_VALVE_mutable_descriptor_type
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+static void entry_vkCmdSetVertexInputEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t vertexBindingDescriptionCount,
+    const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions,
+    uint32_t vertexAttributeDescriptionCount,
+    const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetVertexInputEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, true /* do lock */);
+}
+#endif
+#ifdef VK_EXT_physical_device_drm
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+#endif
+#ifdef VK_FUCHSIA_external_memory
+static VkResult entry_vkGetMemoryZirconHandleFUCHSIA(
+    VkDevice device,
+    const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
+    zx_handle_t* pZirconHandle)
+{
+    AEMU_SCOPED_TRACE("vkGetMemoryZirconHandleFUCHSIA");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetMemoryZirconHandleFUCHSIA_VkResult_return = (VkResult)0;
+    vkGetMemoryZirconHandleFUCHSIA_VkResult_return = vkEnc->vkGetMemoryZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle, true /* do lock */);
+    return vkGetMemoryZirconHandleFUCHSIA_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetMemoryZirconHandleFUCHSIA(
+    VkDevice device,
+    const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
+    zx_handle_t* pZirconHandle)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_FUCHSIA_external_memory"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetMemoryZirconHandleFUCHSIA", "VK_FUCHSIA_external_memory");
+    }
+    AEMU_SCOPED_TRACE("vkGetMemoryZirconHandleFUCHSIA");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetMemoryZirconHandleFUCHSIA_VkResult_return = (VkResult)0;
+    vkGetMemoryZirconHandleFUCHSIA_VkResult_return = vkEnc->vkGetMemoryZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle, true /* do lock */);
+    return vkGetMemoryZirconHandleFUCHSIA_VkResult_return;
+}
+static VkResult entry_vkGetMemoryZirconHandlePropertiesFUCHSIA(
+    VkDevice device,
+    VkExternalMemoryHandleTypeFlagBits handleType,
+    zx_handle_t zirconHandle,
+    VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties)
+{
+    AEMU_SCOPED_TRACE("vkGetMemoryZirconHandlePropertiesFUCHSIA");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetMemoryZirconHandlePropertiesFUCHSIA_VkResult_return = (VkResult)0;
+    vkGetMemoryZirconHandlePropertiesFUCHSIA_VkResult_return = vkEnc->vkGetMemoryZirconHandlePropertiesFUCHSIA(device, handleType, zirconHandle, pMemoryZirconHandleProperties, true /* do lock */);
+    return vkGetMemoryZirconHandlePropertiesFUCHSIA_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetMemoryZirconHandlePropertiesFUCHSIA(
+    VkDevice device,
+    VkExternalMemoryHandleTypeFlagBits handleType,
+    zx_handle_t zirconHandle,
+    VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_FUCHSIA_external_memory"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetMemoryZirconHandlePropertiesFUCHSIA", "VK_FUCHSIA_external_memory");
+    }
+    AEMU_SCOPED_TRACE("vkGetMemoryZirconHandlePropertiesFUCHSIA");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetMemoryZirconHandlePropertiesFUCHSIA_VkResult_return = (VkResult)0;
+    vkGetMemoryZirconHandlePropertiesFUCHSIA_VkResult_return = vkEnc->vkGetMemoryZirconHandlePropertiesFUCHSIA(device, handleType, zirconHandle, pMemoryZirconHandleProperties, true /* do lock */);
+    return vkGetMemoryZirconHandlePropertiesFUCHSIA_VkResult_return;
+}
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+static VkResult entry_vkImportSemaphoreZirconHandleFUCHSIA(
+    VkDevice device,
+    const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo)
+{
+    AEMU_SCOPED_TRACE("vkImportSemaphoreZirconHandleFUCHSIA");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkImportSemaphoreZirconHandleFUCHSIA_VkResult_return = (VkResult)0;
+    vkImportSemaphoreZirconHandleFUCHSIA_VkResult_return = vkEnc->vkImportSemaphoreZirconHandleFUCHSIA(device, pImportSemaphoreZirconHandleInfo, true /* do lock */);
+    return vkImportSemaphoreZirconHandleFUCHSIA_VkResult_return;
+}
+static VkResult dynCheck_entry_vkImportSemaphoreZirconHandleFUCHSIA(
+    VkDevice device,
+    const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_FUCHSIA_external_semaphore"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkImportSemaphoreZirconHandleFUCHSIA", "VK_FUCHSIA_external_semaphore");
+    }
+    AEMU_SCOPED_TRACE("vkImportSemaphoreZirconHandleFUCHSIA");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkImportSemaphoreZirconHandleFUCHSIA_VkResult_return = (VkResult)0;
+    vkImportSemaphoreZirconHandleFUCHSIA_VkResult_return = vkEnc->vkImportSemaphoreZirconHandleFUCHSIA(device, pImportSemaphoreZirconHandleInfo, true /* do lock */);
+    return vkImportSemaphoreZirconHandleFUCHSIA_VkResult_return;
+}
+static VkResult entry_vkGetSemaphoreZirconHandleFUCHSIA(
+    VkDevice device,
+    const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
+    zx_handle_t* pZirconHandle)
+{
+    AEMU_SCOPED_TRACE("vkGetSemaphoreZirconHandleFUCHSIA");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetSemaphoreZirconHandleFUCHSIA_VkResult_return = (VkResult)0;
+    vkGetSemaphoreZirconHandleFUCHSIA_VkResult_return = vkEnc->vkGetSemaphoreZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle, true /* do lock */);
+    return vkGetSemaphoreZirconHandleFUCHSIA_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetSemaphoreZirconHandleFUCHSIA(
+    VkDevice device,
+    const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
+    zx_handle_t* pZirconHandle)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_FUCHSIA_external_semaphore"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetSemaphoreZirconHandleFUCHSIA", "VK_FUCHSIA_external_semaphore");
+    }
+    AEMU_SCOPED_TRACE("vkGetSemaphoreZirconHandleFUCHSIA");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetSemaphoreZirconHandleFUCHSIA_VkResult_return = (VkResult)0;
+    vkGetSemaphoreZirconHandleFUCHSIA_VkResult_return = vkEnc->vkGetSemaphoreZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle, true /* do lock */);
+    return vkGetSemaphoreZirconHandleFUCHSIA_VkResult_return;
+}
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+static VkResult entry_vkCreateBufferCollectionFUCHSIA(
+    VkDevice device,
+    const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkBufferCollectionFUCHSIA* pCollection)
+{
+    AEMU_SCOPED_TRACE("vkCreateBufferCollectionFUCHSIA");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateBufferCollectionFUCHSIA_VkResult_return = (VkResult)0;
+    vkCreateBufferCollectionFUCHSIA_VkResult_return = vkEnc->vkCreateBufferCollectionFUCHSIA(device, pCreateInfo, pAllocator, pCollection, true /* do lock */);
+    return vkCreateBufferCollectionFUCHSIA_VkResult_return;
+}
+static VkResult dynCheck_entry_vkCreateBufferCollectionFUCHSIA(
+    VkDevice device,
+    const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkBufferCollectionFUCHSIA* pCollection)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_FUCHSIA_buffer_collection"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkCreateBufferCollectionFUCHSIA", "VK_FUCHSIA_buffer_collection");
+    }
+    AEMU_SCOPED_TRACE("vkCreateBufferCollectionFUCHSIA");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateBufferCollectionFUCHSIA_VkResult_return = (VkResult)0;
+    vkCreateBufferCollectionFUCHSIA_VkResult_return = vkEnc->vkCreateBufferCollectionFUCHSIA(device, pCreateInfo, pAllocator, pCollection, true /* do lock */);
+    return vkCreateBufferCollectionFUCHSIA_VkResult_return;
+}
+static VkResult entry_vkSetBufferCollectionImageConstraintsFUCHSIA(
+    VkDevice device,
+    VkBufferCollectionFUCHSIA collection,
+    const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo)
+{
+    AEMU_SCOPED_TRACE("vkSetBufferCollectionImageConstraintsFUCHSIA");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkSetBufferCollectionImageConstraintsFUCHSIA_VkResult_return = (VkResult)0;
+    vkSetBufferCollectionImageConstraintsFUCHSIA_VkResult_return = vkEnc->vkSetBufferCollectionImageConstraintsFUCHSIA(device, collection, pImageConstraintsInfo, true /* do lock */);
+    return vkSetBufferCollectionImageConstraintsFUCHSIA_VkResult_return;
+}
+static VkResult dynCheck_entry_vkSetBufferCollectionImageConstraintsFUCHSIA(
+    VkDevice device,
+    VkBufferCollectionFUCHSIA collection,
+    const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_FUCHSIA_buffer_collection"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkSetBufferCollectionImageConstraintsFUCHSIA", "VK_FUCHSIA_buffer_collection");
+    }
+    AEMU_SCOPED_TRACE("vkSetBufferCollectionImageConstraintsFUCHSIA");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkSetBufferCollectionImageConstraintsFUCHSIA_VkResult_return = (VkResult)0;
+    vkSetBufferCollectionImageConstraintsFUCHSIA_VkResult_return = vkEnc->vkSetBufferCollectionImageConstraintsFUCHSIA(device, collection, pImageConstraintsInfo, true /* do lock */);
+    return vkSetBufferCollectionImageConstraintsFUCHSIA_VkResult_return;
+}
+static VkResult entry_vkSetBufferCollectionBufferConstraintsFUCHSIA(
+    VkDevice device,
+    VkBufferCollectionFUCHSIA collection,
+    const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo)
+{
+    AEMU_SCOPED_TRACE("vkSetBufferCollectionBufferConstraintsFUCHSIA");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkSetBufferCollectionBufferConstraintsFUCHSIA_VkResult_return = (VkResult)0;
+    vkSetBufferCollectionBufferConstraintsFUCHSIA_VkResult_return = vkEnc->vkSetBufferCollectionBufferConstraintsFUCHSIA(device, collection, pBufferConstraintsInfo, true /* do lock */);
+    return vkSetBufferCollectionBufferConstraintsFUCHSIA_VkResult_return;
+}
+static VkResult dynCheck_entry_vkSetBufferCollectionBufferConstraintsFUCHSIA(
+    VkDevice device,
+    VkBufferCollectionFUCHSIA collection,
+    const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_FUCHSIA_buffer_collection"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkSetBufferCollectionBufferConstraintsFUCHSIA", "VK_FUCHSIA_buffer_collection");
+    }
+    AEMU_SCOPED_TRACE("vkSetBufferCollectionBufferConstraintsFUCHSIA");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkSetBufferCollectionBufferConstraintsFUCHSIA_VkResult_return = (VkResult)0;
+    vkSetBufferCollectionBufferConstraintsFUCHSIA_VkResult_return = vkEnc->vkSetBufferCollectionBufferConstraintsFUCHSIA(device, collection, pBufferConstraintsInfo, true /* do lock */);
+    return vkSetBufferCollectionBufferConstraintsFUCHSIA_VkResult_return;
+}
+static void entry_vkDestroyBufferCollectionFUCHSIA(
+    VkDevice device,
+    VkBufferCollectionFUCHSIA collection,
+    const VkAllocationCallbacks* pAllocator)
+{
+    AEMU_SCOPED_TRACE("vkDestroyBufferCollectionFUCHSIA");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkDestroyBufferCollectionFUCHSIA(device, collection, pAllocator, true /* do lock */);
+}
+static void dynCheck_entry_vkDestroyBufferCollectionFUCHSIA(
+    VkDevice device,
+    VkBufferCollectionFUCHSIA collection,
+    const VkAllocationCallbacks* pAllocator)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_FUCHSIA_buffer_collection"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkDestroyBufferCollectionFUCHSIA", "VK_FUCHSIA_buffer_collection");
+    }
+    AEMU_SCOPED_TRACE("vkDestroyBufferCollectionFUCHSIA");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkDestroyBufferCollectionFUCHSIA(device, collection, pAllocator, true /* do lock */);
+}
+static VkResult entry_vkGetBufferCollectionPropertiesFUCHSIA(
+    VkDevice device,
+    VkBufferCollectionFUCHSIA collection,
+    VkBufferCollectionPropertiesFUCHSIA* pProperties)
+{
+    AEMU_SCOPED_TRACE("vkGetBufferCollectionPropertiesFUCHSIA");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetBufferCollectionPropertiesFUCHSIA_VkResult_return = (VkResult)0;
+    vkGetBufferCollectionPropertiesFUCHSIA_VkResult_return = vkEnc->vkGetBufferCollectionPropertiesFUCHSIA(device, collection, pProperties, true /* do lock */);
+    return vkGetBufferCollectionPropertiesFUCHSIA_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetBufferCollectionPropertiesFUCHSIA(
+    VkDevice device,
+    VkBufferCollectionFUCHSIA collection,
+    VkBufferCollectionPropertiesFUCHSIA* pProperties)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_FUCHSIA_buffer_collection"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetBufferCollectionPropertiesFUCHSIA", "VK_FUCHSIA_buffer_collection");
+    }
+    AEMU_SCOPED_TRACE("vkGetBufferCollectionPropertiesFUCHSIA");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetBufferCollectionPropertiesFUCHSIA_VkResult_return = (VkResult)0;
+    vkGetBufferCollectionPropertiesFUCHSIA_VkResult_return = vkEnc->vkGetBufferCollectionPropertiesFUCHSIA(device, collection, pProperties, true /* do lock */);
+    return vkGetBufferCollectionPropertiesFUCHSIA_VkResult_return;
+}
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+static VkResult entry_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
+    VkDevice device,
+    VkRenderPass renderpass,
+    VkExtent2D* pMaxWorkgroupSize)
+{
+    AEMU_SCOPED_TRACE("vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI_VkResult_return = (VkResult)0;
+    vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI_VkResult_return = vkEnc->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, true /* do lock */);
+    return vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
+    VkDevice device,
+    VkRenderPass renderpass,
+    VkExtent2D* pMaxWorkgroupSize)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_HUAWEI_subpass_shading"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI", "VK_HUAWEI_subpass_shading");
+    }
+    AEMU_SCOPED_TRACE("vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI_VkResult_return = (VkResult)0;
+    vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI_VkResult_return = vkEnc->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, true /* do lock */);
+    return vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI_VkResult_return;
+}
+static void entry_vkCmdSubpassShadingHUAWEI(
+    VkCommandBuffer commandBuffer)
+{
+    AEMU_SCOPED_TRACE("vkCmdSubpassShadingHUAWEI");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSubpassShadingHUAWEI(commandBuffer, true /* do lock */);
+}
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+static void entry_vkCmdBindInvocationMaskHUAWEI(
+    VkCommandBuffer commandBuffer,
+    VkImageView imageView,
+    VkImageLayout imageLayout)
+{
+    AEMU_SCOPED_TRACE("vkCmdBindInvocationMaskHUAWEI");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, true /* do lock */);
+}
+#endif
+#ifdef VK_NV_external_memory_rdma
+static VkResult entry_vkGetMemoryRemoteAddressNV(
+    VkDevice device,
+    const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo,
+    VkRemoteAddressNV* pAddress)
+{
+    AEMU_SCOPED_TRACE("vkGetMemoryRemoteAddressNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetMemoryRemoteAddressNV_VkResult_return = (VkResult)0;
+    vkGetMemoryRemoteAddressNV_VkResult_return = vkEnc->vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, true /* do lock */);
+    return vkGetMemoryRemoteAddressNV_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetMemoryRemoteAddressNV(
+    VkDevice device,
+    const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo,
+    VkRemoteAddressNV* pAddress)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_NV_external_memory_rdma"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetMemoryRemoteAddressNV", "VK_NV_external_memory_rdma");
+    }
+    AEMU_SCOPED_TRACE("vkGetMemoryRemoteAddressNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetMemoryRemoteAddressNV_VkResult_return = (VkResult)0;
+    vkGetMemoryRemoteAddressNV_VkResult_return = vkEnc->vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, true /* do lock */);
+    return vkGetMemoryRemoteAddressNV_VkResult_return;
+}
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+static void entry_vkCmdSetPatchControlPointsEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t patchControlPoints)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetPatchControlPointsEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, true /* do lock */);
+}
+static void entry_vkCmdSetRasterizerDiscardEnableEXT(
+    VkCommandBuffer commandBuffer,
+    VkBool32 rasterizerDiscardEnable)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetRasterizerDiscardEnableEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, true /* do lock */);
+}
+static void entry_vkCmdSetDepthBiasEnableEXT(
+    VkCommandBuffer commandBuffer,
+    VkBool32 depthBiasEnable)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetDepthBiasEnableEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, true /* do lock */);
+}
+static void entry_vkCmdSetLogicOpEXT(
+    VkCommandBuffer commandBuffer,
+    VkLogicOp logicOp)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetLogicOpEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetLogicOpEXT(commandBuffer, logicOp, true /* do lock */);
+}
+static void entry_vkCmdSetPrimitiveRestartEnableEXT(
+    VkCommandBuffer commandBuffer,
+    VkBool32 primitiveRestartEnable)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetPrimitiveRestartEnableEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, true /* do lock */);
+}
+#endif
+#ifdef VK_QNX_screen_surface
+static VkResult entry_vkCreateScreenSurfaceQNX(
+    VkInstance instance,
+    const VkScreenSurfaceCreateInfoQNX* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkSurfaceKHR* pSurface)
+{
+    AEMU_SCOPED_TRACE("vkCreateScreenSurfaceQNX");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateScreenSurfaceQNX_VkResult_return = (VkResult)0;
+    vkCreateScreenSurfaceQNX_VkResult_return = vkEnc->vkCreateScreenSurfaceQNX(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */);
+    return vkCreateScreenSurfaceQNX_VkResult_return;
+}
+static VkBool32 entry_vkGetPhysicalDeviceScreenPresentationSupportQNX(
+    VkPhysicalDevice physicalDevice,
+    uint32_t queueFamilyIndex,
+    _screen_window* window)
+{
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceScreenPresentationSupportQNX");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkBool32 vkGetPhysicalDeviceScreenPresentationSupportQNX_VkBool32_return = (VkBool32)0;
+    vkGetPhysicalDeviceScreenPresentationSupportQNX_VkBool32_return = vkEnc->vkGetPhysicalDeviceScreenPresentationSupportQNX(physicalDevice, queueFamilyIndex, window, true /* do lock */);
+    return vkGetPhysicalDeviceScreenPresentationSupportQNX_VkBool32_return;
+}
+#endif
+#ifdef VK_EXT_color_write_enable
+static void entry_vkCmdSetColorWriteEnableEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t attachmentCount,
+    const VkBool32* pColorWriteEnables)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetColorWriteEnableEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, true /* do lock */);
+}
+#endif
 #ifdef VK_GOOGLE_gfxstream
 static VkResult entry_vkRegisterImageColorBufferGOOGLE(
     VkDevice device,
@@ -7468,6 +8541,64 @@
     vkEnc->vkQueueSignalReleaseImageANDROIDAsyncGOOGLE(queue, waitSemaphoreCount, pWaitSemaphores, image, true /* do lock */);
 }
 #endif
+#ifdef VK_EXT_global_priority_query
+#endif
+#ifdef VK_EXT_multi_draw
+static void entry_vkCmdDrawMultiEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t drawCount,
+    const VkMultiDrawInfoEXT* pVertexInfo,
+    uint32_t instanceCount,
+    uint32_t firstInstance,
+    uint32_t stride)
+{
+    AEMU_SCOPED_TRACE("vkCmdDrawMultiEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, true /* do lock */);
+}
+static void entry_vkCmdDrawMultiIndexedEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t drawCount,
+    const VkMultiDrawIndexedInfoEXT* pIndexInfo,
+    uint32_t instanceCount,
+    uint32_t firstInstance,
+    uint32_t stride,
+    const int32_t* pVertexOffset)
+{
+    AEMU_SCOPED_TRACE("vkCmdDrawMultiIndexedEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, true /* do lock */);
+}
+#endif
+#ifdef VK_EXT_load_store_op_none
+#endif
+#ifdef VK_EXT_border_color_swizzle
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+static void entry_vkSetDeviceMemoryPriorityEXT(
+    VkDevice device,
+    VkDeviceMemory memory,
+    float priority)
+{
+    AEMU_SCOPED_TRACE("vkSetDeviceMemoryPriorityEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkSetDeviceMemoryPriorityEXT(device, memory, priority, true /* do lock */);
+}
+static void dynCheck_entry_vkSetDeviceMemoryPriorityEXT(
+    VkDevice device,
+    VkDeviceMemory memory,
+    float priority)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_EXT_pageable_device_local_memory"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkSetDeviceMemoryPriorityEXT", "VK_EXT_pageable_device_local_memory");
+    }
+    AEMU_SCOPED_TRACE("vkSetDeviceMemoryPriorityEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkSetDeviceMemoryPriorityEXT(device, memory, priority, true /* do lock */);
+}
+#endif
 #ifdef VK_KHR_acceleration_structure
 static VkResult entry_vkCreateAccelerationStructureKHR(
     VkDevice device,
@@ -8798,6 +9929,72 @@
         return nullptr;
     }
 #endif
+#ifdef VK_KHR_video_queue
+    if (!strcmp(name, "vkGetPhysicalDeviceVideoCapabilitiesKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetPhysicalDeviceVideoFormatPropertiesKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCreateVideoSessionKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkDestroyVideoSessionKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetVideoSessionMemoryRequirementsKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkBindVideoSessionMemoryKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCreateVideoSessionParametersKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkUpdateVideoSessionParametersKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkDestroyVideoSessionParametersKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdBeginVideoCodingKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdEndVideoCodingKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdControlVideoCodingKHR"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_KHR_video_decode_queue
+    if (!strcmp(name, "vkCmdDecodeVideoKHR"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_KHR_dynamic_rendering
+    if (!strcmp(name, "vkCmdBeginRenderingKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdEndRenderingKHR"))
+    {
+        return nullptr;
+    }
+#endif
 #ifdef VK_KHR_get_physical_device_properties2
     if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
     {
@@ -9100,6 +10297,12 @@
         return nullptr;
     }
 #endif
+#ifdef VK_KHR_present_wait
+    if (!strcmp(name, "vkWaitForPresentKHR"))
+    {
+        return nullptr;
+    }
+#endif
 #ifdef VK_KHR_buffer_device_address
     if (!strcmp(name, "vkGetBufferDeviceAddressKHR"))
     {
@@ -9150,6 +10353,46 @@
         return nullptr;
     }
 #endif
+#ifdef VK_KHR_video_encode_queue
+    if (!strcmp(name, "vkCmdEncodeVideoKHR"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_KHR_synchronization2
+    if (!strcmp(name, "vkCmdSetEvent2KHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdResetEvent2KHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdWaitEvents2KHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdPipelineBarrier2KHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdWriteTimestamp2KHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkQueueSubmit2KHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdWriteBufferMarker2AMD"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetQueueCheckpointData2NV"))
+    {
+        return nullptr;
+    }
+#endif
 #ifdef VK_KHR_copy_commands2
     if (!strcmp(name, "vkCmdCopyBuffer2KHR"))
     {
@@ -9176,6 +10419,20 @@
         return nullptr;
     }
 #endif
+#ifdef VK_KHR_maintenance4
+    if (!strcmp(name, "vkGetDeviceBufferMemoryRequirementsKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetDeviceImageMemoryRequirementsKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetDeviceImageSparseMemoryRequirementsKHR"))
+    {
+        return nullptr;
+    }
+#endif
 #ifdef VK_ANDROID_native_buffer
     if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
     {
@@ -9252,6 +10509,28 @@
         return nullptr;
     }
 #endif
+#ifdef VK_NVX_binary_import
+    if (!strcmp(name, "vkCreateCuModuleNVX"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCreateCuFunctionNVX"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkDestroyCuModuleNVX"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkDestroyCuFunctionNVX"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdCuLaunchKernelNVX"))
+    {
+        return nullptr;
+    }
+#endif
 #ifdef VK_NVX_image_view_handle
     if (!strcmp(name, "vkGetImageViewHandleNVX"))
     {
@@ -9820,6 +11099,16 @@
         return nullptr;
     }
 #endif
+#ifdef VK_EXT_acquire_drm_display
+    if (!strcmp(name, "vkAcquireDrmDisplayEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetDrmDisplayEXT"))
+    {
+        return nullptr;
+    }
+#endif
 #ifdef VK_EXT_private_data
     if (!strcmp(name, "vkCreatePrivateDataSlotEXT"))
     {
@@ -9844,6 +11133,16 @@
         return nullptr;
     }
 #endif
+#ifdef VK_NV_acquire_winrt_display
+    if (!strcmp(name, "vkAcquireWinrtDisplayNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetWinrtDisplayNV"))
+    {
+        return nullptr;
+    }
+#endif
 #ifdef VK_EXT_directfb_surface
     if (!strcmp(name, "vkCreateDirectFBSurfaceEXT"))
     {
@@ -9854,6 +11153,114 @@
         return nullptr;
     }
 #endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+    if (!strcmp(name, "vkCmdSetVertexInputEXT"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_FUCHSIA_external_memory
+    if (!strcmp(name, "vkGetMemoryZirconHandleFUCHSIA"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetMemoryZirconHandlePropertiesFUCHSIA"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+    if (!strcmp(name, "vkImportSemaphoreZirconHandleFUCHSIA"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetSemaphoreZirconHandleFUCHSIA"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+    if (!strcmp(name, "vkCreateBufferCollectionFUCHSIA"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkSetBufferCollectionImageConstraintsFUCHSIA"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkSetBufferCollectionBufferConstraintsFUCHSIA"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkDestroyBufferCollectionFUCHSIA"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetBufferCollectionPropertiesFUCHSIA"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+    if (!strcmp(name, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSubpassShadingHUAWEI"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+    if (!strcmp(name, "vkCmdBindInvocationMaskHUAWEI"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_NV_external_memory_rdma
+    if (!strcmp(name, "vkGetMemoryRemoteAddressNV"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+    if (!strcmp(name, "vkCmdSetPatchControlPointsEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetRasterizerDiscardEnableEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetDepthBiasEnableEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetLogicOpEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetPrimitiveRestartEnableEXT"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_QNX_screen_surface
+    if (!strcmp(name, "vkCreateScreenSurfaceQNX"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetPhysicalDeviceScreenPresentationSupportQNX"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_EXT_color_write_enable
+    if (!strcmp(name, "vkCmdSetColorWriteEnableEXT"))
+    {
+        return nullptr;
+    }
+#endif
 #ifdef VK_GOOGLE_gfxstream
     if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
     {
@@ -9940,6 +11347,22 @@
         return nullptr;
     }
 #endif
+#ifdef VK_EXT_multi_draw
+    if (!strcmp(name, "vkCmdDrawMultiEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdDrawMultiIndexedEXT"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+    if (!strcmp(name, "vkSetDeviceMemoryPriorityEXT"))
+    {
+        return nullptr;
+    }
+#endif
 #ifdef VK_KHR_acceleration_structure
     if (!strcmp(name, "vkCreateAccelerationStructureKHR"))
     {
@@ -10925,6 +12348,80 @@
         return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
     }
 #endif
+#ifdef VK_KHR_video_queue
+    if (!strcmp(name, "vkGetPhysicalDeviceVideoCapabilitiesKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_video_queue");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceVideoCapabilitiesKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetPhysicalDeviceVideoFormatPropertiesKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_video_queue");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceVideoFormatPropertiesKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCreateVideoSessionKHR"))
+    {
+        return (void*)dynCheck_entry_vkCreateVideoSessionKHR;
+    }
+    if (!strcmp(name, "vkDestroyVideoSessionKHR"))
+    {
+        return (void*)dynCheck_entry_vkDestroyVideoSessionKHR;
+    }
+    if (!strcmp(name, "vkGetVideoSessionMemoryRequirementsKHR"))
+    {
+        return (void*)dynCheck_entry_vkGetVideoSessionMemoryRequirementsKHR;
+    }
+    if (!strcmp(name, "vkBindVideoSessionMemoryKHR"))
+    {
+        return (void*)dynCheck_entry_vkBindVideoSessionMemoryKHR;
+    }
+    if (!strcmp(name, "vkCreateVideoSessionParametersKHR"))
+    {
+        return (void*)dynCheck_entry_vkCreateVideoSessionParametersKHR;
+    }
+    if (!strcmp(name, "vkUpdateVideoSessionParametersKHR"))
+    {
+        return (void*)dynCheck_entry_vkUpdateVideoSessionParametersKHR;
+    }
+    if (!strcmp(name, "vkDestroyVideoSessionParametersKHR"))
+    {
+        return (void*)dynCheck_entry_vkDestroyVideoSessionParametersKHR;
+    }
+    if (!strcmp(name, "vkCmdBeginVideoCodingKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_video_queue");
+        return hasExt ? (void*)entry_vkCmdBeginVideoCodingKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdEndVideoCodingKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_video_queue");
+        return hasExt ? (void*)entry_vkCmdEndVideoCodingKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdControlVideoCodingKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_video_queue");
+        return hasExt ? (void*)entry_vkCmdControlVideoCodingKHR : nullptr;
+    }
+#endif
+#ifdef VK_KHR_video_decode_queue
+    if (!strcmp(name, "vkCmdDecodeVideoKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_video_decode_queue");
+        return hasExt ? (void*)entry_vkCmdDecodeVideoKHR : nullptr;
+    }
+#endif
+#ifdef VK_KHR_dynamic_rendering
+    if (!strcmp(name, "vkCmdBeginRenderingKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_dynamic_rendering");
+        return hasExt ? (void*)entry_vkCmdBeginRenderingKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdEndRenderingKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_dynamic_rendering");
+        return hasExt ? (void*)entry_vkCmdEndRenderingKHR : nullptr;
+    }
+#endif
 #ifdef VK_KHR_get_physical_device_properties2
     if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
     {
@@ -11257,6 +12754,12 @@
         return hasExt ? (void*)entry_vkCmdSetFragmentShadingRateKHR : nullptr;
     }
 #endif
+#ifdef VK_KHR_present_wait
+    if (!strcmp(name, "vkWaitForPresentKHR"))
+    {
+        return (void*)dynCheck_entry_vkWaitForPresentKHR;
+    }
+#endif
 #ifdef VK_KHR_buffer_device_address
     if (!strcmp(name, "vkGetBufferDeviceAddressKHR"))
     {
@@ -11307,6 +12810,55 @@
         return (void*)dynCheck_entry_vkGetPipelineExecutableInternalRepresentationsKHR;
     }
 #endif
+#ifdef VK_KHR_video_encode_queue
+    if (!strcmp(name, "vkCmdEncodeVideoKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_video_encode_queue");
+        return hasExt ? (void*)entry_vkCmdEncodeVideoKHR : nullptr;
+    }
+#endif
+#ifdef VK_KHR_synchronization2
+    if (!strcmp(name, "vkCmdSetEvent2KHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkCmdSetEvent2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdResetEvent2KHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkCmdResetEvent2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdWaitEvents2KHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkCmdWaitEvents2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdPipelineBarrier2KHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkCmdPipelineBarrier2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdWriteTimestamp2KHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkCmdWriteTimestamp2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkQueueSubmit2KHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkQueueSubmit2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdWriteBufferMarker2AMD"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkCmdWriteBufferMarker2AMD : nullptr;
+    }
+    if (!strcmp(name, "vkGetQueueCheckpointData2NV"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkGetQueueCheckpointData2NV : nullptr;
+    }
+#endif
 #ifdef VK_KHR_copy_commands2
     if (!strcmp(name, "vkCmdCopyBuffer2KHR"))
     {
@@ -11339,6 +12891,20 @@
         return hasExt ? (void*)entry_vkCmdResolveImage2KHR : nullptr;
     }
 #endif
+#ifdef VK_KHR_maintenance4
+    if (!strcmp(name, "vkGetDeviceBufferMemoryRequirementsKHR"))
+    {
+        return (void*)dynCheck_entry_vkGetDeviceBufferMemoryRequirementsKHR;
+    }
+    if (!strcmp(name, "vkGetDeviceImageMemoryRequirementsKHR"))
+    {
+        return (void*)dynCheck_entry_vkGetDeviceImageMemoryRequirementsKHR;
+    }
+    if (!strcmp(name, "vkGetDeviceImageSparseMemoryRequirementsKHR"))
+    {
+        return (void*)dynCheck_entry_vkGetDeviceImageSparseMemoryRequirementsKHR;
+    }
+#endif
 #ifdef VK_ANDROID_native_buffer
     if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
     {
@@ -11428,6 +12994,29 @@
         return hasExt ? (void*)entry_vkCmdDrawIndirectByteCountEXT : nullptr;
     }
 #endif
+#ifdef VK_NVX_binary_import
+    if (!strcmp(name, "vkCreateCuModuleNVX"))
+    {
+        return (void*)dynCheck_entry_vkCreateCuModuleNVX;
+    }
+    if (!strcmp(name, "vkCreateCuFunctionNVX"))
+    {
+        return (void*)dynCheck_entry_vkCreateCuFunctionNVX;
+    }
+    if (!strcmp(name, "vkDestroyCuModuleNVX"))
+    {
+        return (void*)dynCheck_entry_vkDestroyCuModuleNVX;
+    }
+    if (!strcmp(name, "vkDestroyCuFunctionNVX"))
+    {
+        return (void*)dynCheck_entry_vkDestroyCuFunctionNVX;
+    }
+    if (!strcmp(name, "vkCmdCuLaunchKernelNVX"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_binary_import");
+        return hasExt ? (void*)entry_vkCmdCuLaunchKernelNVX : nullptr;
+    }
+#endif
 #ifdef VK_NVX_image_view_handle
     if (!strcmp(name, "vkGetImageViewHandleNVX"))
     {
@@ -12070,6 +13659,18 @@
         return (void*)dynCheck_entry_vkDestroyIndirectCommandsLayoutNV;
     }
 #endif
+#ifdef VK_EXT_acquire_drm_display
+    if (!strcmp(name, "vkAcquireDrmDisplayEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_drm_display");
+        return hasExt ? (void*)entry_vkAcquireDrmDisplayEXT : nullptr;
+    }
+    if (!strcmp(name, "vkGetDrmDisplayEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_drm_display");
+        return hasExt ? (void*)entry_vkGetDrmDisplayEXT : nullptr;
+    }
+#endif
 #ifdef VK_EXT_private_data
     if (!strcmp(name, "vkCreatePrivateDataSlotEXT"))
     {
@@ -12095,6 +13696,18 @@
         return hasExt ? (void*)entry_vkCmdSetFragmentShadingRateEnumNV : nullptr;
     }
 #endif
+#ifdef VK_NV_acquire_winrt_display
+    if (!strcmp(name, "vkAcquireWinrtDisplayNV"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_acquire_winrt_display");
+        return hasExt ? (void*)entry_vkAcquireWinrtDisplayNV : nullptr;
+    }
+    if (!strcmp(name, "vkGetWinrtDisplayNV"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_acquire_winrt_display");
+        return hasExt ? (void*)entry_vkGetWinrtDisplayNV : nullptr;
+    }
+#endif
 #ifdef VK_EXT_directfb_surface
     if (!strcmp(name, "vkCreateDirectFBSurfaceEXT"))
     {
@@ -12107,6 +13720,125 @@
         return hasExt ? (void*)entry_vkGetPhysicalDeviceDirectFBPresentationSupportEXT : nullptr;
     }
 #endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+    if (!strcmp(name, "vkCmdSetVertexInputEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_vertex_input_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetVertexInputEXT : nullptr;
+    }
+#endif
+#ifdef VK_FUCHSIA_external_memory
+    if (!strcmp(name, "vkGetMemoryZirconHandleFUCHSIA"))
+    {
+        return (void*)dynCheck_entry_vkGetMemoryZirconHandleFUCHSIA;
+    }
+    if (!strcmp(name, "vkGetMemoryZirconHandlePropertiesFUCHSIA"))
+    {
+        return (void*)dynCheck_entry_vkGetMemoryZirconHandlePropertiesFUCHSIA;
+    }
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+    if (!strcmp(name, "vkImportSemaphoreZirconHandleFUCHSIA"))
+    {
+        return (void*)dynCheck_entry_vkImportSemaphoreZirconHandleFUCHSIA;
+    }
+    if (!strcmp(name, "vkGetSemaphoreZirconHandleFUCHSIA"))
+    {
+        return (void*)dynCheck_entry_vkGetSemaphoreZirconHandleFUCHSIA;
+    }
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+    if (!strcmp(name, "vkCreateBufferCollectionFUCHSIA"))
+    {
+        return (void*)dynCheck_entry_vkCreateBufferCollectionFUCHSIA;
+    }
+    if (!strcmp(name, "vkSetBufferCollectionImageConstraintsFUCHSIA"))
+    {
+        return (void*)dynCheck_entry_vkSetBufferCollectionImageConstraintsFUCHSIA;
+    }
+    if (!strcmp(name, "vkSetBufferCollectionBufferConstraintsFUCHSIA"))
+    {
+        return (void*)dynCheck_entry_vkSetBufferCollectionBufferConstraintsFUCHSIA;
+    }
+    if (!strcmp(name, "vkDestroyBufferCollectionFUCHSIA"))
+    {
+        return (void*)dynCheck_entry_vkDestroyBufferCollectionFUCHSIA;
+    }
+    if (!strcmp(name, "vkGetBufferCollectionPropertiesFUCHSIA"))
+    {
+        return (void*)dynCheck_entry_vkGetBufferCollectionPropertiesFUCHSIA;
+    }
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+    if (!strcmp(name, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI"))
+    {
+        return (void*)dynCheck_entry_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
+    }
+    if (!strcmp(name, "vkCmdSubpassShadingHUAWEI"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_HUAWEI_subpass_shading");
+        return hasExt ? (void*)entry_vkCmdSubpassShadingHUAWEI : nullptr;
+    }
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+    if (!strcmp(name, "vkCmdBindInvocationMaskHUAWEI"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_HUAWEI_invocation_mask");
+        return hasExt ? (void*)entry_vkCmdBindInvocationMaskHUAWEI : nullptr;
+    }
+#endif
+#ifdef VK_NV_external_memory_rdma
+    if (!strcmp(name, "vkGetMemoryRemoteAddressNV"))
+    {
+        return (void*)dynCheck_entry_vkGetMemoryRemoteAddressNV;
+    }
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+    if (!strcmp(name, "vkCmdSetPatchControlPointsEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state2");
+        return hasExt ? (void*)entry_vkCmdSetPatchControlPointsEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetRasterizerDiscardEnableEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state2");
+        return hasExt ? (void*)entry_vkCmdSetRasterizerDiscardEnableEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetDepthBiasEnableEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state2");
+        return hasExt ? (void*)entry_vkCmdSetDepthBiasEnableEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetLogicOpEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state2");
+        return hasExt ? (void*)entry_vkCmdSetLogicOpEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetPrimitiveRestartEnableEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state2");
+        return hasExt ? (void*)entry_vkCmdSetPrimitiveRestartEnableEXT : nullptr;
+    }
+#endif
+#ifdef VK_QNX_screen_surface
+    if (!strcmp(name, "vkCreateScreenSurfaceQNX"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_QNX_screen_surface");
+        return hasExt ? (void*)entry_vkCreateScreenSurfaceQNX : nullptr;
+    }
+    if (!strcmp(name, "vkGetPhysicalDeviceScreenPresentationSupportQNX"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_QNX_screen_surface");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceScreenPresentationSupportQNX : nullptr;
+    }
+#endif
+#ifdef VK_EXT_color_write_enable
+    if (!strcmp(name, "vkCmdSetColorWriteEnableEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_color_write_enable");
+        return hasExt ? (void*)entry_vkCmdSetColorWriteEnableEXT : nullptr;
+    }
+#endif
 #ifdef VK_GOOGLE_gfxstream
     if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
     {
@@ -12204,6 +13936,24 @@
         return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE : nullptr;
     }
 #endif
+#ifdef VK_EXT_multi_draw
+    if (!strcmp(name, "vkCmdDrawMultiEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_multi_draw");
+        return hasExt ? (void*)entry_vkCmdDrawMultiEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdDrawMultiIndexedEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_multi_draw");
+        return hasExt ? (void*)entry_vkCmdDrawMultiIndexedEXT : nullptr;
+    }
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+    if (!strcmp(name, "vkSetDeviceMemoryPriorityEXT"))
+    {
+        return (void*)dynCheck_entry_vkSetDeviceMemoryPriorityEXT;
+    }
+#endif
 #ifdef VK_KHR_acceleration_structure
     if (!strcmp(name, "vkCreateAccelerationStructureKHR"))
     {
@@ -13214,6 +14964,87 @@
         return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
     }
 #endif
+#ifdef VK_KHR_video_queue
+    if (!strcmp(name, "vkGetPhysicalDeviceVideoCapabilitiesKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceVideoCapabilitiesKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetPhysicalDeviceVideoFormatPropertiesKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceVideoFormatPropertiesKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCreateVideoSessionKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue");
+        return hasExt ? (void*)entry_vkCreateVideoSessionKHR : nullptr;
+    }
+    if (!strcmp(name, "vkDestroyVideoSessionKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue");
+        return hasExt ? (void*)entry_vkDestroyVideoSessionKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetVideoSessionMemoryRequirementsKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue");
+        return hasExt ? (void*)entry_vkGetVideoSessionMemoryRequirementsKHR : nullptr;
+    }
+    if (!strcmp(name, "vkBindVideoSessionMemoryKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue");
+        return hasExt ? (void*)entry_vkBindVideoSessionMemoryKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCreateVideoSessionParametersKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue");
+        return hasExt ? (void*)entry_vkCreateVideoSessionParametersKHR : nullptr;
+    }
+    if (!strcmp(name, "vkUpdateVideoSessionParametersKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue");
+        return hasExt ? (void*)entry_vkUpdateVideoSessionParametersKHR : nullptr;
+    }
+    if (!strcmp(name, "vkDestroyVideoSessionParametersKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue");
+        return hasExt ? (void*)entry_vkDestroyVideoSessionParametersKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdBeginVideoCodingKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue");
+        return hasExt ? (void*)entry_vkCmdBeginVideoCodingKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdEndVideoCodingKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue");
+        return hasExt ? (void*)entry_vkCmdEndVideoCodingKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdControlVideoCodingKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue");
+        return hasExt ? (void*)entry_vkCmdControlVideoCodingKHR : nullptr;
+    }
+#endif
+#ifdef VK_KHR_video_decode_queue
+    if (!strcmp(name, "vkCmdDecodeVideoKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_decode_queue");
+        return hasExt ? (void*)entry_vkCmdDecodeVideoKHR : nullptr;
+    }
+#endif
+#ifdef VK_KHR_dynamic_rendering
+    if (!strcmp(name, "vkCmdBeginRenderingKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_dynamic_rendering");
+        return hasExt ? (void*)entry_vkCmdBeginRenderingKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdEndRenderingKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_dynamic_rendering");
+        return hasExt ? (void*)entry_vkCmdEndRenderingKHR : nullptr;
+    }
+#endif
 #ifdef VK_KHR_get_physical_device_properties2
     if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
     {
@@ -13578,6 +15409,13 @@
         return hasExt ? (void*)entry_vkCmdSetFragmentShadingRateKHR : nullptr;
     }
 #endif
+#ifdef VK_KHR_present_wait
+    if (!strcmp(name, "vkWaitForPresentKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_present_wait");
+        return hasExt ? (void*)entry_vkWaitForPresentKHR : nullptr;
+    }
+#endif
 #ifdef VK_KHR_buffer_device_address
     if (!strcmp(name, "vkGetBufferDeviceAddressKHR"))
     {
@@ -13639,6 +15477,55 @@
         return hasExt ? (void*)entry_vkGetPipelineExecutableInternalRepresentationsKHR : nullptr;
     }
 #endif
+#ifdef VK_KHR_video_encode_queue
+    if (!strcmp(name, "vkCmdEncodeVideoKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_encode_queue");
+        return hasExt ? (void*)entry_vkCmdEncodeVideoKHR : nullptr;
+    }
+#endif
+#ifdef VK_KHR_synchronization2
+    if (!strcmp(name, "vkCmdSetEvent2KHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkCmdSetEvent2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdResetEvent2KHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkCmdResetEvent2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdWaitEvents2KHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkCmdWaitEvents2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdPipelineBarrier2KHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkCmdPipelineBarrier2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdWriteTimestamp2KHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkCmdWriteTimestamp2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkQueueSubmit2KHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkQueueSubmit2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdWriteBufferMarker2AMD"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkCmdWriteBufferMarker2AMD : nullptr;
+    }
+    if (!strcmp(name, "vkGetQueueCheckpointData2NV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkGetQueueCheckpointData2NV : nullptr;
+    }
+#endif
 #ifdef VK_KHR_copy_commands2
     if (!strcmp(name, "vkCmdCopyBuffer2KHR"))
     {
@@ -13671,6 +15558,23 @@
         return hasExt ? (void*)entry_vkCmdResolveImage2KHR : nullptr;
     }
 #endif
+#ifdef VK_KHR_maintenance4
+    if (!strcmp(name, "vkGetDeviceBufferMemoryRequirementsKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance4");
+        return hasExt ? (void*)entry_vkGetDeviceBufferMemoryRequirementsKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetDeviceImageMemoryRequirementsKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance4");
+        return hasExt ? (void*)entry_vkGetDeviceImageMemoryRequirementsKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetDeviceImageSparseMemoryRequirementsKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance4");
+        return hasExt ? (void*)entry_vkGetDeviceImageSparseMemoryRequirementsKHR : nullptr;
+    }
+#endif
 #ifdef VK_ANDROID_native_buffer
     if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
     {
@@ -13764,6 +15668,33 @@
         return hasExt ? (void*)entry_vkCmdDrawIndirectByteCountEXT : nullptr;
     }
 #endif
+#ifdef VK_NVX_binary_import
+    if (!strcmp(name, "vkCreateCuModuleNVX"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_binary_import");
+        return hasExt ? (void*)entry_vkCreateCuModuleNVX : nullptr;
+    }
+    if (!strcmp(name, "vkCreateCuFunctionNVX"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_binary_import");
+        return hasExt ? (void*)entry_vkCreateCuFunctionNVX : nullptr;
+    }
+    if (!strcmp(name, "vkDestroyCuModuleNVX"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_binary_import");
+        return hasExt ? (void*)entry_vkDestroyCuModuleNVX : nullptr;
+    }
+    if (!strcmp(name, "vkDestroyCuFunctionNVX"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_binary_import");
+        return hasExt ? (void*)entry_vkDestroyCuFunctionNVX : nullptr;
+    }
+    if (!strcmp(name, "vkCmdCuLaunchKernelNVX"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_binary_import");
+        return hasExt ? (void*)entry_vkCmdCuLaunchKernelNVX : nullptr;
+    }
+#endif
 #ifdef VK_NVX_image_view_handle
     if (!strcmp(name, "vkGetImageViewHandleNVX"))
     {
@@ -14451,6 +16382,18 @@
         return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNV : nullptr;
     }
 #endif
+#ifdef VK_EXT_acquire_drm_display
+    if (!strcmp(name, "vkAcquireDrmDisplayEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_drm_display");
+        return hasExt ? (void*)entry_vkAcquireDrmDisplayEXT : nullptr;
+    }
+    if (!strcmp(name, "vkGetDrmDisplayEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_drm_display");
+        return hasExt ? (void*)entry_vkGetDrmDisplayEXT : nullptr;
+    }
+#endif
 #ifdef VK_EXT_private_data
     if (!strcmp(name, "vkCreatePrivateDataSlotEXT"))
     {
@@ -14480,6 +16423,18 @@
         return hasExt ? (void*)entry_vkCmdSetFragmentShadingRateEnumNV : nullptr;
     }
 #endif
+#ifdef VK_NV_acquire_winrt_display
+    if (!strcmp(name, "vkAcquireWinrtDisplayNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_acquire_winrt_display");
+        return hasExt ? (void*)entry_vkAcquireWinrtDisplayNV : nullptr;
+    }
+    if (!strcmp(name, "vkGetWinrtDisplayNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_acquire_winrt_display");
+        return hasExt ? (void*)entry_vkGetWinrtDisplayNV : nullptr;
+    }
+#endif
 #ifdef VK_EXT_directfb_surface
     if (!strcmp(name, "vkCreateDirectFBSurfaceEXT"))
     {
@@ -14492,6 +16447,136 @@
         return hasExt ? (void*)entry_vkGetPhysicalDeviceDirectFBPresentationSupportEXT : nullptr;
     }
 #endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+    if (!strcmp(name, "vkCmdSetVertexInputEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_vertex_input_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetVertexInputEXT : nullptr;
+    }
+#endif
+#ifdef VK_FUCHSIA_external_memory
+    if (!strcmp(name, "vkGetMemoryZirconHandleFUCHSIA"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_FUCHSIA_external_memory");
+        return hasExt ? (void*)entry_vkGetMemoryZirconHandleFUCHSIA : nullptr;
+    }
+    if (!strcmp(name, "vkGetMemoryZirconHandlePropertiesFUCHSIA"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_FUCHSIA_external_memory");
+        return hasExt ? (void*)entry_vkGetMemoryZirconHandlePropertiesFUCHSIA : nullptr;
+    }
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+    if (!strcmp(name, "vkImportSemaphoreZirconHandleFUCHSIA"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_FUCHSIA_external_semaphore");
+        return hasExt ? (void*)entry_vkImportSemaphoreZirconHandleFUCHSIA : nullptr;
+    }
+    if (!strcmp(name, "vkGetSemaphoreZirconHandleFUCHSIA"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_FUCHSIA_external_semaphore");
+        return hasExt ? (void*)entry_vkGetSemaphoreZirconHandleFUCHSIA : nullptr;
+    }
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+    if (!strcmp(name, "vkCreateBufferCollectionFUCHSIA"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_FUCHSIA_buffer_collection");
+        return hasExt ? (void*)entry_vkCreateBufferCollectionFUCHSIA : nullptr;
+    }
+    if (!strcmp(name, "vkSetBufferCollectionImageConstraintsFUCHSIA"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_FUCHSIA_buffer_collection");
+        return hasExt ? (void*)entry_vkSetBufferCollectionImageConstraintsFUCHSIA : nullptr;
+    }
+    if (!strcmp(name, "vkSetBufferCollectionBufferConstraintsFUCHSIA"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_FUCHSIA_buffer_collection");
+        return hasExt ? (void*)entry_vkSetBufferCollectionBufferConstraintsFUCHSIA : nullptr;
+    }
+    if (!strcmp(name, "vkDestroyBufferCollectionFUCHSIA"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_FUCHSIA_buffer_collection");
+        return hasExt ? (void*)entry_vkDestroyBufferCollectionFUCHSIA : nullptr;
+    }
+    if (!strcmp(name, "vkGetBufferCollectionPropertiesFUCHSIA"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_FUCHSIA_buffer_collection");
+        return hasExt ? (void*)entry_vkGetBufferCollectionPropertiesFUCHSIA : nullptr;
+    }
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+    if (!strcmp(name, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_HUAWEI_subpass_shading");
+        return hasExt ? (void*)entry_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSubpassShadingHUAWEI"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_HUAWEI_subpass_shading");
+        return hasExt ? (void*)entry_vkCmdSubpassShadingHUAWEI : nullptr;
+    }
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+    if (!strcmp(name, "vkCmdBindInvocationMaskHUAWEI"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_HUAWEI_invocation_mask");
+        return hasExt ? (void*)entry_vkCmdBindInvocationMaskHUAWEI : nullptr;
+    }
+#endif
+#ifdef VK_NV_external_memory_rdma
+    if (!strcmp(name, "vkGetMemoryRemoteAddressNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_rdma");
+        return hasExt ? (void*)entry_vkGetMemoryRemoteAddressNV : nullptr;
+    }
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+    if (!strcmp(name, "vkCmdSetPatchControlPointsEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2");
+        return hasExt ? (void*)entry_vkCmdSetPatchControlPointsEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetRasterizerDiscardEnableEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2");
+        return hasExt ? (void*)entry_vkCmdSetRasterizerDiscardEnableEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetDepthBiasEnableEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2");
+        return hasExt ? (void*)entry_vkCmdSetDepthBiasEnableEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetLogicOpEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2");
+        return hasExt ? (void*)entry_vkCmdSetLogicOpEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetPrimitiveRestartEnableEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2");
+        return hasExt ? (void*)entry_vkCmdSetPrimitiveRestartEnableEXT : nullptr;
+    }
+#endif
+#ifdef VK_QNX_screen_surface
+    if (!strcmp(name, "vkCreateScreenSurfaceQNX"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_QNX_screen_surface");
+        return hasExt ? (void*)entry_vkCreateScreenSurfaceQNX : nullptr;
+    }
+    if (!strcmp(name, "vkGetPhysicalDeviceScreenPresentationSupportQNX"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_QNX_screen_surface");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceScreenPresentationSupportQNX : nullptr;
+    }
+#endif
+#ifdef VK_EXT_color_write_enable
+    if (!strcmp(name, "vkCmdSetColorWriteEnableEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_color_write_enable");
+        return hasExt ? (void*)entry_vkCmdSetColorWriteEnableEXT : nullptr;
+    }
+#endif
 #ifdef VK_GOOGLE_gfxstream
     if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
     {
@@ -14599,6 +16684,25 @@
         return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE : nullptr;
     }
 #endif
+#ifdef VK_EXT_multi_draw
+    if (!strcmp(name, "vkCmdDrawMultiEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_multi_draw");
+        return hasExt ? (void*)entry_vkCmdDrawMultiEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdDrawMultiIndexedEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_multi_draw");
+        return hasExt ? (void*)entry_vkCmdDrawMultiIndexedEXT : nullptr;
+    }
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+    if (!strcmp(name, "vkSetDeviceMemoryPriorityEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_pageable_device_local_memory");
+        return hasExt ? (void*)entry_vkSetDeviceMemoryPriorityEXT : nullptr;
+    }
+#endif
 #ifdef VK_KHR_acceleration_structure
     if (!strcmp(name, "vkCreateAccelerationStructureKHR"))
     {
diff --git a/system/vulkan_enc/func_table.h b/system/vulkan_enc/func_table.h
index 3c12410..34816ea 100644
--- a/system/vulkan_enc/func_table.h
+++ b/system/vulkan_enc/func_table.h
@@ -56,6 +56,12 @@
 #endif
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
+#ifdef VK_KHR_video_queue
+#endif
+#ifdef VK_KHR_video_decode_queue
+#endif
+#ifdef VK_KHR_dynamic_rendering
+#endif
 #ifdef VK_KHR_multiview
 #endif
 #ifdef VK_KHR_get_physical_device_properties2
@@ -170,6 +176,8 @@
 #endif
 #ifdef VK_KHR_separate_depth_stencil_layouts
 #endif
+#ifdef VK_KHR_present_wait
+#endif
 #ifdef VK_KHR_uniform_buffer_standard_layout
 #endif
 #ifdef VK_KHR_buffer_device_address
@@ -178,12 +186,30 @@
 #endif
 #ifdef VK_KHR_pipeline_executable_properties
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+#endif
 #ifdef VK_KHR_pipeline_library
 #endif
 #ifdef VK_KHR_shader_non_semantic_info
 #endif
+#ifdef VK_KHR_present_id
+#endif
+#ifdef VK_KHR_video_encode_queue
+#endif
+#ifdef VK_KHR_synchronization2
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+#endif
 #ifdef VK_KHR_copy_commands2
 #endif
+#ifdef VK_KHR_format_feature_flags2
+#endif
+#ifdef VK_KHR_maintenance4
+#endif
 #ifdef VK_ANDROID_native_buffer
 #endif
 #ifdef VK_EXT_debug_report
@@ -208,6 +234,8 @@
 #endif
 #ifdef VK_EXT_transform_feedback
 #endif
+#ifdef VK_NVX_binary_import
+#endif
 #ifdef VK_NVX_image_view_handle
 #endif
 #ifdef VK_AMD_draw_indirect_count
@@ -218,6 +246,12 @@
 #endif
 #ifdef VK_AMD_shader_ballot
 #endif
+#ifdef VK_EXT_video_encode_h264
+#endif
+#ifdef VK_EXT_video_encode_h265
+#endif
+#ifdef VK_EXT_video_decode_h264
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
 #endif
 #ifdef VK_AMD_shader_info
@@ -354,6 +388,8 @@
 #endif
 #ifdef VK_AMD_shader_core_properties
 #endif
+#ifdef VK_EXT_video_decode_h265
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
 #endif
 #ifdef VK_EXT_vertex_attribute_divisor
@@ -426,6 +462,8 @@
 #endif
 #ifdef VK_EXT_ycbcr_image_arrays
 #endif
+#ifdef VK_EXT_provoking_vertex
+#endif
 #ifdef VK_EXT_full_screen_exclusive
 #endif
 #ifdef VK_EXT_headless_surface
@@ -440,16 +478,22 @@
 #endif
 #ifdef VK_EXT_extended_dynamic_state
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+#endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 #endif
 #ifdef VK_NV_device_generated_commands
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+#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_acquire_drm_display
+#endif
 #ifdef VK_EXT_robustness2
 #endif
 #ifdef VK_EXT_custom_border_color
@@ -466,6 +510,10 @@
 #endif
 #ifdef VK_NV_fragment_shading_rate_enums
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+#endif
 #ifdef VK_EXT_fragment_density_map2
 #endif
 #ifdef VK_QCOM_rotated_copy_commands
@@ -474,10 +522,50 @@
 #endif
 #ifdef VK_EXT_4444_formats
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+#endif
+#ifdef VK_NV_acquire_winrt_display
+#endif
 #ifdef VK_EXT_directfb_surface
 #endif
+#ifdef VK_VALVE_mutable_descriptor_type
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+#endif
+#ifdef VK_EXT_physical_device_drm
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+#endif
+#ifdef VK_FUCHSIA_external_memory
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+#endif
+#ifdef VK_NV_external_memory_rdma
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+#endif
+#ifdef VK_QNX_screen_surface
+#endif
+#ifdef VK_EXT_color_write_enable
+#endif
 #ifdef VK_GOOGLE_gfxstream
 #endif
+#ifdef VK_EXT_global_priority_query
+#endif
+#ifdef VK_EXT_multi_draw
+#endif
+#ifdef VK_EXT_load_store_op_none
+#endif
+#ifdef VK_EXT_border_color_swizzle
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+#endif
 #ifdef VK_KHR_acceleration_structure
 #endif
 #ifdef VK_KHR_ray_tracing_pipeline
diff --git a/system/vulkan_enc/goldfish_vk_counting_guest.cpp b/system/vulkan_enc/goldfish_vk_counting_guest.cpp
index 4e42832..517a0ac 100644
--- a/system/vulkan_enc/goldfish_vk_counting_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_counting_guest.cpp
@@ -284,6 +284,23 @@
     *count += sizeof(VkAccessFlags);
 }
 
+void count_VkPipelineCacheHeaderVersionOne(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPipelineCacheHeaderVersionOne* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkPipelineCacheHeaderVersion);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += VK_UUID_SIZE * sizeof(uint8_t);
+}
+
 void count_VkAllocationCallbacks(
     uint32_t featureBits,
     VkStructureType rootType,
@@ -6086,6 +6103,627 @@
 #endif
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
+#ifdef VK_KHR_video_queue
+void count_VkVideoQueueFamilyProperties2KHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoQueueFamilyProperties2KHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkVideoCodecOperationFlagsKHR);
+}
+
+void count_VkVideoProfileKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoProfileKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkVideoCodecOperationFlagBitsKHR);
+    *count += sizeof(VkVideoChromaSubsamplingFlagsKHR);
+    *count += sizeof(VkVideoComponentBitDepthFlagsKHR);
+    *count += sizeof(VkVideoComponentBitDepthFlagsKHR);
+}
+
+void count_VkVideoProfilesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoProfilesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    count_VkVideoProfileKHR(featureBits, rootType, (const VkVideoProfileKHR*)(toCount->pProfiles), count);
+}
+
+void count_VkVideoCapabilitiesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoCapabilitiesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkVideoCapabilityFlagsKHR);
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkDeviceSize);
+    count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->videoPictureExtentGranularity), count);
+    count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->minExtent), count);
+    count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->maxExtent), count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkPhysicalDeviceVideoFormatInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceVideoFormatInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkImageUsageFlags);
+    count_VkVideoProfilesKHR(featureBits, rootType, (const VkVideoProfilesKHR*)(toCount->pVideoProfiles), count);
+}
+
+void count_VkVideoFormatPropertiesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoFormatPropertiesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkFormat);
+}
+
+void count_VkVideoPictureResourceKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoPictureResourceKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    count_VkOffset2D(featureBits, rootType, (VkOffset2D*)(&toCount->codedOffset), count);
+    count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->codedExtent), count);
+    *count += sizeof(uint32_t);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+}
+
+void count_VkVideoReferenceSlotKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoReferenceSlotKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(int8_t);
+    count_VkVideoPictureResourceKHR(featureBits, rootType, (const VkVideoPictureResourceKHR*)(toCount->pPictureResource), count);
+}
+
+void count_VkVideoGetMemoryPropertiesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoGetMemoryPropertiesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    count_VkMemoryRequirements2(featureBits, rootType, (VkMemoryRequirements2*)(toCount->pMemoryRequirements), count);
+}
+
+void count_VkVideoBindMemoryKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoBindMemoryKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkDeviceSize);
+}
+
+void count_VkVideoSessionCreateInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoSessionCreateInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkVideoSessionCreateFlagsKHR);
+    count_VkVideoProfileKHR(featureBits, rootType, (const VkVideoProfileKHR*)(toCount->pVideoProfile), count);
+    *count += sizeof(VkFormat);
+    count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->maxCodedExtent), count);
+    *count += sizeof(VkFormat);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkVideoSessionParametersCreateInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoSessionParametersCreateInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += 8;
+    *count += 8;
+}
+
+void count_VkVideoSessionParametersUpdateInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoSessionParametersUpdateInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkVideoBeginCodingInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoBeginCodingInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkVideoBeginCodingFlagsKHR);
+    *count += sizeof(VkVideoCodingQualityPresetFlagsKHR);
+    *count += 8;
+    *count += 8;
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->referenceSlotCount; ++i)
+        {
+            count_VkVideoReferenceSlotKHR(featureBits, rootType, (const VkVideoReferenceSlotKHR*)(toCount->pReferenceSlots + i), count);
+        }
+    }
+}
+
+void count_VkVideoEndCodingInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEndCodingInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkVideoEndCodingFlagsKHR);
+}
+
+void count_VkVideoCodingControlInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoCodingControlInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkVideoCodingControlFlagsKHR);
+}
+
+#endif
+#ifdef VK_KHR_video_decode_queue
+void count_VkVideoDecodeInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkVideoDecodeFlagsKHR);
+    count_VkOffset2D(featureBits, rootType, (VkOffset2D*)(&toCount->codedOffset), count);
+    count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->codedExtent), count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkDeviceSize);
+    count_VkVideoPictureResourceKHR(featureBits, rootType, (VkVideoPictureResourceKHR*)(&toCount->dstPictureResource), count);
+    count_VkVideoReferenceSlotKHR(featureBits, rootType, (const VkVideoReferenceSlotKHR*)(toCount->pSetupReferenceSlot), count);
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->referenceSlotCount; ++i)
+        {
+            count_VkVideoReferenceSlotKHR(featureBits, rootType, (const VkVideoReferenceSlotKHR*)(toCount->pReferenceSlots + i), count);
+        }
+    }
+}
+
+#endif
+#ifdef VK_KHR_dynamic_rendering
+void count_VkRenderingAttachmentInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkRenderingAttachmentInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkImageLayout);
+    *count += sizeof(VkResolveModeFlagBits);
+    uint64_t cgen_var_1;
+    *count += 1 * 8;
+    *count += sizeof(VkImageLayout);
+    *count += sizeof(VkAttachmentLoadOp);
+    *count += sizeof(VkAttachmentStoreOp);
+    count_VkClearValue(featureBits, rootType, (VkClearValue*)(&toCount->clearValue), count);
+}
+
+void count_VkRenderingInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkRenderingInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkRenderingFlagsKHR);
+    count_VkRect2D(featureBits, rootType, (VkRect2D*)(&toCount->renderArea), count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->colorAttachmentCount; ++i)
+        {
+            count_VkRenderingAttachmentInfoKHR(featureBits, rootType, (const VkRenderingAttachmentInfoKHR*)(toCount->pColorAttachments + i), count);
+        }
+    }
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pDepthAttachment)
+    {
+        count_VkRenderingAttachmentInfoKHR(featureBits, rootType, (const VkRenderingAttachmentInfoKHR*)(toCount->pDepthAttachment), count);
+    }
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pStencilAttachment)
+    {
+        count_VkRenderingAttachmentInfoKHR(featureBits, rootType, (const VkRenderingAttachmentInfoKHR*)(toCount->pStencilAttachment), count);
+    }
+}
+
+void count_VkPipelineRenderingCreateInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPipelineRenderingCreateInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        *count += toCount->colorAttachmentCount * sizeof(const VkFormat);
+    }
+    *count += sizeof(VkFormat);
+    *count += sizeof(VkFormat);
+}
+
+void count_VkPhysicalDeviceDynamicRenderingFeaturesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceDynamicRenderingFeaturesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkCommandBufferInheritanceRenderingInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkCommandBufferInheritanceRenderingInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkRenderingFlagsKHR);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        *count += toCount->colorAttachmentCount * sizeof(const VkFormat);
+    }
+    *count += sizeof(VkFormat);
+    *count += sizeof(VkFormat);
+    *count += sizeof(VkSampleCountFlagBits);
+}
+
+void count_VkRenderingFragmentShadingRateAttachmentInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkRenderingFragmentShadingRateAttachmentInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkImageLayout);
+    count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->shadingRateAttachmentTexelSize), count);
+}
+
+void count_VkRenderingFragmentDensityMapAttachmentInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkRenderingFragmentDensityMapAttachmentInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkImageLayout);
+}
+
+void count_VkAttachmentSampleCountInfoAMD(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkAttachmentSampleCountInfoAMD* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pColorAttachmentSamples)
+    {
+        if (toCount)
+        {
+            *count += toCount->colorAttachmentCount * sizeof(const VkSampleCountFlagBits);
+        }
+    }
+    *count += sizeof(VkSampleCountFlagBits);
+}
+
+void count_VkMultiviewPerViewAttributesInfoNVX(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkMultiviewPerViewAttributesInfoNVX* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_KHR_multiview
 #endif
 #ifdef VK_KHR_get_physical_device_properties2
@@ -7178,7 +7816,12 @@
         rootType = toCount->sType;
     }
     count_extension_struct(featureBits, rootType, toCount->pNext, count);
-    count_VkAttachmentReference2(featureBits, rootType, (const VkAttachmentReference2*)(toCount->pFragmentShadingRateAttachment), count);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pFragmentShadingRateAttachment)
+    {
+        count_VkAttachmentReference2(featureBits, rootType, (const VkAttachmentReference2*)(toCount->pFragmentShadingRateAttachment), count);
+    }
     count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->shadingRateAttachmentTexelSize), count);
 }
 
@@ -7304,6 +7947,27 @@
 #endif
 #ifdef VK_KHR_separate_depth_stencil_layouts
 #endif
+#ifdef VK_KHR_present_wait
+void count_VkPhysicalDevicePresentWaitFeaturesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDevicePresentWaitFeaturesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_KHR_uniform_buffer_standard_layout
 #endif
 #ifdef VK_KHR_buffer_device_address
@@ -7460,6 +8124,75 @@
 }
 
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+void count_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, 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);
+}
+
+#endif
 #ifdef VK_KHR_pipeline_library
 void count_VkPipelineLibraryCreateInfoKHR(
     uint32_t featureBits,
@@ -7487,6 +8220,457 @@
 #endif
 #ifdef VK_KHR_shader_non_semantic_info
 #endif
+#ifdef VK_KHR_present_id
+void count_VkPresentIdKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPresentIdKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pPresentIds)
+    {
+        if (toCount)
+        {
+            *count += toCount->swapchainCount * sizeof(const uint64_t);
+        }
+    }
+}
+
+void count_VkPhysicalDevicePresentIdFeaturesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDevicePresentIdFeaturesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_KHR_video_encode_queue
+void count_VkVideoEncodeInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkVideoEncodeFlagsKHR);
+    *count += sizeof(uint32_t);
+    count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->codedExtent), count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkDeviceSize);
+    count_VkVideoPictureResourceKHR(featureBits, rootType, (VkVideoPictureResourceKHR*)(&toCount->srcPictureResource), count);
+    count_VkVideoReferenceSlotKHR(featureBits, rootType, (const VkVideoReferenceSlotKHR*)(toCount->pSetupReferenceSlot), count);
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->referenceSlotCount; ++i)
+        {
+            count_VkVideoReferenceSlotKHR(featureBits, rootType, (const VkVideoReferenceSlotKHR*)(toCount->pReferenceSlots + i), count);
+        }
+    }
+}
+
+void count_VkVideoEncodeRateControlInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeRateControlInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkVideoEncodeRateControlFlagsKHR);
+    *count += sizeof(VkVideoEncodeRateControlModeFlagBitsKHR);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint16_t);
+    *count += sizeof(uint16_t);
+    *count += sizeof(uint16_t);
+    *count += sizeof(uint32_t);
+}
+
+#endif
+#ifdef VK_KHR_synchronization2
+void count_VkMemoryBarrier2KHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkMemoryBarrier2KHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkPipelineStageFlags2KHR);
+    *count += sizeof(VkAccessFlags2KHR);
+    *count += sizeof(VkPipelineStageFlags2KHR);
+    *count += sizeof(VkAccessFlags2KHR);
+}
+
+void count_VkBufferMemoryBarrier2KHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkBufferMemoryBarrier2KHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkPipelineStageFlags2KHR);
+    *count += sizeof(VkAccessFlags2KHR);
+    *count += sizeof(VkPipelineStageFlags2KHR);
+    *count += sizeof(VkAccessFlags2KHR);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkDeviceSize);
+}
+
+void count_VkImageMemoryBarrier2KHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkImageMemoryBarrier2KHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkPipelineStageFlags2KHR);
+    *count += sizeof(VkAccessFlags2KHR);
+    *count += sizeof(VkPipelineStageFlags2KHR);
+    *count += sizeof(VkAccessFlags2KHR);
+    *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, rootType, (VkImageSubresourceRange*)(&toCount->subresourceRange), count);
+}
+
+void count_VkDependencyInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkDependencyInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkDependencyFlags);
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->memoryBarrierCount; ++i)
+        {
+            count_VkMemoryBarrier2KHR(featureBits, rootType, (const VkMemoryBarrier2KHR*)(toCount->pMemoryBarriers + i), count);
+        }
+    }
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->bufferMemoryBarrierCount; ++i)
+        {
+            count_VkBufferMemoryBarrier2KHR(featureBits, rootType, (const VkBufferMemoryBarrier2KHR*)(toCount->pBufferMemoryBarriers + i), count);
+        }
+    }
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->imageMemoryBarrierCount; ++i)
+        {
+            count_VkImageMemoryBarrier2KHR(featureBits, rootType, (const VkImageMemoryBarrier2KHR*)(toCount->pImageMemoryBarriers + i), count);
+        }
+    }
+}
+
+void count_VkSemaphoreSubmitInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkSemaphoreSubmitInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(uint64_t);
+    *count += sizeof(VkPipelineStageFlags2KHR);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkCommandBufferSubmitInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkCommandBufferSubmitInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(uint32_t);
+}
+
+void count_VkSubmitInfo2KHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkSubmitInfo2KHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkSubmitFlagsKHR);
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->waitSemaphoreInfoCount; ++i)
+        {
+            count_VkSemaphoreSubmitInfoKHR(featureBits, rootType, (const VkSemaphoreSubmitInfoKHR*)(toCount->pWaitSemaphoreInfos + i), count);
+        }
+    }
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->commandBufferInfoCount; ++i)
+        {
+            count_VkCommandBufferSubmitInfoKHR(featureBits, rootType, (const VkCommandBufferSubmitInfoKHR*)(toCount->pCommandBufferInfos + i), count);
+        }
+    }
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->signalSemaphoreInfoCount; ++i)
+        {
+            count_VkSemaphoreSubmitInfoKHR(featureBits, rootType, (const VkSemaphoreSubmitInfoKHR*)(toCount->pSignalSemaphoreInfos + i), count);
+        }
+    }
+}
+
+void count_VkPhysicalDeviceSynchronization2FeaturesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSynchronization2FeaturesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkQueueFamilyCheckpointProperties2NV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkQueueFamilyCheckpointProperties2NV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkPipelineStageFlags2KHR);
+}
+
+void count_VkCheckpointData2NV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkCheckpointData2NV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkPipelineStageFlags2KHR);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pCheckpointMarker)
+    {
+        *count += sizeof(uint8_t);
+    }
+}
+
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+void count_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+void count_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+void count_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_KHR_copy_commands2
 void count_VkBufferCopy2KHR(
     uint32_t featureBits,
@@ -7797,6 +8981,108 @@
 }
 
 #endif
+#ifdef VK_KHR_format_feature_flags2
+void count_VkFormatProperties3KHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkFormatProperties3KHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkFormatFeatureFlags2KHR);
+    *count += sizeof(VkFormatFeatureFlags2KHR);
+    *count += sizeof(VkFormatFeatureFlags2KHR);
+}
+
+#endif
+#ifdef VK_KHR_maintenance4
+void count_VkPhysicalDeviceMaintenance4FeaturesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMaintenance4FeaturesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceMaintenance4PropertiesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMaintenance4PropertiesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkDeviceSize);
+}
+
+void count_VkDeviceBufferMemoryRequirementsKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkDeviceBufferMemoryRequirementsKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    count_VkBufferCreateInfo(featureBits, rootType, (const VkBufferCreateInfo*)(toCount->pCreateInfo), count);
+}
+
+void count_VkDeviceImageMemoryRequirementsKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkDeviceImageMemoryRequirementsKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    count_VkImageCreateInfo(featureBits, rootType, (const VkImageCreateInfo*)(toCount->pCreateInfo), count);
+    *count += sizeof(VkImageAspectFlagBits);
+}
+
+#endif
 #ifdef VK_ANDROID_native_buffer
 void count_VkNativeBufferANDROID(
     uint32_t featureBits,
@@ -8090,6 +9376,79 @@
 }
 
 #endif
+#ifdef VK_NVX_binary_import
+void count_VkCuModuleCreateInfoNVX(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkCuModuleCreateInfoNVX* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += 8;
+    if (toCount)
+    {
+        *count += toCount->dataSize * sizeof(const uint8_t);
+    }
+}
+
+void count_VkCuFunctionCreateInfoNVX(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkCuFunctionCreateInfoNVX* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += 8;
+    *count += sizeof(uint32_t) + (toCount->pName ? strlen(toCount->pName) : 0);
+}
+
+void count_VkCuLaunchInfoNVX(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkCuLaunchInfoNVX* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += 8;
+    *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 += 8;
+    *count += 8;
+}
+
+#endif
 #ifdef VK_NVX_image_view_handle
 void count_VkImageViewHandleInfoNVX(
     uint32_t featureBits,
@@ -8143,6 +9502,743 @@
 #endif
 #ifdef VK_AMD_shader_ballot
 #endif
+#ifdef VK_EXT_video_encode_h264
+void count_VkVideoEncodeH264CapabilitiesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH264CapabilitiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkVideoEncodeH264CapabilityFlagsEXT);
+    *count += sizeof(VkVideoEncodeH264InputModeFlagsEXT);
+    *count += sizeof(VkVideoEncodeH264OutputModeFlagsEXT);
+    count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->minPictureSizeInMbs), count);
+    count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->maxPictureSizeInMbs), count);
+    count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->inputImageDataAlignment), count);
+    *count += sizeof(uint8_t);
+    *count += sizeof(uint8_t);
+    *count += sizeof(uint8_t);
+    *count += sizeof(uint8_t);
+    count_VkExtensionProperties(featureBits, rootType, (VkExtensionProperties*)(&toCount->stdExtensionVersion), count);
+}
+
+void count_VkVideoEncodeH264SessionCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkVideoEncodeH264CreateFlagsEXT);
+    count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->maxPictureSizeInMbs), count);
+    count_VkExtensionProperties(featureBits, rootType, (const VkExtensionProperties*)(toCount->pStdExtensionVersion), count);
+}
+
+void count_VkVideoEncodeH264SessionParametersAddInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionParametersAddInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pSpsStd)
+    {
+        if (toCount)
+        {
+            *count += toCount->spsStdCount * sizeof(const StdVideoH264SequenceParameterSet);
+        }
+    }
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pPpsStd)
+    {
+        if (toCount)
+        {
+            *count += toCount->ppsStdCount * sizeof(const StdVideoH264PictureParameterSet);
+        }
+    }
+}
+
+void count_VkVideoEncodeH264SessionParametersCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionParametersCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pParametersAddInfo)
+    {
+        count_VkVideoEncodeH264SessionParametersAddInfoEXT(featureBits, rootType, (const VkVideoEncodeH264SessionParametersAddInfoEXT*)(toCount->pParametersAddInfo), count);
+    }
+}
+
+void count_VkVideoEncodeH264DpbSlotInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH264DpbSlotInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(int8_t);
+    *count += sizeof(const StdVideoEncodeH264PictureInfo);
+}
+
+void count_VkVideoEncodeH264NaluSliceEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH264NaluSliceEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(const StdVideoEncodeH264SliceHeader);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint8_t);
+    if (toCount)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->refFinalList0EntryCount; ++i)
+        {
+            count_VkVideoEncodeH264DpbSlotInfoEXT(featureBits, rootType, (const VkVideoEncodeH264DpbSlotInfoEXT*)(toCount->pRefFinalList0Entries + i), count);
+        }
+    }
+    *count += sizeof(uint8_t);
+    if (toCount)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->refFinalList1EntryCount; ++i)
+        {
+            count_VkVideoEncodeH264DpbSlotInfoEXT(featureBits, rootType, (const VkVideoEncodeH264DpbSlotInfoEXT*)(toCount->pRefFinalList1Entries + i), count);
+        }
+    }
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint8_t);
+    *count += sizeof(uint8_t);
+}
+
+void count_VkVideoEncodeH264VclFrameInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH264VclFrameInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint8_t);
+    if (toCount)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->refDefaultFinalList0EntryCount; ++i)
+        {
+            count_VkVideoEncodeH264DpbSlotInfoEXT(featureBits, rootType, (const VkVideoEncodeH264DpbSlotInfoEXT*)(toCount->pRefDefaultFinalList0Entries + i), count);
+        }
+    }
+    *count += sizeof(uint8_t);
+    if (toCount)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->refDefaultFinalList1EntryCount; ++i)
+        {
+            count_VkVideoEncodeH264DpbSlotInfoEXT(featureBits, rootType, (const VkVideoEncodeH264DpbSlotInfoEXT*)(toCount->pRefDefaultFinalList1Entries + i), count);
+        }
+    }
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->naluSliceEntryCount; ++i)
+        {
+            count_VkVideoEncodeH264NaluSliceEXT(featureBits, rootType, (const VkVideoEncodeH264NaluSliceEXT*)(toCount->pNaluSliceEntries + i), count);
+        }
+    }
+    count_VkVideoEncodeH264DpbSlotInfoEXT(featureBits, rootType, (const VkVideoEncodeH264DpbSlotInfoEXT*)(toCount->pCurrentPictureInfo), count);
+}
+
+void count_VkVideoEncodeH264EmitPictureParametersEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH264EmitPictureParametersEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint8_t);
+    *count += sizeof(VkBool32);
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        *count += toCount->ppsIdEntryCount * sizeof(const uint8_t);
+    }
+}
+
+void count_VkVideoEncodeH264ProfileEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH264ProfileEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(StdVideoH264ProfileIdc);
+}
+
+#endif
+#ifdef VK_EXT_video_encode_h265
+void count_VkVideoEncodeH265CapabilitiesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH265CapabilitiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkVideoEncodeH265CapabilityFlagsEXT);
+    *count += sizeof(VkVideoEncodeH265InputModeFlagsEXT);
+    *count += sizeof(VkVideoEncodeH265OutputModeFlagsEXT);
+    *count += sizeof(VkVideoEncodeH265CtbSizeFlagsEXT);
+    count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->inputImageDataAlignment), count);
+    *count += sizeof(uint8_t);
+    *count += sizeof(uint8_t);
+    *count += sizeof(uint8_t);
+    *count += sizeof(uint8_t);
+    *count += sizeof(uint8_t);
+    count_VkExtensionProperties(featureBits, rootType, (VkExtensionProperties*)(&toCount->stdExtensionVersion), count);
+}
+
+void count_VkVideoEncodeH265SessionCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkVideoEncodeH265CreateFlagsEXT);
+    count_VkExtensionProperties(featureBits, rootType, (const VkExtensionProperties*)(toCount->pStdExtensionVersion), count);
+}
+
+void count_VkVideoEncodeH265SessionParametersAddInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionParametersAddInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pVpsStd)
+    {
+        if (toCount)
+        {
+            *count += toCount->vpsStdCount * sizeof(const StdVideoH265VideoParameterSet);
+        }
+    }
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pSpsStd)
+    {
+        if (toCount)
+        {
+            *count += toCount->spsStdCount * sizeof(const StdVideoH265SequenceParameterSet);
+        }
+    }
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pPpsStd)
+    {
+        if (toCount)
+        {
+            *count += toCount->ppsStdCount * sizeof(const StdVideoH265PictureParameterSet);
+        }
+    }
+}
+
+void count_VkVideoEncodeH265SessionParametersCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionParametersCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pParametersAddInfo)
+    {
+        count_VkVideoEncodeH265SessionParametersAddInfoEXT(featureBits, rootType, (const VkVideoEncodeH265SessionParametersAddInfoEXT*)(toCount->pParametersAddInfo), count);
+    }
+}
+
+void count_VkVideoEncodeH265DpbSlotInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH265DpbSlotInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(int8_t);
+    *count += sizeof(const StdVideoEncodeH265ReferenceInfo);
+}
+
+void count_VkVideoEncodeH265ReferenceListsEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH265ReferenceListsEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint8_t);
+    if (toCount)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->referenceList0EntryCount; ++i)
+        {
+            count_VkVideoEncodeH265DpbSlotInfoEXT(featureBits, rootType, (const VkVideoEncodeH265DpbSlotInfoEXT*)(toCount->pReferenceList0Entries + i), count);
+        }
+    }
+    *count += sizeof(uint8_t);
+    if (toCount)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->referenceList1EntryCount; ++i)
+        {
+            count_VkVideoEncodeH265DpbSlotInfoEXT(featureBits, rootType, (const VkVideoEncodeH265DpbSlotInfoEXT*)(toCount->pReferenceList1Entries + i), count);
+        }
+    }
+    *count += sizeof(const StdVideoEncodeH265ReferenceModifications);
+}
+
+void count_VkVideoEncodeH265NaluSliceEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH265NaluSliceEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pReferenceFinalLists)
+    {
+        count_VkVideoEncodeH265ReferenceListsEXT(featureBits, rootType, (const VkVideoEncodeH265ReferenceListsEXT*)(toCount->pReferenceFinalLists), count);
+    }
+    *count += sizeof(const StdVideoEncodeH265SliceHeader);
+}
+
+void count_VkVideoEncodeH265VclFrameInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH265VclFrameInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pReferenceFinalLists)
+    {
+        count_VkVideoEncodeH265ReferenceListsEXT(featureBits, rootType, (const VkVideoEncodeH265ReferenceListsEXT*)(toCount->pReferenceFinalLists), count);
+    }
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->naluSliceEntryCount; ++i)
+        {
+            count_VkVideoEncodeH265NaluSliceEXT(featureBits, rootType, (const VkVideoEncodeH265NaluSliceEXT*)(toCount->pNaluSliceEntries + i), count);
+        }
+    }
+    *count += sizeof(const StdVideoEncodeH265PictureInfo);
+}
+
+void count_VkVideoEncodeH265EmitPictureParametersEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH265EmitPictureParametersEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint8_t);
+    *count += sizeof(uint8_t);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        *count += toCount->ppsIdEntryCount * sizeof(const uint8_t);
+    }
+}
+
+void count_VkVideoEncodeH265ProfileEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH265ProfileEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(StdVideoH265ProfileIdc);
+}
+
+#endif
+#ifdef VK_EXT_video_decode_h264
+void count_VkVideoDecodeH264ProfileEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH264ProfileEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(StdVideoH264ProfileIdc);
+    *count += sizeof(VkVideoDecodeH264PictureLayoutFlagsEXT);
+}
+
+void count_VkVideoDecodeH264CapabilitiesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH264CapabilitiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    count_VkOffset2D(featureBits, rootType, (VkOffset2D*)(&toCount->fieldOffsetGranularity), count);
+    count_VkExtensionProperties(featureBits, rootType, (VkExtensionProperties*)(&toCount->stdExtensionVersion), count);
+}
+
+void count_VkVideoDecodeH264SessionCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkVideoDecodeH264CreateFlagsEXT);
+    count_VkExtensionProperties(featureBits, rootType, (const VkExtensionProperties*)(toCount->pStdExtensionVersion), count);
+}
+
+void count_VkVideoDecodeH264SessionParametersAddInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionParametersAddInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pSpsStd)
+    {
+        if (toCount)
+        {
+            *count += toCount->spsStdCount * sizeof(const StdVideoH264SequenceParameterSet);
+        }
+    }
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pPpsStd)
+    {
+        if (toCount)
+        {
+            *count += toCount->ppsStdCount * sizeof(const StdVideoH264PictureParameterSet);
+        }
+    }
+}
+
+void count_VkVideoDecodeH264SessionParametersCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionParametersCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pParametersAddInfo)
+    {
+        count_VkVideoDecodeH264SessionParametersAddInfoEXT(featureBits, rootType, (const VkVideoDecodeH264SessionParametersAddInfoEXT*)(toCount->pParametersAddInfo), count);
+    }
+}
+
+void count_VkVideoDecodeH264PictureInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH264PictureInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(const StdVideoDecodeH264PictureInfo);
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        *count += toCount->slicesCount * sizeof(const uint32_t);
+    }
+}
+
+void count_VkVideoDecodeH264MvcEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH264MvcEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(const StdVideoDecodeH264Mvc);
+}
+
+void count_VkVideoDecodeH264DpbSlotInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH264DpbSlotInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(const StdVideoDecodeH264ReferenceInfo);
+}
+
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
 void count_VkTextureLODGatherFormatPropertiesAMD(
     uint32_t featureBits,
@@ -9446,6 +11542,32 @@
     *count += sizeof(uint64_t);
 }
 
+void count_VkAndroidHardwareBufferFormatProperties2ANDROID(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkAndroidHardwareBufferFormatProperties2ANDROID* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkFormat);
+    *count += sizeof(uint64_t);
+    *count += sizeof(VkFormatFeatureFlags2KHR);
+    count_VkComponentMapping(featureBits, rootType, (VkComponentMapping*)(&toCount->samplerYcbcrConversionComponents), count);
+    *count += sizeof(VkSamplerYcbcrModelConversion);
+    *count += sizeof(VkSamplerYcbcrRange);
+    *count += sizeof(VkChromaLocation);
+    *count += sizeof(VkChromaLocation);
+}
+
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
 #endif
@@ -10025,6 +12147,52 @@
     *count += sizeof(uint64_t);
 }
 
+void count_VkDrmFormatModifierProperties2EXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkDrmFormatModifierProperties2EXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(uint64_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkFormatFeatureFlags2KHR);
+}
+
+void count_VkDrmFormatModifierPropertiesList2EXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkDrmFormatModifierPropertiesList2EXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pDrmFormatModifierProperties)
+    {
+        if (toCount)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toCount->drmFormatModifierCount; ++i)
+            {
+                count_VkDrmFormatModifierProperties2EXT(featureBits, rootType, (VkDrmFormatModifierProperties2EXT*)(toCount->pDrmFormatModifierProperties + i), count);
+            }
+        }
+    }
+}
+
 #endif
 #ifdef VK_EXT_validation_cache
 void count_VkValidationCacheCreateInfoEXT(
@@ -10836,6 +13004,174 @@
 }
 
 #endif
+#ifdef VK_EXT_video_decode_h265
+void count_VkVideoDecodeH265ProfileEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH265ProfileEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(StdVideoH265ProfileIdc);
+}
+
+void count_VkVideoDecodeH265CapabilitiesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH265CapabilitiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    count_VkExtensionProperties(featureBits, rootType, (VkExtensionProperties*)(&toCount->stdExtensionVersion), count);
+}
+
+void count_VkVideoDecodeH265SessionCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkVideoDecodeH265CreateFlagsEXT);
+    count_VkExtensionProperties(featureBits, rootType, (const VkExtensionProperties*)(toCount->pStdExtensionVersion), count);
+}
+
+void count_VkVideoDecodeH265SessionParametersAddInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionParametersAddInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pSpsStd)
+    {
+        if (toCount)
+        {
+            *count += toCount->spsStdCount * sizeof(const StdVideoH265SequenceParameterSet);
+        }
+    }
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pPpsStd)
+    {
+        if (toCount)
+        {
+            *count += toCount->ppsStdCount * sizeof(const StdVideoH265PictureParameterSet);
+        }
+    }
+}
+
+void count_VkVideoDecodeH265SessionParametersCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionParametersCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pParametersAddInfo)
+    {
+        count_VkVideoDecodeH265SessionParametersAddInfoEXT(featureBits, rootType, (const VkVideoDecodeH265SessionParametersAddInfoEXT*)(toCount->pParametersAddInfo), count);
+    }
+}
+
+void count_VkVideoDecodeH265PictureInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH265PictureInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(StdVideoDecodeH265PictureInfo);
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        *count += toCount->slicesCount * sizeof(const uint32_t);
+    }
+}
+
+void count_VkVideoDecodeH265DpbSlotInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH265DpbSlotInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(const StdVideoDecodeH265ReferenceInfo);
+}
+
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
 void count_VkDeviceMemoryOverallocationCreateInfoAMD(
     uint32_t featureBits,
@@ -12070,6 +14406,67 @@
 }
 
 #endif
+#ifdef VK_EXT_provoking_vertex
+void count_VkPhysicalDeviceProvokingVertexFeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceProvokingVertexFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceProvokingVertexPropertiesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceProvokingVertexPropertiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkProvokingVertexModeEXT);
+}
+
+#endif
 #ifdef VK_EXT_full_screen_exclusive
 void count_VkSurfaceFullScreenExclusiveInfoEXT(
     uint32_t featureBits,
@@ -12293,6 +14690,38 @@
 }
 
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+void count_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, 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_shader_demote_to_helper_invocation
 void count_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
     uint32_t featureBits,
@@ -12639,6 +15068,53 @@
 }
 
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+void count_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceInheritedViewportScissorFeaturesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkCommandBufferInheritanceViewportScissorInfoNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkCommandBufferInheritanceViewportScissorInfoNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pViewportDepths)
+    {
+        count_VkViewport(featureBits, rootType, (const VkViewport*)(toCount->pViewportDepths), count);
+    }
+}
+
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
 void count_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
     uint32_t featureBits,
@@ -12790,6 +15266,8 @@
 }
 
 #endif
+#ifdef VK_EXT_acquire_drm_display
+#endif
 #ifdef VK_EXT_robustness2
 void count_VkPhysicalDeviceRobustness2FeaturesEXT(
     uint32_t featureBits,
@@ -13081,6 +15559,195 @@
 }
 
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+void count_VkDeviceOrHostAddressConstKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkDeviceOrHostAddressConstKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkDeviceAddress);
+}
+
+void count_VkAccelerationStructureGeometryMotionTrianglesDataNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkAccelerationStructureGeometryMotionTrianglesDataNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    count_VkDeviceOrHostAddressConstKHR(featureBits, rootType, (VkDeviceOrHostAddressConstKHR*)(&toCount->vertexData), count);
+}
+
+void count_VkAccelerationStructureMotionInfoNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInfoNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkAccelerationStructureMotionInfoFlagsNV);
+}
+
+void count_VkAccelerationStructureMatrixMotionInstanceNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkAccelerationStructureMatrixMotionInstanceNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    count_VkTransformMatrixKHR(featureBits, rootType, (VkTransformMatrixKHR*)(&toCount->transformT0), count);
+    count_VkTransformMatrixKHR(featureBits, rootType, (VkTransformMatrixKHR*)(&toCount->transformT1), count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkGeometryInstanceFlagsKHR);
+    *count += sizeof(uint64_t);
+}
+
+void count_VkSRTDataNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkSRTDataNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(float);
+    *count += sizeof(float);
+    *count += sizeof(float);
+    *count += sizeof(float);
+    *count += sizeof(float);
+    *count += sizeof(float);
+    *count += sizeof(float);
+    *count += sizeof(float);
+    *count += sizeof(float);
+    *count += sizeof(float);
+    *count += sizeof(float);
+    *count += sizeof(float);
+    *count += sizeof(float);
+    *count += sizeof(float);
+    *count += sizeof(float);
+    *count += sizeof(float);
+}
+
+void count_VkAccelerationStructureSRTMotionInstanceNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkAccelerationStructureSRTMotionInstanceNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    count_VkSRTDataNV(featureBits, rootType, (VkSRTDataNV*)(&toCount->transformT0), count);
+    count_VkSRTDataNV(featureBits, rootType, (VkSRTDataNV*)(&toCount->transformT1), count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkGeometryInstanceFlagsKHR);
+    *count += sizeof(uint64_t);
+}
+
+void count_VkAccelerationStructureMotionInstanceDataNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInstanceDataNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    count_VkAccelerationStructureInstanceKHR(featureBits, rootType, (VkAccelerationStructureInstanceKHR*)(&toCount->staticInstance), count);
+}
+
+void count_VkAccelerationStructureMotionInstanceNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInstanceNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkAccelerationStructureMotionInstanceTypeNV);
+    *count += sizeof(VkAccelerationStructureMotionInstanceFlagsNV);
+    count_VkAccelerationStructureMotionInstanceDataNV(featureBits, rootType, (VkAccelerationStructureMotionInstanceDataNV*)(&toCount->data), count);
+}
+
+void count_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+void count_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_EXT_fragment_density_map2
 void count_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
     uint32_t featureBits,
@@ -13188,6 +15855,29 @@
 }
 
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+void count_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_NV_acquire_winrt_display
+#endif
 #ifdef VK_EXT_directfb_surface
 void count_VkDirectFBSurfaceCreateInfoEXT(
     uint32_t featureBits,
@@ -13221,6 +15911,740 @@
 }
 
 #endif
+#ifdef VK_VALVE_mutable_descriptor_type
+void count_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkMutableDescriptorTypeListVALVE(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkMutableDescriptorTypeListVALVE* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        *count += toCount->descriptorTypeCount * sizeof(const VkDescriptorType);
+    }
+}
+
+void count_VkMutableDescriptorTypeCreateInfoVALVE(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkMutableDescriptorTypeCreateInfoVALVE* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->mutableDescriptorTypeListCount; ++i)
+        {
+            count_VkMutableDescriptorTypeListVALVE(featureBits, rootType, (const VkMutableDescriptorTypeListVALVE*)(toCount->pMutableDescriptorTypeLists + i), count);
+        }
+    }
+}
+
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+void count_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkVertexInputBindingDescription2EXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVertexInputBindingDescription2EXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkVertexInputRate);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkVertexInputAttributeDescription2EXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVertexInputAttributeDescription2EXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkFormat);
+    *count += sizeof(uint32_t);
+}
+
+#endif
+#ifdef VK_EXT_physical_device_drm
+void count_VkPhysicalDeviceDrmPropertiesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceDrmPropertiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(int64_t);
+    *count += sizeof(int64_t);
+    *count += sizeof(int64_t);
+    *count += sizeof(int64_t);
+}
+
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+void count_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_FUCHSIA_external_memory
+void count_VkImportMemoryZirconHandleInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkImportMemoryZirconHandleInfoFUCHSIA* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkExternalMemoryHandleTypeFlagBits);
+    *count += sizeof(zx_handle_t);
+}
+
+void count_VkMemoryZirconHandlePropertiesFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkMemoryZirconHandlePropertiesFUCHSIA* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkMemoryGetZirconHandleInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkMemoryGetZirconHandleInfoFUCHSIA* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkExternalMemoryHandleTypeFlagBits);
+}
+
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+void count_VkImportSemaphoreZirconHandleInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkImportSemaphoreZirconHandleInfoFUCHSIA* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkSemaphoreImportFlags);
+    *count += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
+    *count += sizeof(zx_handle_t);
+}
+
+void count_VkSemaphoreGetZirconHandleInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkSemaphoreGetZirconHandleInfoFUCHSIA* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
+}
+
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+void count_VkBufferCollectionCreateInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkBufferCollectionCreateInfoFUCHSIA* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(zx_handle_t);
+}
+
+void count_VkImportMemoryBufferCollectionFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkImportMemoryBufferCollectionFUCHSIA* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += 8;
+    *count += sizeof(uint32_t);
+}
+
+void count_VkBufferCollectionImageCreateInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkBufferCollectionImageCreateInfoFUCHSIA* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += 8;
+    *count += sizeof(uint32_t);
+}
+
+void count_VkBufferCollectionConstraintsInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkBufferCollectionConstraintsInfoFUCHSIA* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, 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_VkBufferConstraintsInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkBufferConstraintsInfoFUCHSIA* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    count_VkBufferCreateInfo(featureBits, rootType, (VkBufferCreateInfo*)(&toCount->createInfo), count);
+    *count += sizeof(VkFormatFeatureFlags);
+    count_VkBufferCollectionConstraintsInfoFUCHSIA(featureBits, rootType, (VkBufferCollectionConstraintsInfoFUCHSIA*)(&toCount->bufferCollectionConstraints), count);
+}
+
+void count_VkBufferCollectionBufferCreateInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkBufferCollectionBufferCreateInfoFUCHSIA* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += 8;
+    *count += sizeof(uint32_t);
+}
+
+void count_VkSysmemColorSpaceFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkSysmemColorSpaceFUCHSIA* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkBufferCollectionPropertiesFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkBufferCollectionPropertiesFUCHSIA* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint64_t);
+    *count += sizeof(VkFormatFeatureFlags);
+    count_VkSysmemColorSpaceFUCHSIA(featureBits, rootType, (VkSysmemColorSpaceFUCHSIA*)(&toCount->sysmemColorSpaceIndex), count);
+    count_VkComponentMapping(featureBits, rootType, (VkComponentMapping*)(&toCount->samplerYcbcrConversionComponents), count);
+    *count += sizeof(VkSamplerYcbcrModelConversion);
+    *count += sizeof(VkSamplerYcbcrRange);
+    *count += sizeof(VkChromaLocation);
+    *count += sizeof(VkChromaLocation);
+}
+
+void count_VkImageFormatConstraintsInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkImageFormatConstraintsInfoFUCHSIA* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    count_VkImageCreateInfo(featureBits, rootType, (VkImageCreateInfo*)(&toCount->imageCreateInfo), count);
+    *count += sizeof(VkFormatFeatureFlags);
+    *count += sizeof(VkImageFormatConstraintsFlagsFUCHSIA);
+    *count += sizeof(uint64_t);
+    *count += sizeof(uint32_t);
+    count_VkSysmemColorSpaceFUCHSIA(featureBits, rootType, (const VkSysmemColorSpaceFUCHSIA*)(toCount->pColorSpaces), count);
+}
+
+void count_VkImageConstraintsInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkImageConstraintsInfoFUCHSIA* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->formatConstraintsCount; ++i)
+        {
+            count_VkImageFormatConstraintsInfoFUCHSIA(featureBits, rootType, (const VkImageFormatConstraintsInfoFUCHSIA*)(toCount->pFormatConstraints + i), count);
+        }
+    }
+    count_VkBufferCollectionConstraintsInfoFUCHSIA(featureBits, rootType, (VkBufferCollectionConstraintsInfoFUCHSIA*)(&toCount->bufferCollectionConstraints), count);
+    *count += sizeof(VkImageConstraintsInfoFlagsFUCHSIA);
+}
+
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+void count_VkSubpassShadingPipelineCreateInfoHUAWEI(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkSubpassShadingPipelineCreateInfoHUAWEI* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(uint32_t);
+}
+
+void count_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+}
+
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+void count_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_NV_external_memory_rdma
+void count_VkMemoryGetRemoteAddressInfoNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkMemoryGetRemoteAddressInfoNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkExternalMemoryHandleTypeFlagBits);
+}
+
+void count_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+void count_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_QNX_screen_surface
+void count_VkScreenSurfaceCreateInfoQNX(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkScreenSurfaceCreateInfoQNX* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkScreenSurfaceCreateFlagsQNX);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->context)
+    {
+        *count += sizeof(_screen_context);
+    }
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->window)
+    {
+        *count += sizeof(_screen_window);
+    }
+}
+
+#endif
+#ifdef VK_EXT_color_write_enable
+void count_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceColorWriteEnableFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPipelineColorWriteCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPipelineColorWriteCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    if (toCount)
+    {
+        *count += toCount->attachmentCount * sizeof(const VkBool32);
+    }
+}
+
+#endif
 #ifdef VK_GOOGLE_gfxstream
 void count_VkImportColorBufferGOOGLE(
     uint32_t featureBits,
@@ -13284,24 +16708,186 @@
 }
 
 #endif
-#ifdef VK_KHR_acceleration_structure
-void count_VkDeviceOrHostAddressKHR(
+#ifdef VK_EXT_global_priority_query
+void count_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(
     uint32_t featureBits,
     VkStructureType rootType,
-    const VkDeviceOrHostAddressKHR* toCount,
+    const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* toCount,
     size_t* count)
 {
     (void)featureBits;
     (void)rootType;
     (void)toCount;
     (void)count;
-    *count += sizeof(VkDeviceAddress);
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
 }
 
-void count_VkDeviceOrHostAddressConstKHR(
+void count_VkQueueFamilyGlobalPriorityPropertiesEXT(
     uint32_t featureBits,
     VkStructureType rootType,
-    const VkDeviceOrHostAddressConstKHR* toCount,
+    const VkQueueFamilyGlobalPriorityPropertiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += VK_MAX_GLOBAL_PRIORITY_SIZE_EXT * sizeof(VkQueueGlobalPriorityEXT);
+}
+
+#endif
+#ifdef VK_EXT_multi_draw
+void count_VkPhysicalDeviceMultiDrawFeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMultiDrawFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceMultiDrawPropertiesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMultiDrawPropertiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkMultiDrawInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkMultiDrawInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkMultiDrawIndexedInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkMultiDrawIndexedInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(int32_t);
+}
+
+#endif
+#ifdef VK_EXT_load_store_op_none
+#endif
+#ifdef VK_EXT_border_color_swizzle
+void count_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkSamplerBorderColorComponentMappingCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkSamplerBorderColorComponentMappingCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    count_VkComponentMapping(featureBits, rootType, (VkComponentMapping*)(&toCount->components), count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+void count_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)rootType;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = toCount->sType;
+    }
+    count_extension_struct(featureBits, rootType, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_KHR_acceleration_structure
+void count_VkDeviceOrHostAddressKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkDeviceOrHostAddressKHR* toCount,
     size_t* count)
 {
     (void)featureBits;
@@ -14358,6 +17944,60 @@
             break;
         }
 #endif
+#ifdef VK_KHR_video_queue
+        case VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR:
+        {
+            count_VkVideoQueueFamilyProperties2KHR(featureBits, rootType, reinterpret_cast<const VkVideoQueueFamilyProperties2KHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR:
+        {
+            count_VkVideoProfileKHR(featureBits, rootType, reinterpret_cast<const VkVideoProfileKHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR:
+        {
+            count_VkVideoProfilesKHR(featureBits, rootType, reinterpret_cast<const VkVideoProfilesKHR*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_KHR_dynamic_rendering
+        case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR:
+        {
+            count_VkPipelineRenderingCreateInfoKHR(featureBits, rootType, reinterpret_cast<const VkPipelineRenderingCreateInfoKHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR:
+        {
+            count_VkPhysicalDeviceDynamicRenderingFeaturesKHR(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceDynamicRenderingFeaturesKHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR:
+        {
+            count_VkCommandBufferInheritanceRenderingInfoKHR(featureBits, rootType, reinterpret_cast<const VkCommandBufferInheritanceRenderingInfoKHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
+        {
+            count_VkRenderingFragmentShadingRateAttachmentInfoKHR(featureBits, rootType, reinterpret_cast<const VkRenderingFragmentShadingRateAttachmentInfoKHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:
+        {
+            count_VkRenderingFragmentDensityMapAttachmentInfoEXT(featureBits, rootType, reinterpret_cast<const VkRenderingFragmentDensityMapAttachmentInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:
+        {
+            count_VkAttachmentSampleCountInfoAMD(featureBits, rootType, reinterpret_cast<const VkAttachmentSampleCountInfoAMD*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:
+        {
+            count_VkMultiviewPerViewAttributesInfoNVX(featureBits, rootType, reinterpret_cast<const VkMultiviewPerViewAttributesInfoNVX*>(structExtension), count);
+            break;
+        }
+#endif
 #ifdef VK_KHR_external_memory_win32
         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
         {
@@ -14501,6 +18141,13 @@
             break;
         }
 #endif
+#ifdef VK_KHR_present_wait
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:
+        {
+            count_VkPhysicalDevicePresentWaitFeaturesKHR(featureBits, rootType, reinterpret_cast<const VkPhysicalDevicePresentWaitFeaturesKHR*>(structExtension), count);
+            break;
+        }
+#endif
 #ifdef VK_KHR_pipeline_executable_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
         {
@@ -14508,6 +18155,94 @@
             break;
         }
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR:
+        {
+            count_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR:
+        {
+            count_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_KHR_present_id
+        case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:
+        {
+            count_VkPresentIdKHR(featureBits, rootType, reinterpret_cast<const VkPresentIdKHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:
+        {
+            count_VkPhysicalDevicePresentIdFeaturesKHR(featureBits, rootType, reinterpret_cast<const VkPhysicalDevicePresentIdFeaturesKHR*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_KHR_video_encode_queue
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:
+        {
+            count_VkVideoEncodeRateControlInfoKHR(featureBits, rootType, reinterpret_cast<const VkVideoEncodeRateControlInfoKHR*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_KHR_synchronization2
+        case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR:
+        {
+            count_VkMemoryBarrier2KHR(featureBits, rootType, reinterpret_cast<const VkMemoryBarrier2KHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR:
+        {
+            count_VkPhysicalDeviceSynchronization2FeaturesKHR(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceSynchronization2FeaturesKHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:
+        {
+            count_VkQueueFamilyCheckpointProperties2NV(featureBits, rootType, reinterpret_cast<const VkQueueFamilyCheckpointProperties2NV*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR:
+        {
+            count_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR:
+        {
+            count_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:
+        {
+            count_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_KHR_format_feature_flags2
+        case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR:
+        {
+            count_VkFormatProperties3KHR(featureBits, rootType, reinterpret_cast<const VkFormatProperties3KHR*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_KHR_maintenance4
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR:
+        {
+            count_VkPhysicalDeviceMaintenance4FeaturesKHR(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceMaintenance4FeaturesKHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR:
+        {
+            count_VkPhysicalDeviceMaintenance4PropertiesKHR(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceMaintenance4PropertiesKHR*>(structExtension), count);
+            break;
+        }
+#endif
 #ifdef VK_ANDROID_native_buffer
         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
         {
@@ -14563,6 +18298,122 @@
             break;
         }
 #endif
+#ifdef VK_EXT_video_encode_h264
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT:
+        {
+            count_VkVideoEncodeH264CapabilitiesEXT(featureBits, rootType, reinterpret_cast<const VkVideoEncodeH264CapabilitiesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT:
+        {
+            count_VkVideoEncodeH264SessionCreateInfoEXT(featureBits, rootType, reinterpret_cast<const VkVideoEncodeH264SessionCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            count_VkVideoEncodeH264SessionParametersAddInfoEXT(featureBits, rootType, reinterpret_cast<const VkVideoEncodeH264SessionParametersAddInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            count_VkVideoEncodeH264SessionParametersCreateInfoEXT(featureBits, rootType, reinterpret_cast<const VkVideoEncodeH264SessionParametersCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT:
+        {
+            count_VkVideoEncodeH264VclFrameInfoEXT(featureBits, rootType, reinterpret_cast<const VkVideoEncodeH264VclFrameInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT:
+        {
+            count_VkVideoEncodeH264EmitPictureParametersEXT(featureBits, rootType, reinterpret_cast<const VkVideoEncodeH264EmitPictureParametersEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT:
+        {
+            count_VkVideoEncodeH264ProfileEXT(featureBits, rootType, reinterpret_cast<const VkVideoEncodeH264ProfileEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_video_encode_h265
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT:
+        {
+            count_VkVideoEncodeH265CapabilitiesEXT(featureBits, rootType, reinterpret_cast<const VkVideoEncodeH265CapabilitiesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT:
+        {
+            count_VkVideoEncodeH265SessionCreateInfoEXT(featureBits, rootType, reinterpret_cast<const VkVideoEncodeH265SessionCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            count_VkVideoEncodeH265SessionParametersAddInfoEXT(featureBits, rootType, reinterpret_cast<const VkVideoEncodeH265SessionParametersAddInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            count_VkVideoEncodeH265SessionParametersCreateInfoEXT(featureBits, rootType, reinterpret_cast<const VkVideoEncodeH265SessionParametersCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT:
+        {
+            count_VkVideoEncodeH265VclFrameInfoEXT(featureBits, rootType, reinterpret_cast<const VkVideoEncodeH265VclFrameInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT:
+        {
+            count_VkVideoEncodeH265EmitPictureParametersEXT(featureBits, rootType, reinterpret_cast<const VkVideoEncodeH265EmitPictureParametersEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT:
+        {
+            count_VkVideoEncodeH265ProfileEXT(featureBits, rootType, reinterpret_cast<const VkVideoEncodeH265ProfileEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_video_decode_h264
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT:
+        {
+            count_VkVideoDecodeH264ProfileEXT(featureBits, rootType, reinterpret_cast<const VkVideoDecodeH264ProfileEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT:
+        {
+            count_VkVideoDecodeH264CapabilitiesEXT(featureBits, rootType, reinterpret_cast<const VkVideoDecodeH264CapabilitiesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT:
+        {
+            count_VkVideoDecodeH264SessionCreateInfoEXT(featureBits, rootType, reinterpret_cast<const VkVideoDecodeH264SessionCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            count_VkVideoDecodeH264SessionParametersAddInfoEXT(featureBits, rootType, reinterpret_cast<const VkVideoDecodeH264SessionParametersAddInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            count_VkVideoDecodeH264SessionParametersCreateInfoEXT(featureBits, rootType, reinterpret_cast<const VkVideoDecodeH264SessionParametersCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT:
+        {
+            count_VkVideoDecodeH264PictureInfoEXT(featureBits, rootType, reinterpret_cast<const VkVideoDecodeH264PictureInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT:
+        {
+            count_VkVideoDecodeH264MvcEXT(featureBits, rootType, reinterpret_cast<const VkVideoDecodeH264MvcEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT:
+        {
+            count_VkVideoDecodeH264DpbSlotInfoEXT(featureBits, rootType, reinterpret_cast<const VkVideoDecodeH264DpbSlotInfoEXT*>(structExtension), count);
+            break;
+        }
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
@@ -14745,6 +18596,11 @@
             count_VkExternalFormatANDROID(featureBits, rootType, reinterpret_cast<const VkExternalFormatANDROID*>(structExtension), count);
             break;
         }
+        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:
+        {
+            count_VkAndroidHardwareBufferFormatProperties2ANDROID(featureBits, rootType, reinterpret_cast<const VkAndroidHardwareBufferFormatProperties2ANDROID*>(structExtension), count);
+            break;
+        }
 #endif
 #ifdef VK_EXT_inline_uniform_block
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:
@@ -14854,6 +18710,11 @@
             count_VkImageDrmFormatModifierExplicitCreateInfoEXT(featureBits, rootType, reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>(structExtension), count);
             break;
         }
+        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:
+        {
+            count_VkDrmFormatModifierPropertiesList2EXT(featureBits, rootType, reinterpret_cast<const VkDrmFormatModifierPropertiesList2EXT*>(structExtension), count);
+            break;
+        }
 #endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
@@ -14953,6 +18814,43 @@
             break;
         }
 #endif
+#ifdef VK_EXT_video_decode_h265
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT:
+        {
+            count_VkVideoDecodeH265ProfileEXT(featureBits, rootType, reinterpret_cast<const VkVideoDecodeH265ProfileEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT:
+        {
+            count_VkVideoDecodeH265CapabilitiesEXT(featureBits, rootType, reinterpret_cast<const VkVideoDecodeH265CapabilitiesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT:
+        {
+            count_VkVideoDecodeH265SessionCreateInfoEXT(featureBits, rootType, reinterpret_cast<const VkVideoDecodeH265SessionCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            count_VkVideoDecodeH265SessionParametersAddInfoEXT(featureBits, rootType, reinterpret_cast<const VkVideoDecodeH265SessionParametersAddInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            count_VkVideoDecodeH265SessionParametersCreateInfoEXT(featureBits, rootType, reinterpret_cast<const VkVideoDecodeH265SessionParametersCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT:
+        {
+            count_VkVideoDecodeH265PictureInfoEXT(featureBits, rootType, reinterpret_cast<const VkVideoDecodeH265PictureInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT:
+        {
+            count_VkVideoDecodeH265DpbSlotInfoEXT(featureBits, rootType, reinterpret_cast<const VkVideoDecodeH265DpbSlotInfoEXT*>(structExtension), count);
+            break;
+        }
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
         case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
         {
@@ -15275,6 +19173,23 @@
             break;
         }
 #endif
+#ifdef VK_EXT_provoking_vertex
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceProvokingVertexFeaturesEXT(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceProvokingVertexFeaturesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
+        {
+            count_VkPhysicalDeviceProvokingVertexPropertiesEXT(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceProvokingVertexPropertiesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:
+        {
+            count_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(featureBits, rootType, reinterpret_cast<const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+#endif
 #ifdef VK_EXT_full_screen_exclusive
         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
         {
@@ -15330,6 +19245,13 @@
             break;
         }
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT*>(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:
         {
@@ -15354,6 +19276,18 @@
             break;
         }
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:
+        {
+            count_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceInheritedViewportScissorFeaturesNV*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:
+        {
+            count_VkCommandBufferInheritanceViewportScissorInfoNV(featureBits, rootType, reinterpret_cast<const VkCommandBufferInheritanceViewportScissorInfoNV*>(structExtension), count);
+            break;
+        }
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
         {
@@ -15467,6 +19401,30 @@
             break;
         }
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:
+        {
+            count_VkAccelerationStructureGeometryMotionTrianglesDataNV(featureBits, rootType, reinterpret_cast<const VkAccelerationStructureGeometryMotionTrianglesDataNV*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:
+        {
+            count_VkAccelerationStructureMotionInfoNV(featureBits, rootType, reinterpret_cast<const VkAccelerationStructureMotionInfoNV*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:
+        {
+            count_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
 #ifdef VK_EXT_fragment_density_map2
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
         {
@@ -15500,6 +19458,120 @@
             break;
         }
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_VALVE_mutable_descriptor_type
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE:
+        {
+            count_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE:
+        {
+            count_VkMutableDescriptorTypeCreateInfoVALVE(featureBits, rootType, reinterpret_cast<const VkMutableDescriptorTypeCreateInfoVALVE*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_physical_device_drm
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:
+        {
+            count_VkPhysicalDeviceDrmPropertiesEXT(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceDrmPropertiesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
+        {
+            count_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(featureBits, rootType, reinterpret_cast<const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_FUCHSIA_external_memory
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:
+        {
+            count_VkImportMemoryZirconHandleInfoFUCHSIA(featureBits, rootType, reinterpret_cast<const VkImportMemoryZirconHandleInfoFUCHSIA*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:
+        {
+            count_VkImportMemoryBufferCollectionFUCHSIA(featureBits, rootType, reinterpret_cast<const VkImportMemoryBufferCollectionFUCHSIA*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:
+        {
+            count_VkBufferCollectionImageCreateInfoFUCHSIA(featureBits, rootType, reinterpret_cast<const VkBufferCollectionImageCreateInfoFUCHSIA*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:
+        {
+            count_VkBufferCollectionBufferCreateInfoFUCHSIA(featureBits, rootType, reinterpret_cast<const VkBufferCollectionBufferCreateInfoFUCHSIA*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+        case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:
+        {
+            count_VkSubpassShadingPipelineCreateInfoHUAWEI(featureBits, rootType, reinterpret_cast<const VkSubpassShadingPipelineCreateInfoHUAWEI*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:
+        {
+            count_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:
+        {
+            count_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:
+        {
+            count_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_NV_external_memory_rdma
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:
+        {
+            count_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_color_write_enable
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceColorWriteEnableFeaturesEXT(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:
+        {
+            count_VkPipelineColorWriteCreateInfoEXT(featureBits, rootType, reinterpret_cast<const VkPipelineColorWriteCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+#endif
 #ifdef VK_GOOGLE_gfxstream
         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
         {
@@ -15517,6 +19589,49 @@
             break;
         }
 #endif
+#ifdef VK_EXT_global_priority_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT:
+        {
+            count_VkQueueFamilyGlobalPriorityPropertiesEXT(featureBits, rootType, reinterpret_cast<const VkQueueFamilyGlobalPriorityPropertiesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_multi_draw
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceMultiDrawFeaturesEXT(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceMultiDrawFeaturesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:
+        {
+            count_VkPhysicalDeviceMultiDrawPropertiesEXT(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceMultiDrawPropertiesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_border_color_swizzle
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(featureBits, rootType, reinterpret_cast<const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:
+        {
+            count_VkSamplerBorderColorComponentMappingCreateInfoEXT(featureBits, rootType, reinterpret_cast<const VkSamplerBorderColorComponentMappingCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:
+        {
+            count_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(featureBits, rootType, reinterpret_cast<const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
 #ifdef VK_KHR_acceleration_structure
         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
         {
diff --git a/system/vulkan_enc/goldfish_vk_counting_guest.h b/system/vulkan_enc/goldfish_vk_counting_guest.h
index c2a4383..55ea7e6 100644
--- a/system/vulkan_enc/goldfish_vk_counting_guest.h
+++ b/system/vulkan_enc/goldfish_vk_counting_guest.h
@@ -118,6 +118,12 @@
     const VkMemoryBarrier* toCount,
     size_t* count);
 
+void count_VkPipelineCacheHeaderVersionOne(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPipelineCacheHeaderVersionOne* toCount,
+    size_t* count);
+
 void count_VkAllocationCallbacks(
     uint32_t featureBits,
     VkStructureType rootType,
@@ -1569,6 +1575,170 @@
 #endif
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
+#ifdef VK_KHR_video_queue
+void count_VkVideoQueueFamilyProperties2KHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoQueueFamilyProperties2KHR* toCount,
+    size_t* count);
+
+void count_VkVideoProfileKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoProfileKHR* toCount,
+    size_t* count);
+
+void count_VkVideoProfilesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoProfilesKHR* toCount,
+    size_t* count);
+
+void count_VkVideoCapabilitiesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoCapabilitiesKHR* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceVideoFormatInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceVideoFormatInfoKHR* toCount,
+    size_t* count);
+
+void count_VkVideoFormatPropertiesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoFormatPropertiesKHR* toCount,
+    size_t* count);
+
+void count_VkVideoPictureResourceKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoPictureResourceKHR* toCount,
+    size_t* count);
+
+void count_VkVideoReferenceSlotKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoReferenceSlotKHR* toCount,
+    size_t* count);
+
+void count_VkVideoGetMemoryPropertiesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoGetMemoryPropertiesKHR* toCount,
+    size_t* count);
+
+void count_VkVideoBindMemoryKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoBindMemoryKHR* toCount,
+    size_t* count);
+
+void count_VkVideoSessionCreateInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoSessionCreateInfoKHR* toCount,
+    size_t* count);
+
+void count_VkVideoSessionParametersCreateInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoSessionParametersCreateInfoKHR* toCount,
+    size_t* count);
+
+void count_VkVideoSessionParametersUpdateInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoSessionParametersUpdateInfoKHR* toCount,
+    size_t* count);
+
+void count_VkVideoBeginCodingInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoBeginCodingInfoKHR* toCount,
+    size_t* count);
+
+void count_VkVideoEndCodingInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEndCodingInfoKHR* toCount,
+    size_t* count);
+
+void count_VkVideoCodingControlInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoCodingControlInfoKHR* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_KHR_video_decode_queue
+void count_VkVideoDecodeInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeInfoKHR* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_KHR_dynamic_rendering
+void count_VkRenderingAttachmentInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkRenderingAttachmentInfoKHR* toCount,
+    size_t* count);
+
+void count_VkRenderingInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkRenderingInfoKHR* toCount,
+    size_t* count);
+
+void count_VkPipelineRenderingCreateInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPipelineRenderingCreateInfoKHR* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceDynamicRenderingFeaturesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceDynamicRenderingFeaturesKHR* toCount,
+    size_t* count);
+
+void count_VkCommandBufferInheritanceRenderingInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkCommandBufferInheritanceRenderingInfoKHR* toCount,
+    size_t* count);
+
+void count_VkRenderingFragmentShadingRateAttachmentInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkRenderingFragmentShadingRateAttachmentInfoKHR* toCount,
+    size_t* count);
+
+void count_VkRenderingFragmentDensityMapAttachmentInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkRenderingFragmentDensityMapAttachmentInfoEXT* toCount,
+    size_t* count);
+
+void count_VkAttachmentSampleCountInfoAMD(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkAttachmentSampleCountInfoAMD* toCount,
+    size_t* count);
+
+DEFINE_ALIAS_FUNCTION(count_VkAttachmentSampleCountInfoAMD, count_VkAttachmentSampleCountInfoNV)
+
+void count_VkMultiviewPerViewAttributesInfoNVX(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkMultiviewPerViewAttributesInfoNVX* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_KHR_multiview
 DEFINE_ALIAS_FUNCTION(count_VkRenderPassMultiviewCreateInfo, count_VkRenderPassMultiviewCreateInfoKHR)
 
@@ -2173,6 +2343,14 @@
 DEFINE_ALIAS_FUNCTION(count_VkAttachmentDescriptionStencilLayout, count_VkAttachmentDescriptionStencilLayoutKHR)
 
 #endif
+#ifdef VK_KHR_present_wait
+void count_VkPhysicalDevicePresentWaitFeaturesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDevicePresentWaitFeaturesKHR* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_KHR_uniform_buffer_standard_layout
 DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceUniformBufferStandardLayoutFeatures, count_VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR)
 
@@ -2235,6 +2413,20 @@
     size_t* count);
 
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+void count_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_KHR_pipeline_library
 void count_VkPipelineLibraryCreateInfoKHR(
     uint32_t featureBits,
@@ -2245,6 +2437,120 @@
 #endif
 #ifdef VK_KHR_shader_non_semantic_info
 #endif
+#ifdef VK_KHR_present_id
+void count_VkPresentIdKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPresentIdKHR* toCount,
+    size_t* count);
+
+void count_VkPhysicalDevicePresentIdFeaturesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDevicePresentIdFeaturesKHR* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_KHR_video_encode_queue
+void count_VkVideoEncodeInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeInfoKHR* toCount,
+    size_t* count);
+
+void count_VkVideoEncodeRateControlInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeRateControlInfoKHR* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_KHR_synchronization2
+void count_VkMemoryBarrier2KHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkMemoryBarrier2KHR* toCount,
+    size_t* count);
+
+void count_VkBufferMemoryBarrier2KHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkBufferMemoryBarrier2KHR* toCount,
+    size_t* count);
+
+void count_VkImageMemoryBarrier2KHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkImageMemoryBarrier2KHR* toCount,
+    size_t* count);
+
+void count_VkDependencyInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkDependencyInfoKHR* toCount,
+    size_t* count);
+
+void count_VkSemaphoreSubmitInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkSemaphoreSubmitInfoKHR* toCount,
+    size_t* count);
+
+void count_VkCommandBufferSubmitInfoKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkCommandBufferSubmitInfoKHR* toCount,
+    size_t* count);
+
+void count_VkSubmitInfo2KHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkSubmitInfo2KHR* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceSynchronization2FeaturesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSynchronization2FeaturesKHR* toCount,
+    size_t* count);
+
+void count_VkQueueFamilyCheckpointProperties2NV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkQueueFamilyCheckpointProperties2NV* toCount,
+    size_t* count);
+
+void count_VkCheckpointData2NV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkCheckpointData2NV* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+void count_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+void count_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+void count_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_KHR_copy_commands2
 void count_VkBufferCopy2KHR(
     uint32_t featureBits,
@@ -2313,6 +2619,40 @@
     size_t* count);
 
 #endif
+#ifdef VK_KHR_format_feature_flags2
+void count_VkFormatProperties3KHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkFormatProperties3KHR* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_KHR_maintenance4
+void count_VkPhysicalDeviceMaintenance4FeaturesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMaintenance4FeaturesKHR* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceMaintenance4PropertiesKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMaintenance4PropertiesKHR* toCount,
+    size_t* count);
+
+void count_VkDeviceBufferMemoryRequirementsKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkDeviceBufferMemoryRequirementsKHR* toCount,
+    size_t* count);
+
+void count_VkDeviceImageMemoryRequirementsKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkDeviceImageMemoryRequirementsKHR* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_ANDROID_native_buffer
 void count_VkNativeBufferANDROID(
     uint32_t featureBits,
@@ -2409,6 +2749,26 @@
     size_t* count);
 
 #endif
+#ifdef VK_NVX_binary_import
+void count_VkCuModuleCreateInfoNVX(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkCuModuleCreateInfoNVX* toCount,
+    size_t* count);
+
+void count_VkCuFunctionCreateInfoNVX(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkCuFunctionCreateInfoNVX* toCount,
+    size_t* count);
+
+void count_VkCuLaunchInfoNVX(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkCuLaunchInfoNVX* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_NVX_image_view_handle
 void count_VkImageViewHandleInfoNVX(
     uint32_t featureBits,
@@ -2431,6 +2791,174 @@
 #endif
 #ifdef VK_AMD_shader_ballot
 #endif
+#ifdef VK_EXT_video_encode_h264
+void count_VkVideoEncodeH264CapabilitiesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH264CapabilitiesEXT* toCount,
+    size_t* count);
+
+void count_VkVideoEncodeH264SessionCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionCreateInfoEXT* toCount,
+    size_t* count);
+
+void count_VkVideoEncodeH264SessionParametersAddInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionParametersAddInfoEXT* toCount,
+    size_t* count);
+
+void count_VkVideoEncodeH264SessionParametersCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionParametersCreateInfoEXT* toCount,
+    size_t* count);
+
+void count_VkVideoEncodeH264DpbSlotInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH264DpbSlotInfoEXT* toCount,
+    size_t* count);
+
+void count_VkVideoEncodeH264NaluSliceEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH264NaluSliceEXT* toCount,
+    size_t* count);
+
+void count_VkVideoEncodeH264VclFrameInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH264VclFrameInfoEXT* toCount,
+    size_t* count);
+
+void count_VkVideoEncodeH264EmitPictureParametersEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH264EmitPictureParametersEXT* toCount,
+    size_t* count);
+
+void count_VkVideoEncodeH264ProfileEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH264ProfileEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_video_encode_h265
+void count_VkVideoEncodeH265CapabilitiesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH265CapabilitiesEXT* toCount,
+    size_t* count);
+
+void count_VkVideoEncodeH265SessionCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionCreateInfoEXT* toCount,
+    size_t* count);
+
+void count_VkVideoEncodeH265SessionParametersAddInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionParametersAddInfoEXT* toCount,
+    size_t* count);
+
+void count_VkVideoEncodeH265SessionParametersCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionParametersCreateInfoEXT* toCount,
+    size_t* count);
+
+void count_VkVideoEncodeH265DpbSlotInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH265DpbSlotInfoEXT* toCount,
+    size_t* count);
+
+void count_VkVideoEncodeH265ReferenceListsEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH265ReferenceListsEXT* toCount,
+    size_t* count);
+
+void count_VkVideoEncodeH265NaluSliceEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH265NaluSliceEXT* toCount,
+    size_t* count);
+
+void count_VkVideoEncodeH265VclFrameInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH265VclFrameInfoEXT* toCount,
+    size_t* count);
+
+void count_VkVideoEncodeH265EmitPictureParametersEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH265EmitPictureParametersEXT* toCount,
+    size_t* count);
+
+void count_VkVideoEncodeH265ProfileEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoEncodeH265ProfileEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_video_decode_h264
+void count_VkVideoDecodeH264ProfileEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH264ProfileEXT* toCount,
+    size_t* count);
+
+void count_VkVideoDecodeH264CapabilitiesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH264CapabilitiesEXT* toCount,
+    size_t* count);
+
+void count_VkVideoDecodeH264SessionCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionCreateInfoEXT* toCount,
+    size_t* count);
+
+void count_VkVideoDecodeH264SessionParametersAddInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionParametersAddInfoEXT* toCount,
+    size_t* count);
+
+void count_VkVideoDecodeH264SessionParametersCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionParametersCreateInfoEXT* toCount,
+    size_t* count);
+
+void count_VkVideoDecodeH264PictureInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH264PictureInfoEXT* toCount,
+    size_t* count);
+
+void count_VkVideoDecodeH264MvcEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH264MvcEXT* toCount,
+    size_t* count);
+
+void count_VkVideoDecodeH264DpbSlotInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH264DpbSlotInfoEXT* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
 void count_VkTextureLODGatherFormatPropertiesAMD(
     uint32_t featureBits,
@@ -2834,6 +3362,12 @@
     const VkExternalFormatANDROID* toCount,
     size_t* count);
 
+void count_VkAndroidHardwareBufferFormatProperties2ANDROID(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkAndroidHardwareBufferFormatProperties2ANDROID* toCount,
+    size_t* count);
+
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
 DEFINE_ALIAS_FUNCTION(count_VkSamplerReductionModeCreateInfo, count_VkSamplerReductionModeCreateInfoEXT)
@@ -3016,6 +3550,18 @@
     const VkImageDrmFormatModifierPropertiesEXT* toCount,
     size_t* count);
 
+void count_VkDrmFormatModifierProperties2EXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkDrmFormatModifierProperties2EXT* toCount,
+    size_t* count);
+
+void count_VkDrmFormatModifierPropertiesList2EXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkDrmFormatModifierPropertiesList2EXT* toCount,
+    size_t* count);
+
 #endif
 #ifdef VK_EXT_validation_cache
 void count_VkValidationCacheCreateInfoEXT(
@@ -3271,6 +3817,50 @@
     size_t* count);
 
 #endif
+#ifdef VK_EXT_video_decode_h265
+void count_VkVideoDecodeH265ProfileEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH265ProfileEXT* toCount,
+    size_t* count);
+
+void count_VkVideoDecodeH265CapabilitiesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH265CapabilitiesEXT* toCount,
+    size_t* count);
+
+void count_VkVideoDecodeH265SessionCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionCreateInfoEXT* toCount,
+    size_t* count);
+
+void count_VkVideoDecodeH265SessionParametersAddInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionParametersAddInfoEXT* toCount,
+    size_t* count);
+
+void count_VkVideoDecodeH265SessionParametersCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionParametersCreateInfoEXT* toCount,
+    size_t* count);
+
+void count_VkVideoDecodeH265PictureInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH265PictureInfoEXT* toCount,
+    size_t* count);
+
+void count_VkVideoDecodeH265DpbSlotInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVideoDecodeH265DpbSlotInfoEXT* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
 void count_VkDeviceMemoryOverallocationCreateInfoAMD(
     uint32_t featureBits,
@@ -3695,6 +4285,26 @@
     size_t* count);
 
 #endif
+#ifdef VK_EXT_provoking_vertex
+void count_VkPhysicalDeviceProvokingVertexFeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceProvokingVertexFeaturesEXT* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceProvokingVertexPropertiesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceProvokingVertexPropertiesEXT* toCount,
+    size_t* count);
+
+void count_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_EXT_full_screen_exclusive
 void count_VkSurfaceFullScreenExclusiveInfoEXT(
     uint32_t featureBits,
@@ -3771,6 +4381,14 @@
     size_t* count);
 
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+void count_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 void count_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
     uint32_t featureBits,
@@ -3859,6 +4477,20 @@
     size_t* count);
 
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+void count_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceInheritedViewportScissorFeaturesNV* toCount,
+    size_t* count);
+
+void count_VkCommandBufferInheritanceViewportScissorInfoNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkCommandBufferInheritanceViewportScissorInfoNV* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
 void count_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
     uint32_t featureBits,
@@ -3907,6 +4539,8 @@
     size_t* count);
 
 #endif
+#ifdef VK_EXT_acquire_drm_display
+#endif
 #ifdef VK_EXT_robustness2
 void count_VkPhysicalDeviceRobustness2FeaturesEXT(
     uint32_t featureBits,
@@ -4007,6 +4641,70 @@
     size_t* count);
 
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+void count_VkDeviceOrHostAddressConstKHR(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkDeviceOrHostAddressConstKHR* toCount,
+    size_t* count);
+
+void count_VkAccelerationStructureGeometryMotionTrianglesDataNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkAccelerationStructureGeometryMotionTrianglesDataNV* toCount,
+    size_t* count);
+
+void count_VkAccelerationStructureMotionInfoNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInfoNV* toCount,
+    size_t* count);
+
+void count_VkAccelerationStructureMatrixMotionInstanceNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkAccelerationStructureMatrixMotionInstanceNV* toCount,
+    size_t* count);
+
+void count_VkSRTDataNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkSRTDataNV* toCount,
+    size_t* count);
+
+void count_VkAccelerationStructureSRTMotionInstanceNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkAccelerationStructureSRTMotionInstanceNV* toCount,
+    size_t* count);
+
+void count_VkAccelerationStructureMotionInstanceDataNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInstanceDataNV* toCount,
+    size_t* count);
+
+void count_VkAccelerationStructureMotionInstanceNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInstanceNV* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+void count_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_EXT_fragment_density_map2
 void count_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
     uint32_t featureBits,
@@ -4045,6 +4743,16 @@
     size_t* count);
 
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+void count_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_NV_acquire_winrt_display
+#endif
 #ifdef VK_EXT_directfb_surface
 void count_VkDirectFBSurfaceCreateInfoEXT(
     uint32_t featureBits,
@@ -4053,6 +4761,230 @@
     size_t* count);
 
 #endif
+#ifdef VK_VALVE_mutable_descriptor_type
+void count_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* toCount,
+    size_t* count);
+
+void count_VkMutableDescriptorTypeListVALVE(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkMutableDescriptorTypeListVALVE* toCount,
+    size_t* count);
+
+void count_VkMutableDescriptorTypeCreateInfoVALVE(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkMutableDescriptorTypeCreateInfoVALVE* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+void count_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* toCount,
+    size_t* count);
+
+void count_VkVertexInputBindingDescription2EXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVertexInputBindingDescription2EXT* toCount,
+    size_t* count);
+
+void count_VkVertexInputAttributeDescription2EXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkVertexInputAttributeDescription2EXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_physical_device_drm
+void count_VkPhysicalDeviceDrmPropertiesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceDrmPropertiesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+void count_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_FUCHSIA_external_memory
+void count_VkImportMemoryZirconHandleInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkImportMemoryZirconHandleInfoFUCHSIA* toCount,
+    size_t* count);
+
+void count_VkMemoryZirconHandlePropertiesFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkMemoryZirconHandlePropertiesFUCHSIA* toCount,
+    size_t* count);
+
+void count_VkMemoryGetZirconHandleInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkMemoryGetZirconHandleInfoFUCHSIA* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+void count_VkImportSemaphoreZirconHandleInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkImportSemaphoreZirconHandleInfoFUCHSIA* toCount,
+    size_t* count);
+
+void count_VkSemaphoreGetZirconHandleInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkSemaphoreGetZirconHandleInfoFUCHSIA* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+void count_VkBufferCollectionCreateInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkBufferCollectionCreateInfoFUCHSIA* toCount,
+    size_t* count);
+
+void count_VkImportMemoryBufferCollectionFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkImportMemoryBufferCollectionFUCHSIA* toCount,
+    size_t* count);
+
+void count_VkBufferCollectionImageCreateInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkBufferCollectionImageCreateInfoFUCHSIA* toCount,
+    size_t* count);
+
+void count_VkBufferCollectionConstraintsInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkBufferCollectionConstraintsInfoFUCHSIA* toCount,
+    size_t* count);
+
+void count_VkBufferConstraintsInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkBufferConstraintsInfoFUCHSIA* toCount,
+    size_t* count);
+
+void count_VkBufferCollectionBufferCreateInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkBufferCollectionBufferCreateInfoFUCHSIA* toCount,
+    size_t* count);
+
+void count_VkSysmemColorSpaceFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkSysmemColorSpaceFUCHSIA* toCount,
+    size_t* count);
+
+void count_VkBufferCollectionPropertiesFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkBufferCollectionPropertiesFUCHSIA* toCount,
+    size_t* count);
+
+void count_VkImageFormatConstraintsInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkImageFormatConstraintsInfoFUCHSIA* toCount,
+    size_t* count);
+
+void count_VkImageConstraintsInfoFUCHSIA(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkImageConstraintsInfoFUCHSIA* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+void count_VkSubpassShadingPipelineCreateInfoHUAWEI(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkSubpassShadingPipelineCreateInfoHUAWEI* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+void count_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_NV_external_memory_rdma
+void count_VkMemoryGetRemoteAddressInfoNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkMemoryGetRemoteAddressInfoNV* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+void count_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_QNX_screen_surface
+void count_VkScreenSurfaceCreateInfoQNX(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkScreenSurfaceCreateInfoQNX* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_color_write_enable
+void count_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceColorWriteEnableFeaturesEXT* toCount,
+    size_t* count);
+
+void count_VkPipelineColorWriteCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPipelineColorWriteCreateInfoEXT* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_GOOGLE_gfxstream
 void count_VkImportColorBufferGOOGLE(
     uint32_t featureBits,
@@ -4073,6 +5005,70 @@
     size_t* count);
 
 #endif
+#ifdef VK_EXT_global_priority_query
+void count_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* toCount,
+    size_t* count);
+
+void count_VkQueueFamilyGlobalPriorityPropertiesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkQueueFamilyGlobalPriorityPropertiesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_multi_draw
+void count_VkPhysicalDeviceMultiDrawFeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMultiDrawFeaturesEXT* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceMultiDrawPropertiesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMultiDrawPropertiesEXT* toCount,
+    size_t* count);
+
+void count_VkMultiDrawInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkMultiDrawInfoEXT* toCount,
+    size_t* count);
+
+void count_VkMultiDrawIndexedInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkMultiDrawIndexedInfoEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_load_store_op_none
+#endif
+#ifdef VK_EXT_border_color_swizzle
+void count_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* toCount,
+    size_t* count);
+
+void count_VkSamplerBorderColorComponentMappingCreateInfoEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkSamplerBorderColorComponentMappingCreateInfoEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+void count_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
+    uint32_t featureBits,
+    VkStructureType rootType,
+    const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_KHR_acceleration_structure
 void count_VkDeviceOrHostAddressKHR(
     uint32_t featureBits,
@@ -4080,12 +5076,6 @@
     const VkDeviceOrHostAddressKHR* toCount,
     size_t* count);
 
-void count_VkDeviceOrHostAddressConstKHR(
-    uint32_t featureBits,
-    VkStructureType rootType,
-    const VkDeviceOrHostAddressConstKHR* toCount,
-    size_t* count);
-
 void count_VkAccelerationStructureBuildRangeInfoKHR(
     uint32_t featureBits,
     VkStructureType rootType,
diff --git a/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp b/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
index f53163f..1d42aad 100644
--- a/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
@@ -282,6 +282,18 @@
     }
 }
 
+void deepcopy_VkPipelineCacheHeaderVersionOne(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPipelineCacheHeaderVersionOne* from,
+    VkPipelineCacheHeaderVersionOne* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    memcpy(to->pipelineCacheUUID, from->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
+}
+
 void deepcopy_VkAllocationCallbacks(
     Allocator* alloc,
     VkStructureType rootType,
@@ -6878,6 +6890,854 @@
 #endif
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
+#ifdef VK_KHR_video_queue
+void deepcopy_VkVideoQueueFamilyProperties2KHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoQueueFamilyProperties2KHR* from,
+    VkVideoQueueFamilyProperties2KHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkVideoProfileKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoProfileKHR* from,
+    VkVideoProfileKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkVideoProfilesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoProfilesKHR* from,
+    VkVideoProfilesKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pProfiles = nullptr;
+    if (from->pProfiles)
+    {
+        to->pProfiles = (VkVideoProfileKHR*)alloc->alloc(sizeof(const VkVideoProfileKHR));
+        deepcopy_VkVideoProfileKHR(alloc, rootType, from->pProfiles, (VkVideoProfileKHR*)(to->pProfiles));
+    }
+}
+
+void deepcopy_VkVideoCapabilitiesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoCapabilitiesKHR* from,
+    VkVideoCapabilitiesKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkExtent2D(alloc, rootType, &from->videoPictureExtentGranularity, (VkExtent2D*)(&to->videoPictureExtentGranularity));
+    deepcopy_VkExtent2D(alloc, rootType, &from->minExtent, (VkExtent2D*)(&to->minExtent));
+    deepcopy_VkExtent2D(alloc, rootType, &from->maxExtent, (VkExtent2D*)(&to->maxExtent));
+}
+
+void deepcopy_VkPhysicalDeviceVideoFormatInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceVideoFormatInfoKHR* from,
+    VkPhysicalDeviceVideoFormatInfoKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pVideoProfiles = nullptr;
+    if (from->pVideoProfiles)
+    {
+        to->pVideoProfiles = (VkVideoProfilesKHR*)alloc->alloc(sizeof(const VkVideoProfilesKHR));
+        deepcopy_VkVideoProfilesKHR(alloc, rootType, from->pVideoProfiles, (VkVideoProfilesKHR*)(to->pVideoProfiles));
+    }
+}
+
+void deepcopy_VkVideoFormatPropertiesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoFormatPropertiesKHR* from,
+    VkVideoFormatPropertiesKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkVideoPictureResourceKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoPictureResourceKHR* from,
+    VkVideoPictureResourceKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkOffset2D(alloc, rootType, &from->codedOffset, (VkOffset2D*)(&to->codedOffset));
+    deepcopy_VkExtent2D(alloc, rootType, &from->codedExtent, (VkExtent2D*)(&to->codedExtent));
+}
+
+void deepcopy_VkVideoReferenceSlotKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoReferenceSlotKHR* from,
+    VkVideoReferenceSlotKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pPictureResource = nullptr;
+    if (from->pPictureResource)
+    {
+        to->pPictureResource = (VkVideoPictureResourceKHR*)alloc->alloc(sizeof(const VkVideoPictureResourceKHR));
+        deepcopy_VkVideoPictureResourceKHR(alloc, rootType, from->pPictureResource, (VkVideoPictureResourceKHR*)(to->pPictureResource));
+    }
+}
+
+void deepcopy_VkVideoGetMemoryPropertiesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoGetMemoryPropertiesKHR* from,
+    VkVideoGetMemoryPropertiesKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pMemoryRequirements = nullptr;
+    if (from->pMemoryRequirements)
+    {
+        to->pMemoryRequirements = (VkMemoryRequirements2*)alloc->alloc(sizeof(VkMemoryRequirements2));
+        deepcopy_VkMemoryRequirements2(alloc, rootType, from->pMemoryRequirements, (VkMemoryRequirements2*)(to->pMemoryRequirements));
+    }
+}
+
+void deepcopy_VkVideoBindMemoryKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoBindMemoryKHR* from,
+    VkVideoBindMemoryKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkVideoSessionCreateInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoSessionCreateInfoKHR* from,
+    VkVideoSessionCreateInfoKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pVideoProfile = nullptr;
+    if (from->pVideoProfile)
+    {
+        to->pVideoProfile = (VkVideoProfileKHR*)alloc->alloc(sizeof(const VkVideoProfileKHR));
+        deepcopy_VkVideoProfileKHR(alloc, rootType, from->pVideoProfile, (VkVideoProfileKHR*)(to->pVideoProfile));
+    }
+    deepcopy_VkExtent2D(alloc, rootType, &from->maxCodedExtent, (VkExtent2D*)(&to->maxCodedExtent));
+}
+
+void deepcopy_VkVideoSessionParametersCreateInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoSessionParametersCreateInfoKHR* from,
+    VkVideoSessionParametersCreateInfoKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkVideoSessionParametersUpdateInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoSessionParametersUpdateInfoKHR* from,
+    VkVideoSessionParametersUpdateInfoKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkVideoBeginCodingInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoBeginCodingInfoKHR* from,
+    VkVideoBeginCodingInfoKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    if (from)
+    {
+        to->pReferenceSlots = nullptr;
+        if (from->pReferenceSlots)
+        {
+            to->pReferenceSlots = (VkVideoReferenceSlotKHR*)alloc->alloc(from->referenceSlotCount * sizeof(const VkVideoReferenceSlotKHR));
+            to->referenceSlotCount = from->referenceSlotCount;
+            for (uint32_t i = 0; i < (uint32_t)from->referenceSlotCount; ++i)
+            {
+                deepcopy_VkVideoReferenceSlotKHR(alloc, rootType, from->pReferenceSlots + i, (VkVideoReferenceSlotKHR*)(to->pReferenceSlots + i));
+            }
+        }
+    }
+}
+
+void deepcopy_VkVideoEndCodingInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEndCodingInfoKHR* from,
+    VkVideoEndCodingInfoKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkVideoCodingControlInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoCodingControlInfoKHR* from,
+    VkVideoCodingControlInfoKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_video_decode_queue
+void deepcopy_VkVideoDecodeInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeInfoKHR* from,
+    VkVideoDecodeInfoKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkOffset2D(alloc, rootType, &from->codedOffset, (VkOffset2D*)(&to->codedOffset));
+    deepcopy_VkExtent2D(alloc, rootType, &from->codedExtent, (VkExtent2D*)(&to->codedExtent));
+    deepcopy_VkVideoPictureResourceKHR(alloc, rootType, &from->dstPictureResource, (VkVideoPictureResourceKHR*)(&to->dstPictureResource));
+    to->pSetupReferenceSlot = nullptr;
+    if (from->pSetupReferenceSlot)
+    {
+        to->pSetupReferenceSlot = (VkVideoReferenceSlotKHR*)alloc->alloc(sizeof(const VkVideoReferenceSlotKHR));
+        deepcopy_VkVideoReferenceSlotKHR(alloc, rootType, from->pSetupReferenceSlot, (VkVideoReferenceSlotKHR*)(to->pSetupReferenceSlot));
+    }
+    if (from)
+    {
+        to->pReferenceSlots = nullptr;
+        if (from->pReferenceSlots)
+        {
+            to->pReferenceSlots = (VkVideoReferenceSlotKHR*)alloc->alloc(from->referenceSlotCount * sizeof(const VkVideoReferenceSlotKHR));
+            to->referenceSlotCount = from->referenceSlotCount;
+            for (uint32_t i = 0; i < (uint32_t)from->referenceSlotCount; ++i)
+            {
+                deepcopy_VkVideoReferenceSlotKHR(alloc, rootType, from->pReferenceSlots + i, (VkVideoReferenceSlotKHR*)(to->pReferenceSlots + i));
+            }
+        }
+    }
+}
+
+#endif
+#ifdef VK_KHR_dynamic_rendering
+void deepcopy_VkRenderingAttachmentInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkRenderingAttachmentInfoKHR* from,
+    VkRenderingAttachmentInfoKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkClearValue(alloc, rootType, &from->clearValue, (VkClearValue*)(&to->clearValue));
+}
+
+void deepcopy_VkRenderingInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkRenderingInfoKHR* from,
+    VkRenderingInfoKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkRect2D(alloc, rootType, &from->renderArea, (VkRect2D*)(&to->renderArea));
+    if (from)
+    {
+        to->pColorAttachments = nullptr;
+        if (from->pColorAttachments)
+        {
+            to->pColorAttachments = (VkRenderingAttachmentInfoKHR*)alloc->alloc(from->colorAttachmentCount * sizeof(const VkRenderingAttachmentInfoKHR));
+            to->colorAttachmentCount = from->colorAttachmentCount;
+            for (uint32_t i = 0; i < (uint32_t)from->colorAttachmentCount; ++i)
+            {
+                deepcopy_VkRenderingAttachmentInfoKHR(alloc, rootType, from->pColorAttachments + i, (VkRenderingAttachmentInfoKHR*)(to->pColorAttachments + i));
+            }
+        }
+    }
+    to->pDepthAttachment = nullptr;
+    if (from->pDepthAttachment)
+    {
+        to->pDepthAttachment = (VkRenderingAttachmentInfoKHR*)alloc->alloc(sizeof(const VkRenderingAttachmentInfoKHR));
+        deepcopy_VkRenderingAttachmentInfoKHR(alloc, rootType, from->pDepthAttachment, (VkRenderingAttachmentInfoKHR*)(to->pDepthAttachment));
+    }
+    to->pStencilAttachment = nullptr;
+    if (from->pStencilAttachment)
+    {
+        to->pStencilAttachment = (VkRenderingAttachmentInfoKHR*)alloc->alloc(sizeof(const VkRenderingAttachmentInfoKHR));
+        deepcopy_VkRenderingAttachmentInfoKHR(alloc, rootType, from->pStencilAttachment, (VkRenderingAttachmentInfoKHR*)(to->pStencilAttachment));
+    }
+}
+
+void deepcopy_VkPipelineRenderingCreateInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPipelineRenderingCreateInfoKHR* from,
+    VkPipelineRenderingCreateInfoKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pColorAttachmentFormats = nullptr;
+    if (from->pColorAttachmentFormats)
+    {
+        to->pColorAttachmentFormats = (VkFormat*)alloc->dupArray(from->pColorAttachmentFormats, from->colorAttachmentCount * sizeof(const VkFormat));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceDynamicRenderingFeaturesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceDynamicRenderingFeaturesKHR* from,
+    VkPhysicalDeviceDynamicRenderingFeaturesKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkCommandBufferInheritanceRenderingInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkCommandBufferInheritanceRenderingInfoKHR* from,
+    VkCommandBufferInheritanceRenderingInfoKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pColorAttachmentFormats = nullptr;
+    if (from->pColorAttachmentFormats)
+    {
+        to->pColorAttachmentFormats = (VkFormat*)alloc->dupArray(from->pColorAttachmentFormats, from->colorAttachmentCount * sizeof(const VkFormat));
+    }
+}
+
+void deepcopy_VkRenderingFragmentShadingRateAttachmentInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkRenderingFragmentShadingRateAttachmentInfoKHR* from,
+    VkRenderingFragmentShadingRateAttachmentInfoKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkExtent2D(alloc, rootType, &from->shadingRateAttachmentTexelSize, (VkExtent2D*)(&to->shadingRateAttachmentTexelSize));
+}
+
+void deepcopy_VkRenderingFragmentDensityMapAttachmentInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkRenderingFragmentDensityMapAttachmentInfoEXT* from,
+    VkRenderingFragmentDensityMapAttachmentInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkAttachmentSampleCountInfoAMD(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkAttachmentSampleCountInfoAMD* from,
+    VkAttachmentSampleCountInfoAMD* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pColorAttachmentSamples = nullptr;
+    if (from->pColorAttachmentSamples)
+    {
+        to->pColorAttachmentSamples = (VkSampleCountFlagBits*)alloc->dupArray(from->pColorAttachmentSamples, from->colorAttachmentCount * sizeof(const VkSampleCountFlagBits));
+    }
+}
+
+void deepcopy_VkMultiviewPerViewAttributesInfoNVX(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkMultiviewPerViewAttributesInfoNVX* from,
+    VkMultiviewPerViewAttributesInfoNVX* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
 #ifdef VK_KHR_multiview
 #endif
 #ifdef VK_KHR_get_physical_device_properties2
@@ -8447,6 +9307,36 @@
 #endif
 #ifdef VK_KHR_separate_depth_stencil_layouts
 #endif
+#ifdef VK_KHR_present_wait
+void deepcopy_VkPhysicalDevicePresentWaitFeaturesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDevicePresentWaitFeaturesKHR* from,
+    VkPhysicalDevicePresentWaitFeaturesKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
 #ifdef VK_KHR_uniform_buffer_standard_layout
 #endif
 #ifdef VK_KHR_buffer_device_address
@@ -8646,6 +9536,64 @@
 }
 
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+void deepcopy_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* from,
+    VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* from,
+    VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
 #ifdef VK_KHR_pipeline_library
 void deepcopy_VkPipelineLibraryCreateInfoKHR(
     Allocator* alloc,
@@ -8683,6 +9631,604 @@
 #endif
 #ifdef VK_KHR_shader_non_semantic_info
 #endif
+#ifdef VK_KHR_present_id
+void deepcopy_VkPresentIdKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPresentIdKHR* from,
+    VkPresentIdKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pPresentIds = nullptr;
+    if (from->pPresentIds)
+    {
+        to->pPresentIds = (uint64_t*)alloc->dupArray(from->pPresentIds, from->swapchainCount * sizeof(const uint64_t));
+    }
+}
+
+void deepcopy_VkPhysicalDevicePresentIdFeaturesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDevicePresentIdFeaturesKHR* from,
+    VkPhysicalDevicePresentIdFeaturesKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_video_encode_queue
+void deepcopy_VkVideoEncodeInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeInfoKHR* from,
+    VkVideoEncodeInfoKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkExtent2D(alloc, rootType, &from->codedExtent, (VkExtent2D*)(&to->codedExtent));
+    deepcopy_VkVideoPictureResourceKHR(alloc, rootType, &from->srcPictureResource, (VkVideoPictureResourceKHR*)(&to->srcPictureResource));
+    to->pSetupReferenceSlot = nullptr;
+    if (from->pSetupReferenceSlot)
+    {
+        to->pSetupReferenceSlot = (VkVideoReferenceSlotKHR*)alloc->alloc(sizeof(const VkVideoReferenceSlotKHR));
+        deepcopy_VkVideoReferenceSlotKHR(alloc, rootType, from->pSetupReferenceSlot, (VkVideoReferenceSlotKHR*)(to->pSetupReferenceSlot));
+    }
+    if (from)
+    {
+        to->pReferenceSlots = nullptr;
+        if (from->pReferenceSlots)
+        {
+            to->pReferenceSlots = (VkVideoReferenceSlotKHR*)alloc->alloc(from->referenceSlotCount * sizeof(const VkVideoReferenceSlotKHR));
+            to->referenceSlotCount = from->referenceSlotCount;
+            for (uint32_t i = 0; i < (uint32_t)from->referenceSlotCount; ++i)
+            {
+                deepcopy_VkVideoReferenceSlotKHR(alloc, rootType, from->pReferenceSlots + i, (VkVideoReferenceSlotKHR*)(to->pReferenceSlots + i));
+            }
+        }
+    }
+}
+
+void deepcopy_VkVideoEncodeRateControlInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeRateControlInfoKHR* from,
+    VkVideoEncodeRateControlInfoKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_synchronization2
+void deepcopy_VkMemoryBarrier2KHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkMemoryBarrier2KHR* from,
+    VkMemoryBarrier2KHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkBufferMemoryBarrier2KHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkBufferMemoryBarrier2KHR* from,
+    VkBufferMemoryBarrier2KHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkImageMemoryBarrier2KHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkImageMemoryBarrier2KHR* from,
+    VkImageMemoryBarrier2KHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkImageSubresourceRange(alloc, rootType, &from->subresourceRange, (VkImageSubresourceRange*)(&to->subresourceRange));
+}
+
+void deepcopy_VkDependencyInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkDependencyInfoKHR* from,
+    VkDependencyInfoKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    if (from)
+    {
+        to->pMemoryBarriers = nullptr;
+        if (from->pMemoryBarriers)
+        {
+            to->pMemoryBarriers = (VkMemoryBarrier2KHR*)alloc->alloc(from->memoryBarrierCount * sizeof(const VkMemoryBarrier2KHR));
+            to->memoryBarrierCount = from->memoryBarrierCount;
+            for (uint32_t i = 0; i < (uint32_t)from->memoryBarrierCount; ++i)
+            {
+                deepcopy_VkMemoryBarrier2KHR(alloc, rootType, from->pMemoryBarriers + i, (VkMemoryBarrier2KHR*)(to->pMemoryBarriers + i));
+            }
+        }
+    }
+    if (from)
+    {
+        to->pBufferMemoryBarriers = nullptr;
+        if (from->pBufferMemoryBarriers)
+        {
+            to->pBufferMemoryBarriers = (VkBufferMemoryBarrier2KHR*)alloc->alloc(from->bufferMemoryBarrierCount * sizeof(const VkBufferMemoryBarrier2KHR));
+            to->bufferMemoryBarrierCount = from->bufferMemoryBarrierCount;
+            for (uint32_t i = 0; i < (uint32_t)from->bufferMemoryBarrierCount; ++i)
+            {
+                deepcopy_VkBufferMemoryBarrier2KHR(alloc, rootType, from->pBufferMemoryBarriers + i, (VkBufferMemoryBarrier2KHR*)(to->pBufferMemoryBarriers + i));
+            }
+        }
+    }
+    if (from)
+    {
+        to->pImageMemoryBarriers = nullptr;
+        if (from->pImageMemoryBarriers)
+        {
+            to->pImageMemoryBarriers = (VkImageMemoryBarrier2KHR*)alloc->alloc(from->imageMemoryBarrierCount * sizeof(const VkImageMemoryBarrier2KHR));
+            to->imageMemoryBarrierCount = from->imageMemoryBarrierCount;
+            for (uint32_t i = 0; i < (uint32_t)from->imageMemoryBarrierCount; ++i)
+            {
+                deepcopy_VkImageMemoryBarrier2KHR(alloc, rootType, from->pImageMemoryBarriers + i, (VkImageMemoryBarrier2KHR*)(to->pImageMemoryBarriers + i));
+            }
+        }
+    }
+}
+
+void deepcopy_VkSemaphoreSubmitInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkSemaphoreSubmitInfoKHR* from,
+    VkSemaphoreSubmitInfoKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkCommandBufferSubmitInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkCommandBufferSubmitInfoKHR* from,
+    VkCommandBufferSubmitInfoKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkSubmitInfo2KHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkSubmitInfo2KHR* from,
+    VkSubmitInfo2KHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    if (from)
+    {
+        to->pWaitSemaphoreInfos = nullptr;
+        if (from->pWaitSemaphoreInfos)
+        {
+            to->pWaitSemaphoreInfos = (VkSemaphoreSubmitInfoKHR*)alloc->alloc(from->waitSemaphoreInfoCount * sizeof(const VkSemaphoreSubmitInfoKHR));
+            to->waitSemaphoreInfoCount = from->waitSemaphoreInfoCount;
+            for (uint32_t i = 0; i < (uint32_t)from->waitSemaphoreInfoCount; ++i)
+            {
+                deepcopy_VkSemaphoreSubmitInfoKHR(alloc, rootType, from->pWaitSemaphoreInfos + i, (VkSemaphoreSubmitInfoKHR*)(to->pWaitSemaphoreInfos + i));
+            }
+        }
+    }
+    if (from)
+    {
+        to->pCommandBufferInfos = nullptr;
+        if (from->pCommandBufferInfos)
+        {
+            to->pCommandBufferInfos = (VkCommandBufferSubmitInfoKHR*)alloc->alloc(from->commandBufferInfoCount * sizeof(const VkCommandBufferSubmitInfoKHR));
+            to->commandBufferInfoCount = from->commandBufferInfoCount;
+            for (uint32_t i = 0; i < (uint32_t)from->commandBufferInfoCount; ++i)
+            {
+                deepcopy_VkCommandBufferSubmitInfoKHR(alloc, rootType, from->pCommandBufferInfos + i, (VkCommandBufferSubmitInfoKHR*)(to->pCommandBufferInfos + i));
+            }
+        }
+    }
+    if (from)
+    {
+        to->pSignalSemaphoreInfos = nullptr;
+        if (from->pSignalSemaphoreInfos)
+        {
+            to->pSignalSemaphoreInfos = (VkSemaphoreSubmitInfoKHR*)alloc->alloc(from->signalSemaphoreInfoCount * sizeof(const VkSemaphoreSubmitInfoKHR));
+            to->signalSemaphoreInfoCount = from->signalSemaphoreInfoCount;
+            for (uint32_t i = 0; i < (uint32_t)from->signalSemaphoreInfoCount; ++i)
+            {
+                deepcopy_VkSemaphoreSubmitInfoKHR(alloc, rootType, from->pSignalSemaphoreInfos + i, (VkSemaphoreSubmitInfoKHR*)(to->pSignalSemaphoreInfos + i));
+            }
+        }
+    }
+}
+
+void deepcopy_VkPhysicalDeviceSynchronization2FeaturesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSynchronization2FeaturesKHR* from,
+    VkPhysicalDeviceSynchronization2FeaturesKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkQueueFamilyCheckpointProperties2NV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkQueueFamilyCheckpointProperties2NV* from,
+    VkQueueFamilyCheckpointProperties2NV* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkCheckpointData2NV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkCheckpointData2NV* from,
+    VkCheckpointData2NV* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pCheckpointMarker = nullptr;
+    if (from->pCheckpointMarker)
+    {
+        to->pCheckpointMarker = (void*)alloc->dupArray(from->pCheckpointMarker, sizeof(uint8_t));
+    }
+}
+
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+void deepcopy_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* from,
+    VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+void deepcopy_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* from,
+    VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+void deepcopy_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* from,
+    VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
 #ifdef VK_KHR_copy_commands2
 void deepcopy_VkBufferCopy2KHR(
     Allocator* alloc,
@@ -9094,6 +10640,162 @@
 }
 
 #endif
+#ifdef VK_KHR_format_feature_flags2
+void deepcopy_VkFormatProperties3KHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkFormatProperties3KHR* from,
+    VkFormatProperties3KHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_maintenance4
+void deepcopy_VkPhysicalDeviceMaintenance4FeaturesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMaintenance4FeaturesKHR* from,
+    VkPhysicalDeviceMaintenance4FeaturesKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceMaintenance4PropertiesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMaintenance4PropertiesKHR* from,
+    VkPhysicalDeviceMaintenance4PropertiesKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkDeviceBufferMemoryRequirementsKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkDeviceBufferMemoryRequirementsKHR* from,
+    VkDeviceBufferMemoryRequirementsKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pCreateInfo = nullptr;
+    if (from->pCreateInfo)
+    {
+        to->pCreateInfo = (VkBufferCreateInfo*)alloc->alloc(sizeof(const VkBufferCreateInfo));
+        deepcopy_VkBufferCreateInfo(alloc, rootType, from->pCreateInfo, (VkBufferCreateInfo*)(to->pCreateInfo));
+    }
+}
+
+void deepcopy_VkDeviceImageMemoryRequirementsKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkDeviceImageMemoryRequirementsKHR* from,
+    VkDeviceImageMemoryRequirementsKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pCreateInfo = nullptr;
+    if (from->pCreateInfo)
+    {
+        to->pCreateInfo = (VkImageCreateInfo*)alloc->alloc(sizeof(const VkImageCreateInfo));
+        deepcopy_VkImageCreateInfo(alloc, rootType, from->pCreateInfo, (VkImageCreateInfo*)(to->pCreateInfo));
+    }
+}
+
+#endif
 #ifdef VK_ANDROID_native_buffer
 void deepcopy_VkNativeBufferANDROID(
     Allocator* alloc,
@@ -9480,6 +11182,102 @@
 }
 
 #endif
+#ifdef VK_NVX_binary_import
+void deepcopy_VkCuModuleCreateInfoNVX(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkCuModuleCreateInfoNVX* from,
+    VkCuModuleCreateInfoNVX* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pData = nullptr;
+    if (from->pData)
+    {
+        to->pData = (void*)alloc->dupArray(from->pData, from->dataSize * sizeof(const uint8_t));
+    }
+}
+
+void deepcopy_VkCuFunctionCreateInfoNVX(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkCuFunctionCreateInfoNVX* from,
+    VkCuFunctionCreateInfoNVX* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pName = nullptr;
+    if (from->pName)
+    {
+        to->pName = alloc->strDup(from->pName);
+    }
+}
+
+void deepcopy_VkCuLaunchInfoNVX(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkCuLaunchInfoNVX* from,
+    VkCuLaunchInfoNVX* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
 #ifdef VK_NVX_image_view_handle
 void deepcopy_VkImageViewHandleInfoNVX(
     Allocator* alloc,
@@ -9546,6 +11344,1030 @@
 #endif
 #ifdef VK_AMD_shader_ballot
 #endif
+#ifdef VK_EXT_video_encode_h264
+void deepcopy_VkVideoEncodeH264CapabilitiesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH264CapabilitiesEXT* from,
+    VkVideoEncodeH264CapabilitiesEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkExtent2D(alloc, rootType, &from->minPictureSizeInMbs, (VkExtent2D*)(&to->minPictureSizeInMbs));
+    deepcopy_VkExtent2D(alloc, rootType, &from->maxPictureSizeInMbs, (VkExtent2D*)(&to->maxPictureSizeInMbs));
+    deepcopy_VkExtent2D(alloc, rootType, &from->inputImageDataAlignment, (VkExtent2D*)(&to->inputImageDataAlignment));
+    deepcopy_VkExtensionProperties(alloc, rootType, &from->stdExtensionVersion, (VkExtensionProperties*)(&to->stdExtensionVersion));
+}
+
+void deepcopy_VkVideoEncodeH264SessionCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionCreateInfoEXT* from,
+    VkVideoEncodeH264SessionCreateInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkExtent2D(alloc, rootType, &from->maxPictureSizeInMbs, (VkExtent2D*)(&to->maxPictureSizeInMbs));
+    to->pStdExtensionVersion = nullptr;
+    if (from->pStdExtensionVersion)
+    {
+        to->pStdExtensionVersion = (VkExtensionProperties*)alloc->alloc(sizeof(const VkExtensionProperties));
+        deepcopy_VkExtensionProperties(alloc, rootType, from->pStdExtensionVersion, (VkExtensionProperties*)(to->pStdExtensionVersion));
+    }
+}
+
+void deepcopy_VkVideoEncodeH264SessionParametersAddInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionParametersAddInfoEXT* from,
+    VkVideoEncodeH264SessionParametersAddInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pSpsStd = nullptr;
+    if (from->pSpsStd)
+    {
+        to->pSpsStd = (StdVideoH264SequenceParameterSet*)alloc->dupArray(from->pSpsStd, from->spsStdCount * sizeof(const StdVideoH264SequenceParameterSet));
+    }
+    to->pPpsStd = nullptr;
+    if (from->pPpsStd)
+    {
+        to->pPpsStd = (StdVideoH264PictureParameterSet*)alloc->dupArray(from->pPpsStd, from->ppsStdCount * sizeof(const StdVideoH264PictureParameterSet));
+    }
+}
+
+void deepcopy_VkVideoEncodeH264SessionParametersCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionParametersCreateInfoEXT* from,
+    VkVideoEncodeH264SessionParametersCreateInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pParametersAddInfo = nullptr;
+    if (from->pParametersAddInfo)
+    {
+        to->pParametersAddInfo = (VkVideoEncodeH264SessionParametersAddInfoEXT*)alloc->alloc(sizeof(const VkVideoEncodeH264SessionParametersAddInfoEXT));
+        deepcopy_VkVideoEncodeH264SessionParametersAddInfoEXT(alloc, rootType, from->pParametersAddInfo, (VkVideoEncodeH264SessionParametersAddInfoEXT*)(to->pParametersAddInfo));
+    }
+}
+
+void deepcopy_VkVideoEncodeH264DpbSlotInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH264DpbSlotInfoEXT* from,
+    VkVideoEncodeH264DpbSlotInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pStdPictureInfo = nullptr;
+    if (from->pStdPictureInfo)
+    {
+        to->pStdPictureInfo = (StdVideoEncodeH264PictureInfo*)alloc->dupArray(from->pStdPictureInfo, sizeof(const StdVideoEncodeH264PictureInfo));
+    }
+}
+
+void deepcopy_VkVideoEncodeH264NaluSliceEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH264NaluSliceEXT* from,
+    VkVideoEncodeH264NaluSliceEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pSliceHeaderStd = nullptr;
+    if (from->pSliceHeaderStd)
+    {
+        to->pSliceHeaderStd = (StdVideoEncodeH264SliceHeader*)alloc->dupArray(from->pSliceHeaderStd, sizeof(const StdVideoEncodeH264SliceHeader));
+    }
+    if (from)
+    {
+        to->pRefFinalList0Entries = nullptr;
+        if (from->pRefFinalList0Entries)
+        {
+            to->pRefFinalList0Entries = (VkVideoEncodeH264DpbSlotInfoEXT*)alloc->alloc(from->refFinalList0EntryCount * sizeof(const VkVideoEncodeH264DpbSlotInfoEXT));
+            to->refFinalList0EntryCount = from->refFinalList0EntryCount;
+            for (uint32_t i = 0; i < (uint32_t)from->refFinalList0EntryCount; ++i)
+            {
+                deepcopy_VkVideoEncodeH264DpbSlotInfoEXT(alloc, rootType, from->pRefFinalList0Entries + i, (VkVideoEncodeH264DpbSlotInfoEXT*)(to->pRefFinalList0Entries + i));
+            }
+        }
+    }
+    if (from)
+    {
+        to->pRefFinalList1Entries = nullptr;
+        if (from->pRefFinalList1Entries)
+        {
+            to->pRefFinalList1Entries = (VkVideoEncodeH264DpbSlotInfoEXT*)alloc->alloc(from->refFinalList1EntryCount * sizeof(const VkVideoEncodeH264DpbSlotInfoEXT));
+            to->refFinalList1EntryCount = from->refFinalList1EntryCount;
+            for (uint32_t i = 0; i < (uint32_t)from->refFinalList1EntryCount; ++i)
+            {
+                deepcopy_VkVideoEncodeH264DpbSlotInfoEXT(alloc, rootType, from->pRefFinalList1Entries + i, (VkVideoEncodeH264DpbSlotInfoEXT*)(to->pRefFinalList1Entries + i));
+            }
+        }
+    }
+}
+
+void deepcopy_VkVideoEncodeH264VclFrameInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH264VclFrameInfoEXT* from,
+    VkVideoEncodeH264VclFrameInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    if (from)
+    {
+        to->pRefDefaultFinalList0Entries = nullptr;
+        if (from->pRefDefaultFinalList0Entries)
+        {
+            to->pRefDefaultFinalList0Entries = (VkVideoEncodeH264DpbSlotInfoEXT*)alloc->alloc(from->refDefaultFinalList0EntryCount * sizeof(const VkVideoEncodeH264DpbSlotInfoEXT));
+            to->refDefaultFinalList0EntryCount = from->refDefaultFinalList0EntryCount;
+            for (uint32_t i = 0; i < (uint32_t)from->refDefaultFinalList0EntryCount; ++i)
+            {
+                deepcopy_VkVideoEncodeH264DpbSlotInfoEXT(alloc, rootType, from->pRefDefaultFinalList0Entries + i, (VkVideoEncodeH264DpbSlotInfoEXT*)(to->pRefDefaultFinalList0Entries + i));
+            }
+        }
+    }
+    if (from)
+    {
+        to->pRefDefaultFinalList1Entries = nullptr;
+        if (from->pRefDefaultFinalList1Entries)
+        {
+            to->pRefDefaultFinalList1Entries = (VkVideoEncodeH264DpbSlotInfoEXT*)alloc->alloc(from->refDefaultFinalList1EntryCount * sizeof(const VkVideoEncodeH264DpbSlotInfoEXT));
+            to->refDefaultFinalList1EntryCount = from->refDefaultFinalList1EntryCount;
+            for (uint32_t i = 0; i < (uint32_t)from->refDefaultFinalList1EntryCount; ++i)
+            {
+                deepcopy_VkVideoEncodeH264DpbSlotInfoEXT(alloc, rootType, from->pRefDefaultFinalList1Entries + i, (VkVideoEncodeH264DpbSlotInfoEXT*)(to->pRefDefaultFinalList1Entries + i));
+            }
+        }
+    }
+    if (from)
+    {
+        to->pNaluSliceEntries = nullptr;
+        if (from->pNaluSliceEntries)
+        {
+            to->pNaluSliceEntries = (VkVideoEncodeH264NaluSliceEXT*)alloc->alloc(from->naluSliceEntryCount * sizeof(const VkVideoEncodeH264NaluSliceEXT));
+            to->naluSliceEntryCount = from->naluSliceEntryCount;
+            for (uint32_t i = 0; i < (uint32_t)from->naluSliceEntryCount; ++i)
+            {
+                deepcopy_VkVideoEncodeH264NaluSliceEXT(alloc, rootType, from->pNaluSliceEntries + i, (VkVideoEncodeH264NaluSliceEXT*)(to->pNaluSliceEntries + i));
+            }
+        }
+    }
+    to->pCurrentPictureInfo = nullptr;
+    if (from->pCurrentPictureInfo)
+    {
+        to->pCurrentPictureInfo = (VkVideoEncodeH264DpbSlotInfoEXT*)alloc->alloc(sizeof(const VkVideoEncodeH264DpbSlotInfoEXT));
+        deepcopy_VkVideoEncodeH264DpbSlotInfoEXT(alloc, rootType, from->pCurrentPictureInfo, (VkVideoEncodeH264DpbSlotInfoEXT*)(to->pCurrentPictureInfo));
+    }
+}
+
+void deepcopy_VkVideoEncodeH264EmitPictureParametersEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH264EmitPictureParametersEXT* from,
+    VkVideoEncodeH264EmitPictureParametersEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->ppsIdEntries = nullptr;
+    if (from->ppsIdEntries)
+    {
+        to->ppsIdEntries = (uint8_t*)alloc->dupArray(from->ppsIdEntries, from->ppsIdEntryCount * sizeof(const uint8_t));
+    }
+}
+
+void deepcopy_VkVideoEncodeH264ProfileEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH264ProfileEXT* from,
+    VkVideoEncodeH264ProfileEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_video_encode_h265
+void deepcopy_VkVideoEncodeH265CapabilitiesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH265CapabilitiesEXT* from,
+    VkVideoEncodeH265CapabilitiesEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkExtent2D(alloc, rootType, &from->inputImageDataAlignment, (VkExtent2D*)(&to->inputImageDataAlignment));
+    deepcopy_VkExtensionProperties(alloc, rootType, &from->stdExtensionVersion, (VkExtensionProperties*)(&to->stdExtensionVersion));
+}
+
+void deepcopy_VkVideoEncodeH265SessionCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionCreateInfoEXT* from,
+    VkVideoEncodeH265SessionCreateInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pStdExtensionVersion = nullptr;
+    if (from->pStdExtensionVersion)
+    {
+        to->pStdExtensionVersion = (VkExtensionProperties*)alloc->alloc(sizeof(const VkExtensionProperties));
+        deepcopy_VkExtensionProperties(alloc, rootType, from->pStdExtensionVersion, (VkExtensionProperties*)(to->pStdExtensionVersion));
+    }
+}
+
+void deepcopy_VkVideoEncodeH265SessionParametersAddInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionParametersAddInfoEXT* from,
+    VkVideoEncodeH265SessionParametersAddInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pVpsStd = nullptr;
+    if (from->pVpsStd)
+    {
+        to->pVpsStd = (StdVideoH265VideoParameterSet*)alloc->dupArray(from->pVpsStd, from->vpsStdCount * sizeof(const StdVideoH265VideoParameterSet));
+    }
+    to->pSpsStd = nullptr;
+    if (from->pSpsStd)
+    {
+        to->pSpsStd = (StdVideoH265SequenceParameterSet*)alloc->dupArray(from->pSpsStd, from->spsStdCount * sizeof(const StdVideoH265SequenceParameterSet));
+    }
+    to->pPpsStd = nullptr;
+    if (from->pPpsStd)
+    {
+        to->pPpsStd = (StdVideoH265PictureParameterSet*)alloc->dupArray(from->pPpsStd, from->ppsStdCount * sizeof(const StdVideoH265PictureParameterSet));
+    }
+}
+
+void deepcopy_VkVideoEncodeH265SessionParametersCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionParametersCreateInfoEXT* from,
+    VkVideoEncodeH265SessionParametersCreateInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pParametersAddInfo = nullptr;
+    if (from->pParametersAddInfo)
+    {
+        to->pParametersAddInfo = (VkVideoEncodeH265SessionParametersAddInfoEXT*)alloc->alloc(sizeof(const VkVideoEncodeH265SessionParametersAddInfoEXT));
+        deepcopy_VkVideoEncodeH265SessionParametersAddInfoEXT(alloc, rootType, from->pParametersAddInfo, (VkVideoEncodeH265SessionParametersAddInfoEXT*)(to->pParametersAddInfo));
+    }
+}
+
+void deepcopy_VkVideoEncodeH265DpbSlotInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH265DpbSlotInfoEXT* from,
+    VkVideoEncodeH265DpbSlotInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pStdReferenceInfo = nullptr;
+    if (from->pStdReferenceInfo)
+    {
+        to->pStdReferenceInfo = (StdVideoEncodeH265ReferenceInfo*)alloc->dupArray(from->pStdReferenceInfo, sizeof(const StdVideoEncodeH265ReferenceInfo));
+    }
+}
+
+void deepcopy_VkVideoEncodeH265ReferenceListsEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH265ReferenceListsEXT* from,
+    VkVideoEncodeH265ReferenceListsEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    if (from)
+    {
+        to->pReferenceList0Entries = nullptr;
+        if (from->pReferenceList0Entries)
+        {
+            to->pReferenceList0Entries = (VkVideoEncodeH265DpbSlotInfoEXT*)alloc->alloc(from->referenceList0EntryCount * sizeof(const VkVideoEncodeH265DpbSlotInfoEXT));
+            to->referenceList0EntryCount = from->referenceList0EntryCount;
+            for (uint32_t i = 0; i < (uint32_t)from->referenceList0EntryCount; ++i)
+            {
+                deepcopy_VkVideoEncodeH265DpbSlotInfoEXT(alloc, rootType, from->pReferenceList0Entries + i, (VkVideoEncodeH265DpbSlotInfoEXT*)(to->pReferenceList0Entries + i));
+            }
+        }
+    }
+    if (from)
+    {
+        to->pReferenceList1Entries = nullptr;
+        if (from->pReferenceList1Entries)
+        {
+            to->pReferenceList1Entries = (VkVideoEncodeH265DpbSlotInfoEXT*)alloc->alloc(from->referenceList1EntryCount * sizeof(const VkVideoEncodeH265DpbSlotInfoEXT));
+            to->referenceList1EntryCount = from->referenceList1EntryCount;
+            for (uint32_t i = 0; i < (uint32_t)from->referenceList1EntryCount; ++i)
+            {
+                deepcopy_VkVideoEncodeH265DpbSlotInfoEXT(alloc, rootType, from->pReferenceList1Entries + i, (VkVideoEncodeH265DpbSlotInfoEXT*)(to->pReferenceList1Entries + i));
+            }
+        }
+    }
+    to->pReferenceModifications = nullptr;
+    if (from->pReferenceModifications)
+    {
+        to->pReferenceModifications = (StdVideoEncodeH265ReferenceModifications*)alloc->dupArray(from->pReferenceModifications, sizeof(const StdVideoEncodeH265ReferenceModifications));
+    }
+}
+
+void deepcopy_VkVideoEncodeH265NaluSliceEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH265NaluSliceEXT* from,
+    VkVideoEncodeH265NaluSliceEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pReferenceFinalLists = nullptr;
+    if (from->pReferenceFinalLists)
+    {
+        to->pReferenceFinalLists = (VkVideoEncodeH265ReferenceListsEXT*)alloc->alloc(sizeof(const VkVideoEncodeH265ReferenceListsEXT));
+        deepcopy_VkVideoEncodeH265ReferenceListsEXT(alloc, rootType, from->pReferenceFinalLists, (VkVideoEncodeH265ReferenceListsEXT*)(to->pReferenceFinalLists));
+    }
+    to->pSliceHeaderStd = nullptr;
+    if (from->pSliceHeaderStd)
+    {
+        to->pSliceHeaderStd = (StdVideoEncodeH265SliceHeader*)alloc->dupArray(from->pSliceHeaderStd, sizeof(const StdVideoEncodeH265SliceHeader));
+    }
+}
+
+void deepcopy_VkVideoEncodeH265VclFrameInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH265VclFrameInfoEXT* from,
+    VkVideoEncodeH265VclFrameInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pReferenceFinalLists = nullptr;
+    if (from->pReferenceFinalLists)
+    {
+        to->pReferenceFinalLists = (VkVideoEncodeH265ReferenceListsEXT*)alloc->alloc(sizeof(const VkVideoEncodeH265ReferenceListsEXT));
+        deepcopy_VkVideoEncodeH265ReferenceListsEXT(alloc, rootType, from->pReferenceFinalLists, (VkVideoEncodeH265ReferenceListsEXT*)(to->pReferenceFinalLists));
+    }
+    if (from)
+    {
+        to->pNaluSliceEntries = nullptr;
+        if (from->pNaluSliceEntries)
+        {
+            to->pNaluSliceEntries = (VkVideoEncodeH265NaluSliceEXT*)alloc->alloc(from->naluSliceEntryCount * sizeof(const VkVideoEncodeH265NaluSliceEXT));
+            to->naluSliceEntryCount = from->naluSliceEntryCount;
+            for (uint32_t i = 0; i < (uint32_t)from->naluSliceEntryCount; ++i)
+            {
+                deepcopy_VkVideoEncodeH265NaluSliceEXT(alloc, rootType, from->pNaluSliceEntries + i, (VkVideoEncodeH265NaluSliceEXT*)(to->pNaluSliceEntries + i));
+            }
+        }
+    }
+    to->pCurrentPictureInfo = nullptr;
+    if (from->pCurrentPictureInfo)
+    {
+        to->pCurrentPictureInfo = (StdVideoEncodeH265PictureInfo*)alloc->dupArray(from->pCurrentPictureInfo, sizeof(const StdVideoEncodeH265PictureInfo));
+    }
+}
+
+void deepcopy_VkVideoEncodeH265EmitPictureParametersEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH265EmitPictureParametersEXT* from,
+    VkVideoEncodeH265EmitPictureParametersEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->ppsIdEntries = nullptr;
+    if (from->ppsIdEntries)
+    {
+        to->ppsIdEntries = (uint8_t*)alloc->dupArray(from->ppsIdEntries, from->ppsIdEntryCount * sizeof(const uint8_t));
+    }
+}
+
+void deepcopy_VkVideoEncodeH265ProfileEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH265ProfileEXT* from,
+    VkVideoEncodeH265ProfileEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_video_decode_h264
+void deepcopy_VkVideoDecodeH264ProfileEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH264ProfileEXT* from,
+    VkVideoDecodeH264ProfileEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkVideoDecodeH264CapabilitiesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH264CapabilitiesEXT* from,
+    VkVideoDecodeH264CapabilitiesEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkOffset2D(alloc, rootType, &from->fieldOffsetGranularity, (VkOffset2D*)(&to->fieldOffsetGranularity));
+    deepcopy_VkExtensionProperties(alloc, rootType, &from->stdExtensionVersion, (VkExtensionProperties*)(&to->stdExtensionVersion));
+}
+
+void deepcopy_VkVideoDecodeH264SessionCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionCreateInfoEXT* from,
+    VkVideoDecodeH264SessionCreateInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pStdExtensionVersion = nullptr;
+    if (from->pStdExtensionVersion)
+    {
+        to->pStdExtensionVersion = (VkExtensionProperties*)alloc->alloc(sizeof(const VkExtensionProperties));
+        deepcopy_VkExtensionProperties(alloc, rootType, from->pStdExtensionVersion, (VkExtensionProperties*)(to->pStdExtensionVersion));
+    }
+}
+
+void deepcopy_VkVideoDecodeH264SessionParametersAddInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionParametersAddInfoEXT* from,
+    VkVideoDecodeH264SessionParametersAddInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pSpsStd = nullptr;
+    if (from->pSpsStd)
+    {
+        to->pSpsStd = (StdVideoH264SequenceParameterSet*)alloc->dupArray(from->pSpsStd, from->spsStdCount * sizeof(const StdVideoH264SequenceParameterSet));
+    }
+    to->pPpsStd = nullptr;
+    if (from->pPpsStd)
+    {
+        to->pPpsStd = (StdVideoH264PictureParameterSet*)alloc->dupArray(from->pPpsStd, from->ppsStdCount * sizeof(const StdVideoH264PictureParameterSet));
+    }
+}
+
+void deepcopy_VkVideoDecodeH264SessionParametersCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionParametersCreateInfoEXT* from,
+    VkVideoDecodeH264SessionParametersCreateInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pParametersAddInfo = nullptr;
+    if (from->pParametersAddInfo)
+    {
+        to->pParametersAddInfo = (VkVideoDecodeH264SessionParametersAddInfoEXT*)alloc->alloc(sizeof(const VkVideoDecodeH264SessionParametersAddInfoEXT));
+        deepcopy_VkVideoDecodeH264SessionParametersAddInfoEXT(alloc, rootType, from->pParametersAddInfo, (VkVideoDecodeH264SessionParametersAddInfoEXT*)(to->pParametersAddInfo));
+    }
+}
+
+void deepcopy_VkVideoDecodeH264PictureInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH264PictureInfoEXT* from,
+    VkVideoDecodeH264PictureInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pStdPictureInfo = nullptr;
+    if (from->pStdPictureInfo)
+    {
+        to->pStdPictureInfo = (StdVideoDecodeH264PictureInfo*)alloc->dupArray(from->pStdPictureInfo, sizeof(const StdVideoDecodeH264PictureInfo));
+    }
+    to->pSlicesDataOffsets = nullptr;
+    if (from->pSlicesDataOffsets)
+    {
+        to->pSlicesDataOffsets = (uint32_t*)alloc->dupArray(from->pSlicesDataOffsets, from->slicesCount * sizeof(const uint32_t));
+    }
+}
+
+void deepcopy_VkVideoDecodeH264MvcEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH264MvcEXT* from,
+    VkVideoDecodeH264MvcEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pStdMvc = nullptr;
+    if (from->pStdMvc)
+    {
+        to->pStdMvc = (StdVideoDecodeH264Mvc*)alloc->dupArray(from->pStdMvc, sizeof(const StdVideoDecodeH264Mvc));
+    }
+}
+
+void deepcopy_VkVideoDecodeH264DpbSlotInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH264DpbSlotInfoEXT* from,
+    VkVideoDecodeH264DpbSlotInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pStdReferenceInfo = nullptr;
+    if (from->pStdReferenceInfo)
+    {
+        to->pStdReferenceInfo = (StdVideoDecodeH264ReferenceInfo*)alloc->dupArray(from->pStdReferenceInfo, sizeof(const StdVideoDecodeH264ReferenceInfo));
+    }
+}
+
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
 void deepcopy_VkTextureLODGatherFormatPropertiesAMD(
     Allocator* alloc,
@@ -11172,6 +13994,35 @@
     }
 }
 
+void deepcopy_VkAndroidHardwareBufferFormatProperties2ANDROID(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkAndroidHardwareBufferFormatProperties2ANDROID* from,
+    VkAndroidHardwareBufferFormatProperties2ANDROID* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkComponentMapping(alloc, rootType, &from->samplerYcbcrConversionComponents, (VkComponentMapping*)(&to->samplerYcbcrConversionComponents));
+}
+
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
 #endif
@@ -11924,6 +14775,58 @@
     }
 }
 
+void deepcopy_VkDrmFormatModifierProperties2EXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkDrmFormatModifierProperties2EXT* from,
+    VkDrmFormatModifierProperties2EXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+}
+
+void deepcopy_VkDrmFormatModifierPropertiesList2EXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkDrmFormatModifierPropertiesList2EXT* from,
+    VkDrmFormatModifierPropertiesList2EXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    if (from)
+    {
+        to->pDrmFormatModifierProperties = nullptr;
+        if (from->pDrmFormatModifierProperties)
+        {
+            to->pDrmFormatModifierProperties = (VkDrmFormatModifierProperties2EXT*)alloc->alloc(from->drmFormatModifierCount * sizeof(VkDrmFormatModifierProperties2EXT));
+            to->drmFormatModifierCount = from->drmFormatModifierCount;
+            for (uint32_t i = 0; i < (uint32_t)from->drmFormatModifierCount; ++i)
+            {
+                deepcopy_VkDrmFormatModifierProperties2EXT(alloc, rootType, from->pDrmFormatModifierProperties + i, (VkDrmFormatModifierProperties2EXT*)(to->pDrmFormatModifierProperties + i));
+            }
+        }
+    }
+}
+
 #endif
 #ifdef VK_EXT_validation_cache
 void deepcopy_VkValidationCacheCreateInfoEXT(
@@ -12924,6 +15827,242 @@
 }
 
 #endif
+#ifdef VK_EXT_video_decode_h265
+void deepcopy_VkVideoDecodeH265ProfileEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH265ProfileEXT* from,
+    VkVideoDecodeH265ProfileEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkVideoDecodeH265CapabilitiesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH265CapabilitiesEXT* from,
+    VkVideoDecodeH265CapabilitiesEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkExtensionProperties(alloc, rootType, &from->stdExtensionVersion, (VkExtensionProperties*)(&to->stdExtensionVersion));
+}
+
+void deepcopy_VkVideoDecodeH265SessionCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionCreateInfoEXT* from,
+    VkVideoDecodeH265SessionCreateInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pStdExtensionVersion = nullptr;
+    if (from->pStdExtensionVersion)
+    {
+        to->pStdExtensionVersion = (VkExtensionProperties*)alloc->alloc(sizeof(const VkExtensionProperties));
+        deepcopy_VkExtensionProperties(alloc, rootType, from->pStdExtensionVersion, (VkExtensionProperties*)(to->pStdExtensionVersion));
+    }
+}
+
+void deepcopy_VkVideoDecodeH265SessionParametersAddInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionParametersAddInfoEXT* from,
+    VkVideoDecodeH265SessionParametersAddInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pSpsStd = nullptr;
+    if (from->pSpsStd)
+    {
+        to->pSpsStd = (StdVideoH265SequenceParameterSet*)alloc->dupArray(from->pSpsStd, from->spsStdCount * sizeof(const StdVideoH265SequenceParameterSet));
+    }
+    to->pPpsStd = nullptr;
+    if (from->pPpsStd)
+    {
+        to->pPpsStd = (StdVideoH265PictureParameterSet*)alloc->dupArray(from->pPpsStd, from->ppsStdCount * sizeof(const StdVideoH265PictureParameterSet));
+    }
+}
+
+void deepcopy_VkVideoDecodeH265SessionParametersCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionParametersCreateInfoEXT* from,
+    VkVideoDecodeH265SessionParametersCreateInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pParametersAddInfo = nullptr;
+    if (from->pParametersAddInfo)
+    {
+        to->pParametersAddInfo = (VkVideoDecodeH265SessionParametersAddInfoEXT*)alloc->alloc(sizeof(const VkVideoDecodeH265SessionParametersAddInfoEXT));
+        deepcopy_VkVideoDecodeH265SessionParametersAddInfoEXT(alloc, rootType, from->pParametersAddInfo, (VkVideoDecodeH265SessionParametersAddInfoEXT*)(to->pParametersAddInfo));
+    }
+}
+
+void deepcopy_VkVideoDecodeH265PictureInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH265PictureInfoEXT* from,
+    VkVideoDecodeH265PictureInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pStdPictureInfo = nullptr;
+    if (from->pStdPictureInfo)
+    {
+        to->pStdPictureInfo = (StdVideoDecodeH265PictureInfo*)alloc->dupArray(from->pStdPictureInfo, sizeof(StdVideoDecodeH265PictureInfo));
+    }
+    to->pSlicesDataOffsets = nullptr;
+    if (from->pSlicesDataOffsets)
+    {
+        to->pSlicesDataOffsets = (uint32_t*)alloc->dupArray(from->pSlicesDataOffsets, from->slicesCount * sizeof(const uint32_t));
+    }
+}
+
+void deepcopy_VkVideoDecodeH265DpbSlotInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH265DpbSlotInfoEXT* from,
+    VkVideoDecodeH265DpbSlotInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pStdReferenceInfo = nullptr;
+    if (from->pStdReferenceInfo)
+    {
+        to->pStdReferenceInfo = (StdVideoDecodeH265ReferenceInfo*)alloc->dupArray(from->pStdReferenceInfo, sizeof(const StdVideoDecodeH265ReferenceInfo));
+    }
+}
+
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
 void deepcopy_VkDeviceMemoryOverallocationCreateInfoAMD(
     Allocator* alloc,
@@ -14594,6 +17733,92 @@
 }
 
 #endif
+#ifdef VK_EXT_provoking_vertex
+void deepcopy_VkPhysicalDeviceProvokingVertexFeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceProvokingVertexFeaturesEXT* from,
+    VkPhysicalDeviceProvokingVertexFeaturesEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceProvokingVertexPropertiesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceProvokingVertexPropertiesEXT* from,
+    VkPhysicalDeviceProvokingVertexPropertiesEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* from,
+    VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
 #ifdef VK_EXT_full_screen_exclusive
 void deepcopy_VkSurfaceFullScreenExclusiveInfoEXT(
     Allocator* alloc,
@@ -14888,6 +18113,36 @@
 }
 
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+void deepcopy_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* from,
+    VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 void deepcopy_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
     Allocator* alloc,
@@ -15283,6 +18538,70 @@
 }
 
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+void deepcopy_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceInheritedViewportScissorFeaturesNV* from,
+    VkPhysicalDeviceInheritedViewportScissorFeaturesNV* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkCommandBufferInheritanceViewportScissorInfoNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkCommandBufferInheritanceViewportScissorInfoNV* from,
+    VkCommandBufferInheritanceViewportScissorInfoNV* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pViewportDepths = nullptr;
+    if (from->pViewportDepths)
+    {
+        to->pViewportDepths = (VkViewport*)alloc->alloc(sizeof(const VkViewport));
+        deepcopy_VkViewport(alloc, rootType, from->pViewportDepths, (VkViewport*)(to->pViewportDepths));
+    }
+}
+
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
 void deepcopy_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
     Allocator* alloc,
@@ -15491,6 +18810,8 @@
 }
 
 #endif
+#ifdef VK_EXT_acquire_drm_display
+#endif
 #ifdef VK_EXT_robustness2
 void deepcopy_VkPhysicalDeviceRobustness2FeaturesEXT(
     Allocator* alloc,
@@ -15901,6 +19222,202 @@
 }
 
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+void deepcopy_VkDeviceOrHostAddressConstKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkDeviceOrHostAddressConstKHR* from,
+    VkDeviceOrHostAddressConstKHR* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    to->hostAddress = nullptr;
+    if (from->hostAddress)
+    {
+        to->hostAddress = (void*)alloc->dupArray(from->hostAddress, sizeof(const uint8_t));
+    }
+}
+
+void deepcopy_VkAccelerationStructureGeometryMotionTrianglesDataNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkAccelerationStructureGeometryMotionTrianglesDataNV* from,
+    VkAccelerationStructureGeometryMotionTrianglesDataNV* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkDeviceOrHostAddressConstKHR(alloc, rootType, &from->vertexData, (VkDeviceOrHostAddressConstKHR*)(&to->vertexData));
+}
+
+void deepcopy_VkAccelerationStructureMotionInfoNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInfoNV* from,
+    VkAccelerationStructureMotionInfoNV* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkAccelerationStructureMatrixMotionInstanceNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkAccelerationStructureMatrixMotionInstanceNV* from,
+    VkAccelerationStructureMatrixMotionInstanceNV* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    deepcopy_VkTransformMatrixKHR(alloc, rootType, &from->transformT0, (VkTransformMatrixKHR*)(&to->transformT0));
+    deepcopy_VkTransformMatrixKHR(alloc, rootType, &from->transformT1, (VkTransformMatrixKHR*)(&to->transformT1));
+}
+
+void deepcopy_VkSRTDataNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkSRTDataNV* from,
+    VkSRTDataNV* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+}
+
+void deepcopy_VkAccelerationStructureSRTMotionInstanceNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkAccelerationStructureSRTMotionInstanceNV* from,
+    VkAccelerationStructureSRTMotionInstanceNV* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    deepcopy_VkSRTDataNV(alloc, rootType, &from->transformT0, (VkSRTDataNV*)(&to->transformT0));
+    deepcopy_VkSRTDataNV(alloc, rootType, &from->transformT1, (VkSRTDataNV*)(&to->transformT1));
+}
+
+void deepcopy_VkAccelerationStructureMotionInstanceDataNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInstanceDataNV* from,
+    VkAccelerationStructureMotionInstanceDataNV* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    deepcopy_VkAccelerationStructureInstanceKHR(alloc, rootType, &from->staticInstance, (VkAccelerationStructureInstanceKHR*)(&to->staticInstance));
+    deepcopy_VkAccelerationStructureMatrixMotionInstanceNV(alloc, rootType, &from->matrixMotionInstance, (VkAccelerationStructureMatrixMotionInstanceNV*)(&to->matrixMotionInstance));
+    deepcopy_VkAccelerationStructureSRTMotionInstanceNV(alloc, rootType, &from->srtMotionInstance, (VkAccelerationStructureSRTMotionInstanceNV*)(&to->srtMotionInstance));
+}
+
+void deepcopy_VkAccelerationStructureMotionInstanceNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInstanceNV* from,
+    VkAccelerationStructureMotionInstanceNV* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    deepcopy_VkAccelerationStructureMotionInstanceDataNV(alloc, rootType, &from->data, (VkAccelerationStructureMotionInstanceDataNV*)(&to->data));
+}
+
+void deepcopy_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* from,
+    VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+void deepcopy_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* from,
+    VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
 #ifdef VK_EXT_fragment_density_map2
 void deepcopy_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
     Allocator* alloc,
@@ -16049,6 +19566,38 @@
 }
 
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+void deepcopy_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* from,
+    VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_acquire_winrt_display
+#endif
 #ifdef VK_EXT_directfb_surface
 void deepcopy_VkDirectFBSurfaceCreateInfoEXT(
     Allocator* alloc,
@@ -16089,6 +19638,997 @@
 }
 
 #endif
+#ifdef VK_VALVE_mutable_descriptor_type
+void deepcopy_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* from,
+    VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkMutableDescriptorTypeListVALVE(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkMutableDescriptorTypeListVALVE* from,
+    VkMutableDescriptorTypeListVALVE* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    to->pDescriptorTypes = nullptr;
+    if (from->pDescriptorTypes)
+    {
+        to->pDescriptorTypes = (VkDescriptorType*)alloc->dupArray(from->pDescriptorTypes, from->descriptorTypeCount * sizeof(const VkDescriptorType));
+    }
+}
+
+void deepcopy_VkMutableDescriptorTypeCreateInfoVALVE(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkMutableDescriptorTypeCreateInfoVALVE* from,
+    VkMutableDescriptorTypeCreateInfoVALVE* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    if (from)
+    {
+        to->pMutableDescriptorTypeLists = nullptr;
+        if (from->pMutableDescriptorTypeLists)
+        {
+            to->pMutableDescriptorTypeLists = (VkMutableDescriptorTypeListVALVE*)alloc->alloc(from->mutableDescriptorTypeListCount * sizeof(const VkMutableDescriptorTypeListVALVE));
+            to->mutableDescriptorTypeListCount = from->mutableDescriptorTypeListCount;
+            for (uint32_t i = 0; i < (uint32_t)from->mutableDescriptorTypeListCount; ++i)
+            {
+                deepcopy_VkMutableDescriptorTypeListVALVE(alloc, rootType, from->pMutableDescriptorTypeLists + i, (VkMutableDescriptorTypeListVALVE*)(to->pMutableDescriptorTypeLists + i));
+            }
+        }
+    }
+}
+
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+void deepcopy_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* from,
+    VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkVertexInputBindingDescription2EXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVertexInputBindingDescription2EXT* from,
+    VkVertexInputBindingDescription2EXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkVertexInputAttributeDescription2EXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVertexInputAttributeDescription2EXT* from,
+    VkVertexInputAttributeDescription2EXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_physical_device_drm
+void deepcopy_VkPhysicalDeviceDrmPropertiesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceDrmPropertiesEXT* from,
+    VkPhysicalDeviceDrmPropertiesEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+void deepcopy_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* from,
+    VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_FUCHSIA_external_memory
+void deepcopy_VkImportMemoryZirconHandleInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkImportMemoryZirconHandleInfoFUCHSIA* from,
+    VkImportMemoryZirconHandleInfoFUCHSIA* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkMemoryZirconHandlePropertiesFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkMemoryZirconHandlePropertiesFUCHSIA* from,
+    VkMemoryZirconHandlePropertiesFUCHSIA* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkMemoryGetZirconHandleInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkMemoryGetZirconHandleInfoFUCHSIA* from,
+    VkMemoryGetZirconHandleInfoFUCHSIA* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+void deepcopy_VkImportSemaphoreZirconHandleInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkImportSemaphoreZirconHandleInfoFUCHSIA* from,
+    VkImportSemaphoreZirconHandleInfoFUCHSIA* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkSemaphoreGetZirconHandleInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkSemaphoreGetZirconHandleInfoFUCHSIA* from,
+    VkSemaphoreGetZirconHandleInfoFUCHSIA* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+void deepcopy_VkBufferCollectionCreateInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkBufferCollectionCreateInfoFUCHSIA* from,
+    VkBufferCollectionCreateInfoFUCHSIA* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkImportMemoryBufferCollectionFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkImportMemoryBufferCollectionFUCHSIA* from,
+    VkImportMemoryBufferCollectionFUCHSIA* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkBufferCollectionImageCreateInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkBufferCollectionImageCreateInfoFUCHSIA* from,
+    VkBufferCollectionImageCreateInfoFUCHSIA* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkBufferCollectionConstraintsInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkBufferCollectionConstraintsInfoFUCHSIA* from,
+    VkBufferCollectionConstraintsInfoFUCHSIA* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkBufferConstraintsInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkBufferConstraintsInfoFUCHSIA* from,
+    VkBufferConstraintsInfoFUCHSIA* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkBufferCreateInfo(alloc, rootType, &from->createInfo, (VkBufferCreateInfo*)(&to->createInfo));
+    deepcopy_VkBufferCollectionConstraintsInfoFUCHSIA(alloc, rootType, &from->bufferCollectionConstraints, (VkBufferCollectionConstraintsInfoFUCHSIA*)(&to->bufferCollectionConstraints));
+}
+
+void deepcopy_VkBufferCollectionBufferCreateInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkBufferCollectionBufferCreateInfoFUCHSIA* from,
+    VkBufferCollectionBufferCreateInfoFUCHSIA* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkSysmemColorSpaceFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkSysmemColorSpaceFUCHSIA* from,
+    VkSysmemColorSpaceFUCHSIA* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkBufferCollectionPropertiesFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkBufferCollectionPropertiesFUCHSIA* from,
+    VkBufferCollectionPropertiesFUCHSIA* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkSysmemColorSpaceFUCHSIA(alloc, rootType, &from->sysmemColorSpaceIndex, (VkSysmemColorSpaceFUCHSIA*)(&to->sysmemColorSpaceIndex));
+    deepcopy_VkComponentMapping(alloc, rootType, &from->samplerYcbcrConversionComponents, (VkComponentMapping*)(&to->samplerYcbcrConversionComponents));
+}
+
+void deepcopy_VkImageFormatConstraintsInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkImageFormatConstraintsInfoFUCHSIA* from,
+    VkImageFormatConstraintsInfoFUCHSIA* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkImageCreateInfo(alloc, rootType, &from->imageCreateInfo, (VkImageCreateInfo*)(&to->imageCreateInfo));
+    to->pColorSpaces = nullptr;
+    if (from->pColorSpaces)
+    {
+        to->pColorSpaces = (VkSysmemColorSpaceFUCHSIA*)alloc->alloc(sizeof(const VkSysmemColorSpaceFUCHSIA));
+        deepcopy_VkSysmemColorSpaceFUCHSIA(alloc, rootType, from->pColorSpaces, (VkSysmemColorSpaceFUCHSIA*)(to->pColorSpaces));
+    }
+}
+
+void deepcopy_VkImageConstraintsInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkImageConstraintsInfoFUCHSIA* from,
+    VkImageConstraintsInfoFUCHSIA* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    if (from)
+    {
+        to->pFormatConstraints = nullptr;
+        if (from->pFormatConstraints)
+        {
+            to->pFormatConstraints = (VkImageFormatConstraintsInfoFUCHSIA*)alloc->alloc(from->formatConstraintsCount * sizeof(const VkImageFormatConstraintsInfoFUCHSIA));
+            to->formatConstraintsCount = from->formatConstraintsCount;
+            for (uint32_t i = 0; i < (uint32_t)from->formatConstraintsCount; ++i)
+            {
+                deepcopy_VkImageFormatConstraintsInfoFUCHSIA(alloc, rootType, from->pFormatConstraints + i, (VkImageFormatConstraintsInfoFUCHSIA*)(to->pFormatConstraints + i));
+            }
+        }
+    }
+    deepcopy_VkBufferCollectionConstraintsInfoFUCHSIA(alloc, rootType, &from->bufferCollectionConstraints, (VkBufferCollectionConstraintsInfoFUCHSIA*)(&to->bufferCollectionConstraints));
+}
+
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+void deepcopy_VkSubpassShadingPipelineCreateInfoHUAWEI(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkSubpassShadingPipelineCreateInfoHUAWEI* from,
+    VkSubpassShadingPipelineCreateInfoHUAWEI* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* from,
+    VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* from,
+    VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+void deepcopy_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* from,
+    VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_external_memory_rdma
+void deepcopy_VkMemoryGetRemoteAddressInfoNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkMemoryGetRemoteAddressInfoNV* from,
+    VkMemoryGetRemoteAddressInfoNV* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* from,
+    VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+void deepcopy_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* from,
+    VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_QNX_screen_surface
+void deepcopy_VkScreenSurfaceCreateInfoQNX(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkScreenSurfaceCreateInfoQNX* from,
+    VkScreenSurfaceCreateInfoQNX* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->context = nullptr;
+    if (from->context)
+    {
+        to->context = (_screen_context*)alloc->dupArray(from->context, sizeof(_screen_context));
+    }
+    to->window = nullptr;
+    if (from->window)
+    {
+        to->window = (_screen_window*)alloc->dupArray(from->window, sizeof(_screen_window));
+    }
+}
+
+#endif
+#ifdef VK_EXT_color_write_enable
+void deepcopy_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceColorWriteEnableFeaturesEXT* from,
+    VkPhysicalDeviceColorWriteEnableFeaturesEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPipelineColorWriteCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPipelineColorWriteCreateInfoEXT* from,
+    VkPipelineColorWriteCreateInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    to->pColorWriteEnables = nullptr;
+    if (from->pColorWriteEnables)
+    {
+        to->pColorWriteEnables = (VkBool32*)alloc->dupArray(from->pColorWriteEnables, from->attachmentCount * sizeof(const VkBool32));
+    }
+}
+
+#endif
 #ifdef VK_GOOGLE_gfxstream
 void deepcopy_VkImportColorBufferGOOGLE(
     Allocator* alloc,
@@ -16175,6 +20715,236 @@
 }
 
 #endif
+#ifdef VK_EXT_global_priority_query
+void deepcopy_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* from,
+    VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkQueueFamilyGlobalPriorityPropertiesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkQueueFamilyGlobalPriorityPropertiesEXT* from,
+    VkQueueFamilyGlobalPriorityPropertiesEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    memcpy(to->priorities, from->priorities, VK_MAX_GLOBAL_PRIORITY_SIZE_EXT * sizeof(VkQueueGlobalPriorityEXT));
+}
+
+#endif
+#ifdef VK_EXT_multi_draw
+void deepcopy_VkPhysicalDeviceMultiDrawFeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMultiDrawFeaturesEXT* from,
+    VkPhysicalDeviceMultiDrawFeaturesEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceMultiDrawPropertiesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMultiDrawPropertiesEXT* from,
+    VkPhysicalDeviceMultiDrawPropertiesEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkMultiDrawInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkMultiDrawInfoEXT* from,
+    VkMultiDrawInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+}
+
+void deepcopy_VkMultiDrawIndexedInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkMultiDrawIndexedInfoEXT* from,
+    VkMultiDrawIndexedInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+}
+
+#endif
+#ifdef VK_EXT_load_store_op_none
+#endif
+#ifdef VK_EXT_border_color_swizzle
+void deepcopy_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* from,
+    VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkSamplerBorderColorComponentMappingCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkSamplerBorderColorComponentMappingCreateInfoEXT* from,
+    VkSamplerBorderColorComponentMappingCreateInfoEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkComponentMapping(alloc, rootType, &from->components, (VkComponentMapping*)(&to->components));
+}
+
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+void deepcopy_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* from,
+    VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* to)
+{
+    (void)alloc;
+    (void)rootType;
+    *to = *from;
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = from->sType;
+    }
+    const void* from_pNext = from;
+    size_t pNext_size = 0u;
+    while (!pNext_size && from_pNext)
+    {
+        from_pNext = static_cast<const vk_struct_common*>(from_pNext)->pNext;
+        pNext_size = goldfish_vk_extension_struct_size(rootType, from_pNext);
+    }
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)alloc->alloc(pNext_size);
+        deepcopy_extension_struct(alloc, rootType, from_pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
 #ifdef VK_KHR_acceleration_structure
 void deepcopy_VkDeviceOrHostAddressKHR(
     Allocator* alloc,
@@ -16192,22 +20962,6 @@
     }
 }
 
-void deepcopy_VkDeviceOrHostAddressConstKHR(
-    Allocator* alloc,
-    VkStructureType rootType,
-    const VkDeviceOrHostAddressConstKHR* from,
-    VkDeviceOrHostAddressConstKHR* to)
-{
-    (void)alloc;
-    (void)rootType;
-    *to = *from;
-    to->hostAddress = nullptr;
-    if (from->hostAddress)
-    {
-        to->hostAddress = (void*)alloc->dupArray(from->hostAddress, sizeof(const uint8_t));
-    }
-}
-
 void deepcopy_VkAccelerationStructureBuildRangeInfoKHR(
     Allocator* alloc,
     VkStructureType rootType,
@@ -17360,6 +22114,60 @@
             break;
         }
 #endif
+#ifdef VK_KHR_video_queue
+        case VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR:
+        {
+            deepcopy_VkVideoQueueFamilyProperties2KHR(alloc, rootType, reinterpret_cast<const VkVideoQueueFamilyProperties2KHR*>(structExtension), reinterpret_cast<VkVideoQueueFamilyProperties2KHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR:
+        {
+            deepcopy_VkVideoProfileKHR(alloc, rootType, reinterpret_cast<const VkVideoProfileKHR*>(structExtension), reinterpret_cast<VkVideoProfileKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR:
+        {
+            deepcopy_VkVideoProfilesKHR(alloc, rootType, reinterpret_cast<const VkVideoProfilesKHR*>(structExtension), reinterpret_cast<VkVideoProfilesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_dynamic_rendering
+        case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR:
+        {
+            deepcopy_VkPipelineRenderingCreateInfoKHR(alloc, rootType, reinterpret_cast<const VkPipelineRenderingCreateInfoKHR*>(structExtension), reinterpret_cast<VkPipelineRenderingCreateInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR:
+        {
+            deepcopy_VkPhysicalDeviceDynamicRenderingFeaturesKHR(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceDynamicRenderingFeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDeviceDynamicRenderingFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR:
+        {
+            deepcopy_VkCommandBufferInheritanceRenderingInfoKHR(alloc, rootType, reinterpret_cast<const VkCommandBufferInheritanceRenderingInfoKHR*>(structExtension), reinterpret_cast<VkCommandBufferInheritanceRenderingInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
+        {
+            deepcopy_VkRenderingFragmentShadingRateAttachmentInfoKHR(alloc, rootType, reinterpret_cast<const VkRenderingFragmentShadingRateAttachmentInfoKHR*>(structExtension), reinterpret_cast<VkRenderingFragmentShadingRateAttachmentInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:
+        {
+            deepcopy_VkRenderingFragmentDensityMapAttachmentInfoEXT(alloc, rootType, reinterpret_cast<const VkRenderingFragmentDensityMapAttachmentInfoEXT*>(structExtension), reinterpret_cast<VkRenderingFragmentDensityMapAttachmentInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:
+        {
+            deepcopy_VkAttachmentSampleCountInfoAMD(alloc, rootType, reinterpret_cast<const VkAttachmentSampleCountInfoAMD*>(structExtension), reinterpret_cast<VkAttachmentSampleCountInfoAMD*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:
+        {
+            deepcopy_VkMultiviewPerViewAttributesInfoNVX(alloc, rootType, reinterpret_cast<const VkMultiviewPerViewAttributesInfoNVX*>(structExtension), reinterpret_cast<VkMultiviewPerViewAttributesInfoNVX*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_KHR_external_memory_win32
         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
         {
@@ -17503,6 +22311,13 @@
             break;
         }
 #endif
+#ifdef VK_KHR_present_wait
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:
+        {
+            deepcopy_VkPhysicalDevicePresentWaitFeaturesKHR(alloc, rootType, reinterpret_cast<const VkPhysicalDevicePresentWaitFeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDevicePresentWaitFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_KHR_pipeline_executable_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
         {
@@ -17510,6 +22325,94 @@
             break;
         }
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR:
+        {
+            deepcopy_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR:
+        {
+            deepcopy_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_present_id
+        case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:
+        {
+            deepcopy_VkPresentIdKHR(alloc, rootType, reinterpret_cast<const VkPresentIdKHR*>(structExtension), reinterpret_cast<VkPresentIdKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:
+        {
+            deepcopy_VkPhysicalDevicePresentIdFeaturesKHR(alloc, rootType, reinterpret_cast<const VkPhysicalDevicePresentIdFeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDevicePresentIdFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_video_encode_queue
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:
+        {
+            deepcopy_VkVideoEncodeRateControlInfoKHR(alloc, rootType, reinterpret_cast<const VkVideoEncodeRateControlInfoKHR*>(structExtension), reinterpret_cast<VkVideoEncodeRateControlInfoKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_synchronization2
+        case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR:
+        {
+            deepcopy_VkMemoryBarrier2KHR(alloc, rootType, reinterpret_cast<const VkMemoryBarrier2KHR*>(structExtension), reinterpret_cast<VkMemoryBarrier2KHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR:
+        {
+            deepcopy_VkPhysicalDeviceSynchronization2FeaturesKHR(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceSynchronization2FeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDeviceSynchronization2FeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:
+        {
+            deepcopy_VkQueueFamilyCheckpointProperties2NV(alloc, rootType, reinterpret_cast<const VkQueueFamilyCheckpointProperties2NV*>(structExtension), reinterpret_cast<VkQueueFamilyCheckpointProperties2NV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR:
+        {
+            deepcopy_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR:
+        {
+            deepcopy_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:
+        {
+            deepcopy_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_format_feature_flags2
+        case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR:
+        {
+            deepcopy_VkFormatProperties3KHR(alloc, rootType, reinterpret_cast<const VkFormatProperties3KHR*>(structExtension), reinterpret_cast<VkFormatProperties3KHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_maintenance4
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR:
+        {
+            deepcopy_VkPhysicalDeviceMaintenance4FeaturesKHR(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceMaintenance4FeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDeviceMaintenance4FeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR:
+        {
+            deepcopy_VkPhysicalDeviceMaintenance4PropertiesKHR(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceMaintenance4PropertiesKHR*>(structExtension), reinterpret_cast<VkPhysicalDeviceMaintenance4PropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_ANDROID_native_buffer
         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
         {
@@ -17565,6 +22468,122 @@
             break;
         }
 #endif
+#ifdef VK_EXT_video_encode_h264
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT:
+        {
+            deepcopy_VkVideoEncodeH264CapabilitiesEXT(alloc, rootType, reinterpret_cast<const VkVideoEncodeH264CapabilitiesEXT*>(structExtension), reinterpret_cast<VkVideoEncodeH264CapabilitiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT:
+        {
+            deepcopy_VkVideoEncodeH264SessionCreateInfoEXT(alloc, rootType, reinterpret_cast<const VkVideoEncodeH264SessionCreateInfoEXT*>(structExtension), reinterpret_cast<VkVideoEncodeH264SessionCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            deepcopy_VkVideoEncodeH264SessionParametersAddInfoEXT(alloc, rootType, reinterpret_cast<const VkVideoEncodeH264SessionParametersAddInfoEXT*>(structExtension), reinterpret_cast<VkVideoEncodeH264SessionParametersAddInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            deepcopy_VkVideoEncodeH264SessionParametersCreateInfoEXT(alloc, rootType, reinterpret_cast<const VkVideoEncodeH264SessionParametersCreateInfoEXT*>(structExtension), reinterpret_cast<VkVideoEncodeH264SessionParametersCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT:
+        {
+            deepcopy_VkVideoEncodeH264VclFrameInfoEXT(alloc, rootType, reinterpret_cast<const VkVideoEncodeH264VclFrameInfoEXT*>(structExtension), reinterpret_cast<VkVideoEncodeH264VclFrameInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT:
+        {
+            deepcopy_VkVideoEncodeH264EmitPictureParametersEXT(alloc, rootType, reinterpret_cast<const VkVideoEncodeH264EmitPictureParametersEXT*>(structExtension), reinterpret_cast<VkVideoEncodeH264EmitPictureParametersEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT:
+        {
+            deepcopy_VkVideoEncodeH264ProfileEXT(alloc, rootType, reinterpret_cast<const VkVideoEncodeH264ProfileEXT*>(structExtension), reinterpret_cast<VkVideoEncodeH264ProfileEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_video_encode_h265
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT:
+        {
+            deepcopy_VkVideoEncodeH265CapabilitiesEXT(alloc, rootType, reinterpret_cast<const VkVideoEncodeH265CapabilitiesEXT*>(structExtension), reinterpret_cast<VkVideoEncodeH265CapabilitiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT:
+        {
+            deepcopy_VkVideoEncodeH265SessionCreateInfoEXT(alloc, rootType, reinterpret_cast<const VkVideoEncodeH265SessionCreateInfoEXT*>(structExtension), reinterpret_cast<VkVideoEncodeH265SessionCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            deepcopy_VkVideoEncodeH265SessionParametersAddInfoEXT(alloc, rootType, reinterpret_cast<const VkVideoEncodeH265SessionParametersAddInfoEXT*>(structExtension), reinterpret_cast<VkVideoEncodeH265SessionParametersAddInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            deepcopy_VkVideoEncodeH265SessionParametersCreateInfoEXT(alloc, rootType, reinterpret_cast<const VkVideoEncodeH265SessionParametersCreateInfoEXT*>(structExtension), reinterpret_cast<VkVideoEncodeH265SessionParametersCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT:
+        {
+            deepcopy_VkVideoEncodeH265VclFrameInfoEXT(alloc, rootType, reinterpret_cast<const VkVideoEncodeH265VclFrameInfoEXT*>(structExtension), reinterpret_cast<VkVideoEncodeH265VclFrameInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT:
+        {
+            deepcopy_VkVideoEncodeH265EmitPictureParametersEXT(alloc, rootType, reinterpret_cast<const VkVideoEncodeH265EmitPictureParametersEXT*>(structExtension), reinterpret_cast<VkVideoEncodeH265EmitPictureParametersEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT:
+        {
+            deepcopy_VkVideoEncodeH265ProfileEXT(alloc, rootType, reinterpret_cast<const VkVideoEncodeH265ProfileEXT*>(structExtension), reinterpret_cast<VkVideoEncodeH265ProfileEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_video_decode_h264
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT:
+        {
+            deepcopy_VkVideoDecodeH264ProfileEXT(alloc, rootType, reinterpret_cast<const VkVideoDecodeH264ProfileEXT*>(structExtension), reinterpret_cast<VkVideoDecodeH264ProfileEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT:
+        {
+            deepcopy_VkVideoDecodeH264CapabilitiesEXT(alloc, rootType, reinterpret_cast<const VkVideoDecodeH264CapabilitiesEXT*>(structExtension), reinterpret_cast<VkVideoDecodeH264CapabilitiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT:
+        {
+            deepcopy_VkVideoDecodeH264SessionCreateInfoEXT(alloc, rootType, reinterpret_cast<const VkVideoDecodeH264SessionCreateInfoEXT*>(structExtension), reinterpret_cast<VkVideoDecodeH264SessionCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            deepcopy_VkVideoDecodeH264SessionParametersAddInfoEXT(alloc, rootType, reinterpret_cast<const VkVideoDecodeH264SessionParametersAddInfoEXT*>(structExtension), reinterpret_cast<VkVideoDecodeH264SessionParametersAddInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            deepcopy_VkVideoDecodeH264SessionParametersCreateInfoEXT(alloc, rootType, reinterpret_cast<const VkVideoDecodeH264SessionParametersCreateInfoEXT*>(structExtension), reinterpret_cast<VkVideoDecodeH264SessionParametersCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT:
+        {
+            deepcopy_VkVideoDecodeH264PictureInfoEXT(alloc, rootType, reinterpret_cast<const VkVideoDecodeH264PictureInfoEXT*>(structExtension), reinterpret_cast<VkVideoDecodeH264PictureInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT:
+        {
+            deepcopy_VkVideoDecodeH264MvcEXT(alloc, rootType, reinterpret_cast<const VkVideoDecodeH264MvcEXT*>(structExtension), reinterpret_cast<VkVideoDecodeH264MvcEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT:
+        {
+            deepcopy_VkVideoDecodeH264DpbSlotInfoEXT(alloc, rootType, reinterpret_cast<const VkVideoDecodeH264DpbSlotInfoEXT*>(structExtension), reinterpret_cast<VkVideoDecodeH264DpbSlotInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
@@ -17747,6 +22766,11 @@
             deepcopy_VkExternalFormatANDROID(alloc, rootType, reinterpret_cast<const VkExternalFormatANDROID*>(structExtension), reinterpret_cast<VkExternalFormatANDROID*>(structExtension_out));
             break;
         }
+        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:
+        {
+            deepcopy_VkAndroidHardwareBufferFormatProperties2ANDROID(alloc, rootType, reinterpret_cast<const VkAndroidHardwareBufferFormatProperties2ANDROID*>(structExtension), reinterpret_cast<VkAndroidHardwareBufferFormatProperties2ANDROID*>(structExtension_out));
+            break;
+        }
 #endif
 #ifdef VK_EXT_inline_uniform_block
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:
@@ -17856,6 +22880,11 @@
             deepcopy_VkImageDrmFormatModifierExplicitCreateInfoEXT(alloc, rootType, reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>(structExtension), reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>(structExtension_out));
             break;
         }
+        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:
+        {
+            deepcopy_VkDrmFormatModifierPropertiesList2EXT(alloc, rootType, reinterpret_cast<const VkDrmFormatModifierPropertiesList2EXT*>(structExtension), reinterpret_cast<VkDrmFormatModifierPropertiesList2EXT*>(structExtension_out));
+            break;
+        }
 #endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
@@ -17955,6 +22984,43 @@
             break;
         }
 #endif
+#ifdef VK_EXT_video_decode_h265
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT:
+        {
+            deepcopy_VkVideoDecodeH265ProfileEXT(alloc, rootType, reinterpret_cast<const VkVideoDecodeH265ProfileEXT*>(structExtension), reinterpret_cast<VkVideoDecodeH265ProfileEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT:
+        {
+            deepcopy_VkVideoDecodeH265CapabilitiesEXT(alloc, rootType, reinterpret_cast<const VkVideoDecodeH265CapabilitiesEXT*>(structExtension), reinterpret_cast<VkVideoDecodeH265CapabilitiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT:
+        {
+            deepcopy_VkVideoDecodeH265SessionCreateInfoEXT(alloc, rootType, reinterpret_cast<const VkVideoDecodeH265SessionCreateInfoEXT*>(structExtension), reinterpret_cast<VkVideoDecodeH265SessionCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            deepcopy_VkVideoDecodeH265SessionParametersAddInfoEXT(alloc, rootType, reinterpret_cast<const VkVideoDecodeH265SessionParametersAddInfoEXT*>(structExtension), reinterpret_cast<VkVideoDecodeH265SessionParametersAddInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            deepcopy_VkVideoDecodeH265SessionParametersCreateInfoEXT(alloc, rootType, reinterpret_cast<const VkVideoDecodeH265SessionParametersCreateInfoEXT*>(structExtension), reinterpret_cast<VkVideoDecodeH265SessionParametersCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT:
+        {
+            deepcopy_VkVideoDecodeH265PictureInfoEXT(alloc, rootType, reinterpret_cast<const VkVideoDecodeH265PictureInfoEXT*>(structExtension), reinterpret_cast<VkVideoDecodeH265PictureInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT:
+        {
+            deepcopy_VkVideoDecodeH265DpbSlotInfoEXT(alloc, rootType, reinterpret_cast<const VkVideoDecodeH265DpbSlotInfoEXT*>(structExtension), reinterpret_cast<VkVideoDecodeH265DpbSlotInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
         case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
         {
@@ -18277,6 +23343,23 @@
             break;
         }
 #endif
+#ifdef VK_EXT_provoking_vertex
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceProvokingVertexFeaturesEXT(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceProvokingVertexFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceProvokingVertexFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceProvokingVertexPropertiesEXT(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceProvokingVertexPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceProvokingVertexPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:
+        {
+            deepcopy_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(alloc, rootType, reinterpret_cast<const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(structExtension), reinterpret_cast<VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_full_screen_exclusive
         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
         {
@@ -18332,6 +23415,13 @@
             break;
         }
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT*>(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:
         {
@@ -18356,6 +23446,18 @@
             break;
         }
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:
+        {
+            deepcopy_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceInheritedViewportScissorFeaturesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceInheritedViewportScissorFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:
+        {
+            deepcopy_VkCommandBufferInheritanceViewportScissorInfoNV(alloc, rootType, reinterpret_cast<const VkCommandBufferInheritanceViewportScissorInfoNV*>(structExtension), reinterpret_cast<VkCommandBufferInheritanceViewportScissorInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
         {
@@ -18469,6 +23571,30 @@
             break;
         }
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:
+        {
+            deepcopy_VkAccelerationStructureGeometryMotionTrianglesDataNV(alloc, rootType, reinterpret_cast<const VkAccelerationStructureGeometryMotionTrianglesDataNV*>(structExtension), reinterpret_cast<VkAccelerationStructureGeometryMotionTrianglesDataNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:
+        {
+            deepcopy_VkAccelerationStructureMotionInfoNV(alloc, rootType, reinterpret_cast<const VkAccelerationStructureMotionInfoNV*>(structExtension), reinterpret_cast<VkAccelerationStructureMotionInfoNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:
+        {
+            deepcopy_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_fragment_density_map2
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
         {
@@ -18502,6 +23628,120 @@
             break;
         }
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_VALVE_mutable_descriptor_type
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE:
+        {
+            deepcopy_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE*>(structExtension), reinterpret_cast<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE:
+        {
+            deepcopy_VkMutableDescriptorTypeCreateInfoVALVE(alloc, rootType, reinterpret_cast<const VkMutableDescriptorTypeCreateInfoVALVE*>(structExtension), reinterpret_cast<VkMutableDescriptorTypeCreateInfoVALVE*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_physical_device_drm
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceDrmPropertiesEXT(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceDrmPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceDrmPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(alloc, rootType, reinterpret_cast<const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_FUCHSIA_external_memory
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:
+        {
+            deepcopy_VkImportMemoryZirconHandleInfoFUCHSIA(alloc, rootType, reinterpret_cast<const VkImportMemoryZirconHandleInfoFUCHSIA*>(structExtension), reinterpret_cast<VkImportMemoryZirconHandleInfoFUCHSIA*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:
+        {
+            deepcopy_VkImportMemoryBufferCollectionFUCHSIA(alloc, rootType, reinterpret_cast<const VkImportMemoryBufferCollectionFUCHSIA*>(structExtension), reinterpret_cast<VkImportMemoryBufferCollectionFUCHSIA*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:
+        {
+            deepcopy_VkBufferCollectionImageCreateInfoFUCHSIA(alloc, rootType, reinterpret_cast<const VkBufferCollectionImageCreateInfoFUCHSIA*>(structExtension), reinterpret_cast<VkBufferCollectionImageCreateInfoFUCHSIA*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:
+        {
+            deepcopy_VkBufferCollectionBufferCreateInfoFUCHSIA(alloc, rootType, reinterpret_cast<const VkBufferCollectionBufferCreateInfoFUCHSIA*>(structExtension), reinterpret_cast<VkBufferCollectionBufferCreateInfoFUCHSIA*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+        case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:
+        {
+            deepcopy_VkSubpassShadingPipelineCreateInfoHUAWEI(alloc, rootType, reinterpret_cast<const VkSubpassShadingPipelineCreateInfoHUAWEI*>(structExtension), reinterpret_cast<VkSubpassShadingPipelineCreateInfoHUAWEI*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:
+        {
+            deepcopy_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI*>(structExtension), reinterpret_cast<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:
+        {
+            deepcopy_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI*>(structExtension), reinterpret_cast<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:
+        {
+            deepcopy_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI*>(structExtension), reinterpret_cast<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_external_memory_rdma
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:
+        {
+            deepcopy_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_color_write_enable
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceColorWriteEnableFeaturesEXT(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:
+        {
+            deepcopy_VkPipelineColorWriteCreateInfoEXT(alloc, rootType, reinterpret_cast<const VkPipelineColorWriteCreateInfoEXT*>(structExtension), reinterpret_cast<VkPipelineColorWriteCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_GOOGLE_gfxstream
         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
         {
@@ -18519,6 +23759,49 @@
             break;
         }
 #endif
+#ifdef VK_EXT_global_priority_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT:
+        {
+            deepcopy_VkQueueFamilyGlobalPriorityPropertiesEXT(alloc, rootType, reinterpret_cast<const VkQueueFamilyGlobalPriorityPropertiesEXT*>(structExtension), reinterpret_cast<VkQueueFamilyGlobalPriorityPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_multi_draw
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceMultiDrawFeaturesEXT(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceMultiDrawFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceMultiDrawFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceMultiDrawPropertiesEXT(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceMultiDrawPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceMultiDrawPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_border_color_swizzle
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(alloc, rootType, reinterpret_cast<const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:
+        {
+            deepcopy_VkSamplerBorderColorComponentMappingCreateInfoEXT(alloc, rootType, reinterpret_cast<const VkSamplerBorderColorComponentMappingCreateInfoEXT*>(structExtension), reinterpret_cast<VkSamplerBorderColorComponentMappingCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(alloc, rootType, reinterpret_cast<const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_KHR_acceleration_structure
         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
         {
diff --git a/system/vulkan_enc/goldfish_vk_deepcopy_guest.h b/system/vulkan_enc/goldfish_vk_deepcopy_guest.h
index 835ba7e..37989e8 100644
--- a/system/vulkan_enc/goldfish_vk_deepcopy_guest.h
+++ b/system/vulkan_enc/goldfish_vk_deepcopy_guest.h
@@ -128,6 +128,12 @@
     const VkMemoryBarrier* from,
     VkMemoryBarrier* to);
 
+void deepcopy_VkPipelineCacheHeaderVersionOne(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPipelineCacheHeaderVersionOne* from,
+    VkPipelineCacheHeaderVersionOne* to);
+
 void deepcopy_VkAllocationCallbacks(
     Allocator* alloc,
     VkStructureType rootType,
@@ -1579,6 +1585,170 @@
 #endif
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
+#ifdef VK_KHR_video_queue
+void deepcopy_VkVideoQueueFamilyProperties2KHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoQueueFamilyProperties2KHR* from,
+    VkVideoQueueFamilyProperties2KHR* to);
+
+void deepcopy_VkVideoProfileKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoProfileKHR* from,
+    VkVideoProfileKHR* to);
+
+void deepcopy_VkVideoProfilesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoProfilesKHR* from,
+    VkVideoProfilesKHR* to);
+
+void deepcopy_VkVideoCapabilitiesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoCapabilitiesKHR* from,
+    VkVideoCapabilitiesKHR* to);
+
+void deepcopy_VkPhysicalDeviceVideoFormatInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceVideoFormatInfoKHR* from,
+    VkPhysicalDeviceVideoFormatInfoKHR* to);
+
+void deepcopy_VkVideoFormatPropertiesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoFormatPropertiesKHR* from,
+    VkVideoFormatPropertiesKHR* to);
+
+void deepcopy_VkVideoPictureResourceKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoPictureResourceKHR* from,
+    VkVideoPictureResourceKHR* to);
+
+void deepcopy_VkVideoReferenceSlotKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoReferenceSlotKHR* from,
+    VkVideoReferenceSlotKHR* to);
+
+void deepcopy_VkVideoGetMemoryPropertiesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoGetMemoryPropertiesKHR* from,
+    VkVideoGetMemoryPropertiesKHR* to);
+
+void deepcopy_VkVideoBindMemoryKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoBindMemoryKHR* from,
+    VkVideoBindMemoryKHR* to);
+
+void deepcopy_VkVideoSessionCreateInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoSessionCreateInfoKHR* from,
+    VkVideoSessionCreateInfoKHR* to);
+
+void deepcopy_VkVideoSessionParametersCreateInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoSessionParametersCreateInfoKHR* from,
+    VkVideoSessionParametersCreateInfoKHR* to);
+
+void deepcopy_VkVideoSessionParametersUpdateInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoSessionParametersUpdateInfoKHR* from,
+    VkVideoSessionParametersUpdateInfoKHR* to);
+
+void deepcopy_VkVideoBeginCodingInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoBeginCodingInfoKHR* from,
+    VkVideoBeginCodingInfoKHR* to);
+
+void deepcopy_VkVideoEndCodingInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEndCodingInfoKHR* from,
+    VkVideoEndCodingInfoKHR* to);
+
+void deepcopy_VkVideoCodingControlInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoCodingControlInfoKHR* from,
+    VkVideoCodingControlInfoKHR* to);
+
+#endif
+#ifdef VK_KHR_video_decode_queue
+void deepcopy_VkVideoDecodeInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeInfoKHR* from,
+    VkVideoDecodeInfoKHR* to);
+
+#endif
+#ifdef VK_KHR_dynamic_rendering
+void deepcopy_VkRenderingAttachmentInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkRenderingAttachmentInfoKHR* from,
+    VkRenderingAttachmentInfoKHR* to);
+
+void deepcopy_VkRenderingInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkRenderingInfoKHR* from,
+    VkRenderingInfoKHR* to);
+
+void deepcopy_VkPipelineRenderingCreateInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPipelineRenderingCreateInfoKHR* from,
+    VkPipelineRenderingCreateInfoKHR* to);
+
+void deepcopy_VkPhysicalDeviceDynamicRenderingFeaturesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceDynamicRenderingFeaturesKHR* from,
+    VkPhysicalDeviceDynamicRenderingFeaturesKHR* to);
+
+void deepcopy_VkCommandBufferInheritanceRenderingInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkCommandBufferInheritanceRenderingInfoKHR* from,
+    VkCommandBufferInheritanceRenderingInfoKHR* to);
+
+void deepcopy_VkRenderingFragmentShadingRateAttachmentInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkRenderingFragmentShadingRateAttachmentInfoKHR* from,
+    VkRenderingFragmentShadingRateAttachmentInfoKHR* to);
+
+void deepcopy_VkRenderingFragmentDensityMapAttachmentInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkRenderingFragmentDensityMapAttachmentInfoEXT* from,
+    VkRenderingFragmentDensityMapAttachmentInfoEXT* to);
+
+void deepcopy_VkAttachmentSampleCountInfoAMD(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkAttachmentSampleCountInfoAMD* from,
+    VkAttachmentSampleCountInfoAMD* to);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkAttachmentSampleCountInfoAMD, deepcopy_VkAttachmentSampleCountInfoNV)
+
+void deepcopy_VkMultiviewPerViewAttributesInfoNVX(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkMultiviewPerViewAttributesInfoNVX* from,
+    VkMultiviewPerViewAttributesInfoNVX* to);
+
+#endif
 #ifdef VK_KHR_multiview
 DEFINE_ALIAS_FUNCTION(deepcopy_VkRenderPassMultiviewCreateInfo, deepcopy_VkRenderPassMultiviewCreateInfoKHR)
 
@@ -2183,6 +2353,14 @@
 DEFINE_ALIAS_FUNCTION(deepcopy_VkAttachmentDescriptionStencilLayout, deepcopy_VkAttachmentDescriptionStencilLayoutKHR)
 
 #endif
+#ifdef VK_KHR_present_wait
+void deepcopy_VkPhysicalDevicePresentWaitFeaturesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDevicePresentWaitFeaturesKHR* from,
+    VkPhysicalDevicePresentWaitFeaturesKHR* to);
+
+#endif
 #ifdef VK_KHR_uniform_buffer_standard_layout
 DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceUniformBufferStandardLayoutFeatures, deepcopy_VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR)
 
@@ -2245,6 +2423,20 @@
     VkPipelineExecutableInternalRepresentationKHR* to);
 
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+void deepcopy_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* from,
+    VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* to);
+
+void deepcopy_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* from,
+    VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* to);
+
+#endif
 #ifdef VK_KHR_pipeline_library
 void deepcopy_VkPipelineLibraryCreateInfoKHR(
     Allocator* alloc,
@@ -2255,6 +2447,120 @@
 #endif
 #ifdef VK_KHR_shader_non_semantic_info
 #endif
+#ifdef VK_KHR_present_id
+void deepcopy_VkPresentIdKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPresentIdKHR* from,
+    VkPresentIdKHR* to);
+
+void deepcopy_VkPhysicalDevicePresentIdFeaturesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDevicePresentIdFeaturesKHR* from,
+    VkPhysicalDevicePresentIdFeaturesKHR* to);
+
+#endif
+#ifdef VK_KHR_video_encode_queue
+void deepcopy_VkVideoEncodeInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeInfoKHR* from,
+    VkVideoEncodeInfoKHR* to);
+
+void deepcopy_VkVideoEncodeRateControlInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeRateControlInfoKHR* from,
+    VkVideoEncodeRateControlInfoKHR* to);
+
+#endif
+#ifdef VK_KHR_synchronization2
+void deepcopy_VkMemoryBarrier2KHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkMemoryBarrier2KHR* from,
+    VkMemoryBarrier2KHR* to);
+
+void deepcopy_VkBufferMemoryBarrier2KHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkBufferMemoryBarrier2KHR* from,
+    VkBufferMemoryBarrier2KHR* to);
+
+void deepcopy_VkImageMemoryBarrier2KHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkImageMemoryBarrier2KHR* from,
+    VkImageMemoryBarrier2KHR* to);
+
+void deepcopy_VkDependencyInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkDependencyInfoKHR* from,
+    VkDependencyInfoKHR* to);
+
+void deepcopy_VkSemaphoreSubmitInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkSemaphoreSubmitInfoKHR* from,
+    VkSemaphoreSubmitInfoKHR* to);
+
+void deepcopy_VkCommandBufferSubmitInfoKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkCommandBufferSubmitInfoKHR* from,
+    VkCommandBufferSubmitInfoKHR* to);
+
+void deepcopy_VkSubmitInfo2KHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkSubmitInfo2KHR* from,
+    VkSubmitInfo2KHR* to);
+
+void deepcopy_VkPhysicalDeviceSynchronization2FeaturesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSynchronization2FeaturesKHR* from,
+    VkPhysicalDeviceSynchronization2FeaturesKHR* to);
+
+void deepcopy_VkQueueFamilyCheckpointProperties2NV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkQueueFamilyCheckpointProperties2NV* from,
+    VkQueueFamilyCheckpointProperties2NV* to);
+
+void deepcopy_VkCheckpointData2NV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkCheckpointData2NV* from,
+    VkCheckpointData2NV* to);
+
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+void deepcopy_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* from,
+    VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* to);
+
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+void deepcopy_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* from,
+    VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* to);
+
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+void deepcopy_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* from,
+    VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* to);
+
+#endif
 #ifdef VK_KHR_copy_commands2
 void deepcopy_VkBufferCopy2KHR(
     Allocator* alloc,
@@ -2323,6 +2629,40 @@
     VkResolveImageInfo2KHR* to);
 
 #endif
+#ifdef VK_KHR_format_feature_flags2
+void deepcopy_VkFormatProperties3KHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkFormatProperties3KHR* from,
+    VkFormatProperties3KHR* to);
+
+#endif
+#ifdef VK_KHR_maintenance4
+void deepcopy_VkPhysicalDeviceMaintenance4FeaturesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMaintenance4FeaturesKHR* from,
+    VkPhysicalDeviceMaintenance4FeaturesKHR* to);
+
+void deepcopy_VkPhysicalDeviceMaintenance4PropertiesKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMaintenance4PropertiesKHR* from,
+    VkPhysicalDeviceMaintenance4PropertiesKHR* to);
+
+void deepcopy_VkDeviceBufferMemoryRequirementsKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkDeviceBufferMemoryRequirementsKHR* from,
+    VkDeviceBufferMemoryRequirementsKHR* to);
+
+void deepcopy_VkDeviceImageMemoryRequirementsKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkDeviceImageMemoryRequirementsKHR* from,
+    VkDeviceImageMemoryRequirementsKHR* to);
+
+#endif
 #ifdef VK_ANDROID_native_buffer
 void deepcopy_VkNativeBufferANDROID(
     Allocator* alloc,
@@ -2419,6 +2759,26 @@
     VkPipelineRasterizationStateStreamCreateInfoEXT* to);
 
 #endif
+#ifdef VK_NVX_binary_import
+void deepcopy_VkCuModuleCreateInfoNVX(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkCuModuleCreateInfoNVX* from,
+    VkCuModuleCreateInfoNVX* to);
+
+void deepcopy_VkCuFunctionCreateInfoNVX(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkCuFunctionCreateInfoNVX* from,
+    VkCuFunctionCreateInfoNVX* to);
+
+void deepcopy_VkCuLaunchInfoNVX(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkCuLaunchInfoNVX* from,
+    VkCuLaunchInfoNVX* to);
+
+#endif
 #ifdef VK_NVX_image_view_handle
 void deepcopy_VkImageViewHandleInfoNVX(
     Allocator* alloc,
@@ -2441,6 +2801,174 @@
 #endif
 #ifdef VK_AMD_shader_ballot
 #endif
+#ifdef VK_EXT_video_encode_h264
+void deepcopy_VkVideoEncodeH264CapabilitiesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH264CapabilitiesEXT* from,
+    VkVideoEncodeH264CapabilitiesEXT* to);
+
+void deepcopy_VkVideoEncodeH264SessionCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionCreateInfoEXT* from,
+    VkVideoEncodeH264SessionCreateInfoEXT* to);
+
+void deepcopy_VkVideoEncodeH264SessionParametersAddInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionParametersAddInfoEXT* from,
+    VkVideoEncodeH264SessionParametersAddInfoEXT* to);
+
+void deepcopy_VkVideoEncodeH264SessionParametersCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionParametersCreateInfoEXT* from,
+    VkVideoEncodeH264SessionParametersCreateInfoEXT* to);
+
+void deepcopy_VkVideoEncodeH264DpbSlotInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH264DpbSlotInfoEXT* from,
+    VkVideoEncodeH264DpbSlotInfoEXT* to);
+
+void deepcopy_VkVideoEncodeH264NaluSliceEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH264NaluSliceEXT* from,
+    VkVideoEncodeH264NaluSliceEXT* to);
+
+void deepcopy_VkVideoEncodeH264VclFrameInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH264VclFrameInfoEXT* from,
+    VkVideoEncodeH264VclFrameInfoEXT* to);
+
+void deepcopy_VkVideoEncodeH264EmitPictureParametersEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH264EmitPictureParametersEXT* from,
+    VkVideoEncodeH264EmitPictureParametersEXT* to);
+
+void deepcopy_VkVideoEncodeH264ProfileEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH264ProfileEXT* from,
+    VkVideoEncodeH264ProfileEXT* to);
+
+#endif
+#ifdef VK_EXT_video_encode_h265
+void deepcopy_VkVideoEncodeH265CapabilitiesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH265CapabilitiesEXT* from,
+    VkVideoEncodeH265CapabilitiesEXT* to);
+
+void deepcopy_VkVideoEncodeH265SessionCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionCreateInfoEXT* from,
+    VkVideoEncodeH265SessionCreateInfoEXT* to);
+
+void deepcopy_VkVideoEncodeH265SessionParametersAddInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionParametersAddInfoEXT* from,
+    VkVideoEncodeH265SessionParametersAddInfoEXT* to);
+
+void deepcopy_VkVideoEncodeH265SessionParametersCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionParametersCreateInfoEXT* from,
+    VkVideoEncodeH265SessionParametersCreateInfoEXT* to);
+
+void deepcopy_VkVideoEncodeH265DpbSlotInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH265DpbSlotInfoEXT* from,
+    VkVideoEncodeH265DpbSlotInfoEXT* to);
+
+void deepcopy_VkVideoEncodeH265ReferenceListsEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH265ReferenceListsEXT* from,
+    VkVideoEncodeH265ReferenceListsEXT* to);
+
+void deepcopy_VkVideoEncodeH265NaluSliceEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH265NaluSliceEXT* from,
+    VkVideoEncodeH265NaluSliceEXT* to);
+
+void deepcopy_VkVideoEncodeH265VclFrameInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH265VclFrameInfoEXT* from,
+    VkVideoEncodeH265VclFrameInfoEXT* to);
+
+void deepcopy_VkVideoEncodeH265EmitPictureParametersEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH265EmitPictureParametersEXT* from,
+    VkVideoEncodeH265EmitPictureParametersEXT* to);
+
+void deepcopy_VkVideoEncodeH265ProfileEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoEncodeH265ProfileEXT* from,
+    VkVideoEncodeH265ProfileEXT* to);
+
+#endif
+#ifdef VK_EXT_video_decode_h264
+void deepcopy_VkVideoDecodeH264ProfileEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH264ProfileEXT* from,
+    VkVideoDecodeH264ProfileEXT* to);
+
+void deepcopy_VkVideoDecodeH264CapabilitiesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH264CapabilitiesEXT* from,
+    VkVideoDecodeH264CapabilitiesEXT* to);
+
+void deepcopy_VkVideoDecodeH264SessionCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionCreateInfoEXT* from,
+    VkVideoDecodeH264SessionCreateInfoEXT* to);
+
+void deepcopy_VkVideoDecodeH264SessionParametersAddInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionParametersAddInfoEXT* from,
+    VkVideoDecodeH264SessionParametersAddInfoEXT* to);
+
+void deepcopy_VkVideoDecodeH264SessionParametersCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionParametersCreateInfoEXT* from,
+    VkVideoDecodeH264SessionParametersCreateInfoEXT* to);
+
+void deepcopy_VkVideoDecodeH264PictureInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH264PictureInfoEXT* from,
+    VkVideoDecodeH264PictureInfoEXT* to);
+
+void deepcopy_VkVideoDecodeH264MvcEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH264MvcEXT* from,
+    VkVideoDecodeH264MvcEXT* to);
+
+void deepcopy_VkVideoDecodeH264DpbSlotInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH264DpbSlotInfoEXT* from,
+    VkVideoDecodeH264DpbSlotInfoEXT* to);
+
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
 void deepcopy_VkTextureLODGatherFormatPropertiesAMD(
     Allocator* alloc,
@@ -2844,6 +3372,12 @@
     const VkExternalFormatANDROID* from,
     VkExternalFormatANDROID* to);
 
+void deepcopy_VkAndroidHardwareBufferFormatProperties2ANDROID(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkAndroidHardwareBufferFormatProperties2ANDROID* from,
+    VkAndroidHardwareBufferFormatProperties2ANDROID* to);
+
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
 DEFINE_ALIAS_FUNCTION(deepcopy_VkSamplerReductionModeCreateInfo, deepcopy_VkSamplerReductionModeCreateInfoEXT)
@@ -3026,6 +3560,18 @@
     const VkImageDrmFormatModifierPropertiesEXT* from,
     VkImageDrmFormatModifierPropertiesEXT* to);
 
+void deepcopy_VkDrmFormatModifierProperties2EXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkDrmFormatModifierProperties2EXT* from,
+    VkDrmFormatModifierProperties2EXT* to);
+
+void deepcopy_VkDrmFormatModifierPropertiesList2EXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkDrmFormatModifierPropertiesList2EXT* from,
+    VkDrmFormatModifierPropertiesList2EXT* to);
+
 #endif
 #ifdef VK_EXT_validation_cache
 void deepcopy_VkValidationCacheCreateInfoEXT(
@@ -3281,6 +3827,50 @@
     VkPhysicalDeviceShaderCorePropertiesAMD* to);
 
 #endif
+#ifdef VK_EXT_video_decode_h265
+void deepcopy_VkVideoDecodeH265ProfileEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH265ProfileEXT* from,
+    VkVideoDecodeH265ProfileEXT* to);
+
+void deepcopy_VkVideoDecodeH265CapabilitiesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH265CapabilitiesEXT* from,
+    VkVideoDecodeH265CapabilitiesEXT* to);
+
+void deepcopy_VkVideoDecodeH265SessionCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionCreateInfoEXT* from,
+    VkVideoDecodeH265SessionCreateInfoEXT* to);
+
+void deepcopy_VkVideoDecodeH265SessionParametersAddInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionParametersAddInfoEXT* from,
+    VkVideoDecodeH265SessionParametersAddInfoEXT* to);
+
+void deepcopy_VkVideoDecodeH265SessionParametersCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionParametersCreateInfoEXT* from,
+    VkVideoDecodeH265SessionParametersCreateInfoEXT* to);
+
+void deepcopy_VkVideoDecodeH265PictureInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH265PictureInfoEXT* from,
+    VkVideoDecodeH265PictureInfoEXT* to);
+
+void deepcopy_VkVideoDecodeH265DpbSlotInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVideoDecodeH265DpbSlotInfoEXT* from,
+    VkVideoDecodeH265DpbSlotInfoEXT* to);
+
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
 void deepcopy_VkDeviceMemoryOverallocationCreateInfoAMD(
     Allocator* alloc,
@@ -3705,6 +4295,26 @@
     VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* to);
 
 #endif
+#ifdef VK_EXT_provoking_vertex
+void deepcopy_VkPhysicalDeviceProvokingVertexFeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceProvokingVertexFeaturesEXT* from,
+    VkPhysicalDeviceProvokingVertexFeaturesEXT* to);
+
+void deepcopy_VkPhysicalDeviceProvokingVertexPropertiesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceProvokingVertexPropertiesEXT* from,
+    VkPhysicalDeviceProvokingVertexPropertiesEXT* to);
+
+void deepcopy_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* from,
+    VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* to);
+
+#endif
 #ifdef VK_EXT_full_screen_exclusive
 void deepcopy_VkSurfaceFullScreenExclusiveInfoEXT(
     Allocator* alloc,
@@ -3781,6 +4391,14 @@
     VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* to);
 
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+void deepcopy_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* from,
+    VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* to);
+
+#endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 void deepcopy_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
     Allocator* alloc,
@@ -3869,6 +4487,20 @@
     VkGeneratedCommandsMemoryRequirementsInfoNV* to);
 
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+void deepcopy_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceInheritedViewportScissorFeaturesNV* from,
+    VkPhysicalDeviceInheritedViewportScissorFeaturesNV* to);
+
+void deepcopy_VkCommandBufferInheritanceViewportScissorInfoNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkCommandBufferInheritanceViewportScissorInfoNV* from,
+    VkCommandBufferInheritanceViewportScissorInfoNV* to);
+
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
 void deepcopy_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
     Allocator* alloc,
@@ -3917,6 +4549,8 @@
     VkDeviceDeviceMemoryReportCreateInfoEXT* to);
 
 #endif
+#ifdef VK_EXT_acquire_drm_display
+#endif
 #ifdef VK_EXT_robustness2
 void deepcopy_VkPhysicalDeviceRobustness2FeaturesEXT(
     Allocator* alloc,
@@ -4017,6 +4651,70 @@
     VkPipelineFragmentShadingRateEnumStateCreateInfoNV* to);
 
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+void deepcopy_VkDeviceOrHostAddressConstKHR(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkDeviceOrHostAddressConstKHR* from,
+    VkDeviceOrHostAddressConstKHR* to);
+
+void deepcopy_VkAccelerationStructureGeometryMotionTrianglesDataNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkAccelerationStructureGeometryMotionTrianglesDataNV* from,
+    VkAccelerationStructureGeometryMotionTrianglesDataNV* to);
+
+void deepcopy_VkAccelerationStructureMotionInfoNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInfoNV* from,
+    VkAccelerationStructureMotionInfoNV* to);
+
+void deepcopy_VkAccelerationStructureMatrixMotionInstanceNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkAccelerationStructureMatrixMotionInstanceNV* from,
+    VkAccelerationStructureMatrixMotionInstanceNV* to);
+
+void deepcopy_VkSRTDataNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkSRTDataNV* from,
+    VkSRTDataNV* to);
+
+void deepcopy_VkAccelerationStructureSRTMotionInstanceNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkAccelerationStructureSRTMotionInstanceNV* from,
+    VkAccelerationStructureSRTMotionInstanceNV* to);
+
+void deepcopy_VkAccelerationStructureMotionInstanceDataNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInstanceDataNV* from,
+    VkAccelerationStructureMotionInstanceDataNV* to);
+
+void deepcopy_VkAccelerationStructureMotionInstanceNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInstanceNV* from,
+    VkAccelerationStructureMotionInstanceNV* to);
+
+void deepcopy_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* from,
+    VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* to);
+
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+void deepcopy_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* from,
+    VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* to);
+
+#endif
 #ifdef VK_EXT_fragment_density_map2
 void deepcopy_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
     Allocator* alloc,
@@ -4055,6 +4753,16 @@
     VkPhysicalDevice4444FormatsFeaturesEXT* to);
 
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+void deepcopy_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* from,
+    VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* to);
+
+#endif
+#ifdef VK_NV_acquire_winrt_display
+#endif
 #ifdef VK_EXT_directfb_surface
 void deepcopy_VkDirectFBSurfaceCreateInfoEXT(
     Allocator* alloc,
@@ -4063,6 +4771,230 @@
     VkDirectFBSurfaceCreateInfoEXT* to);
 
 #endif
+#ifdef VK_VALVE_mutable_descriptor_type
+void deepcopy_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* from,
+    VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* to);
+
+void deepcopy_VkMutableDescriptorTypeListVALVE(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkMutableDescriptorTypeListVALVE* from,
+    VkMutableDescriptorTypeListVALVE* to);
+
+void deepcopy_VkMutableDescriptorTypeCreateInfoVALVE(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkMutableDescriptorTypeCreateInfoVALVE* from,
+    VkMutableDescriptorTypeCreateInfoVALVE* to);
+
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+void deepcopy_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* from,
+    VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* to);
+
+void deepcopy_VkVertexInputBindingDescription2EXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVertexInputBindingDescription2EXT* from,
+    VkVertexInputBindingDescription2EXT* to);
+
+void deepcopy_VkVertexInputAttributeDescription2EXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkVertexInputAttributeDescription2EXT* from,
+    VkVertexInputAttributeDescription2EXT* to);
+
+#endif
+#ifdef VK_EXT_physical_device_drm
+void deepcopy_VkPhysicalDeviceDrmPropertiesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceDrmPropertiesEXT* from,
+    VkPhysicalDeviceDrmPropertiesEXT* to);
+
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+void deepcopy_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* from,
+    VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* to);
+
+#endif
+#ifdef VK_FUCHSIA_external_memory
+void deepcopy_VkImportMemoryZirconHandleInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkImportMemoryZirconHandleInfoFUCHSIA* from,
+    VkImportMemoryZirconHandleInfoFUCHSIA* to);
+
+void deepcopy_VkMemoryZirconHandlePropertiesFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkMemoryZirconHandlePropertiesFUCHSIA* from,
+    VkMemoryZirconHandlePropertiesFUCHSIA* to);
+
+void deepcopy_VkMemoryGetZirconHandleInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkMemoryGetZirconHandleInfoFUCHSIA* from,
+    VkMemoryGetZirconHandleInfoFUCHSIA* to);
+
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+void deepcopy_VkImportSemaphoreZirconHandleInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkImportSemaphoreZirconHandleInfoFUCHSIA* from,
+    VkImportSemaphoreZirconHandleInfoFUCHSIA* to);
+
+void deepcopy_VkSemaphoreGetZirconHandleInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkSemaphoreGetZirconHandleInfoFUCHSIA* from,
+    VkSemaphoreGetZirconHandleInfoFUCHSIA* to);
+
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+void deepcopy_VkBufferCollectionCreateInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkBufferCollectionCreateInfoFUCHSIA* from,
+    VkBufferCollectionCreateInfoFUCHSIA* to);
+
+void deepcopy_VkImportMemoryBufferCollectionFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkImportMemoryBufferCollectionFUCHSIA* from,
+    VkImportMemoryBufferCollectionFUCHSIA* to);
+
+void deepcopy_VkBufferCollectionImageCreateInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkBufferCollectionImageCreateInfoFUCHSIA* from,
+    VkBufferCollectionImageCreateInfoFUCHSIA* to);
+
+void deepcopy_VkBufferCollectionConstraintsInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkBufferCollectionConstraintsInfoFUCHSIA* from,
+    VkBufferCollectionConstraintsInfoFUCHSIA* to);
+
+void deepcopy_VkBufferConstraintsInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkBufferConstraintsInfoFUCHSIA* from,
+    VkBufferConstraintsInfoFUCHSIA* to);
+
+void deepcopy_VkBufferCollectionBufferCreateInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkBufferCollectionBufferCreateInfoFUCHSIA* from,
+    VkBufferCollectionBufferCreateInfoFUCHSIA* to);
+
+void deepcopy_VkSysmemColorSpaceFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkSysmemColorSpaceFUCHSIA* from,
+    VkSysmemColorSpaceFUCHSIA* to);
+
+void deepcopy_VkBufferCollectionPropertiesFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkBufferCollectionPropertiesFUCHSIA* from,
+    VkBufferCollectionPropertiesFUCHSIA* to);
+
+void deepcopy_VkImageFormatConstraintsInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkImageFormatConstraintsInfoFUCHSIA* from,
+    VkImageFormatConstraintsInfoFUCHSIA* to);
+
+void deepcopy_VkImageConstraintsInfoFUCHSIA(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkImageConstraintsInfoFUCHSIA* from,
+    VkImageConstraintsInfoFUCHSIA* to);
+
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+void deepcopy_VkSubpassShadingPipelineCreateInfoHUAWEI(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkSubpassShadingPipelineCreateInfoHUAWEI* from,
+    VkSubpassShadingPipelineCreateInfoHUAWEI* to);
+
+void deepcopy_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* from,
+    VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* to);
+
+void deepcopy_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* from,
+    VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* to);
+
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+void deepcopy_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* from,
+    VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* to);
+
+#endif
+#ifdef VK_NV_external_memory_rdma
+void deepcopy_VkMemoryGetRemoteAddressInfoNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkMemoryGetRemoteAddressInfoNV* from,
+    VkMemoryGetRemoteAddressInfoNV* to);
+
+void deepcopy_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* from,
+    VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* to);
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+void deepcopy_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* from,
+    VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* to);
+
+#endif
+#ifdef VK_QNX_screen_surface
+void deepcopy_VkScreenSurfaceCreateInfoQNX(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkScreenSurfaceCreateInfoQNX* from,
+    VkScreenSurfaceCreateInfoQNX* to);
+
+#endif
+#ifdef VK_EXT_color_write_enable
+void deepcopy_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceColorWriteEnableFeaturesEXT* from,
+    VkPhysicalDeviceColorWriteEnableFeaturesEXT* to);
+
+void deepcopy_VkPipelineColorWriteCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPipelineColorWriteCreateInfoEXT* from,
+    VkPipelineColorWriteCreateInfoEXT* to);
+
+#endif
 #ifdef VK_GOOGLE_gfxstream
 void deepcopy_VkImportColorBufferGOOGLE(
     Allocator* alloc,
@@ -4083,6 +5015,70 @@
     VkImportPhysicalAddressGOOGLE* to);
 
 #endif
+#ifdef VK_EXT_global_priority_query
+void deepcopy_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* from,
+    VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* to);
+
+void deepcopy_VkQueueFamilyGlobalPriorityPropertiesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkQueueFamilyGlobalPriorityPropertiesEXT* from,
+    VkQueueFamilyGlobalPriorityPropertiesEXT* to);
+
+#endif
+#ifdef VK_EXT_multi_draw
+void deepcopy_VkPhysicalDeviceMultiDrawFeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMultiDrawFeaturesEXT* from,
+    VkPhysicalDeviceMultiDrawFeaturesEXT* to);
+
+void deepcopy_VkPhysicalDeviceMultiDrawPropertiesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMultiDrawPropertiesEXT* from,
+    VkPhysicalDeviceMultiDrawPropertiesEXT* to);
+
+void deepcopy_VkMultiDrawInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkMultiDrawInfoEXT* from,
+    VkMultiDrawInfoEXT* to);
+
+void deepcopy_VkMultiDrawIndexedInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkMultiDrawIndexedInfoEXT* from,
+    VkMultiDrawIndexedInfoEXT* to);
+
+#endif
+#ifdef VK_EXT_load_store_op_none
+#endif
+#ifdef VK_EXT_border_color_swizzle
+void deepcopy_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* from,
+    VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* to);
+
+void deepcopy_VkSamplerBorderColorComponentMappingCreateInfoEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkSamplerBorderColorComponentMappingCreateInfoEXT* from,
+    VkSamplerBorderColorComponentMappingCreateInfoEXT* to);
+
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+void deepcopy_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
+    Allocator* alloc,
+    VkStructureType rootType,
+    const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* from,
+    VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* to);
+
+#endif
 #ifdef VK_KHR_acceleration_structure
 void deepcopy_VkDeviceOrHostAddressKHR(
     Allocator* alloc,
@@ -4090,12 +5086,6 @@
     const VkDeviceOrHostAddressKHR* from,
     VkDeviceOrHostAddressKHR* to);
 
-void deepcopy_VkDeviceOrHostAddressConstKHR(
-    Allocator* alloc,
-    VkStructureType rootType,
-    const VkDeviceOrHostAddressConstKHR* from,
-    VkDeviceOrHostAddressConstKHR* to);
-
 void deepcopy_VkAccelerationStructureBuildRangeInfoKHR(
     Allocator* alloc,
     VkStructureType rootType,
diff --git a/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp b/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp
index 5984b4d..7abd647 100644
--- a/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp
@@ -54,6 +54,12 @@
 #endif
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
+#ifdef VK_KHR_video_queue
+#endif
+#ifdef VK_KHR_video_decode_queue
+#endif
+#ifdef VK_KHR_dynamic_rendering
+#endif
 #ifdef VK_KHR_multiview
 #endif
 #ifdef VK_KHR_get_physical_device_properties2
@@ -168,6 +174,8 @@
 #endif
 #ifdef VK_KHR_separate_depth_stencil_layouts
 #endif
+#ifdef VK_KHR_present_wait
+#endif
 #ifdef VK_KHR_uniform_buffer_standard_layout
 #endif
 #ifdef VK_KHR_buffer_device_address
@@ -176,12 +184,30 @@
 #endif
 #ifdef VK_KHR_pipeline_executable_properties
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+#endif
 #ifdef VK_KHR_pipeline_library
 #endif
 #ifdef VK_KHR_shader_non_semantic_info
 #endif
+#ifdef VK_KHR_present_id
+#endif
+#ifdef VK_KHR_video_encode_queue
+#endif
+#ifdef VK_KHR_synchronization2
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+#endif
 #ifdef VK_KHR_copy_commands2
 #endif
+#ifdef VK_KHR_format_feature_flags2
+#endif
+#ifdef VK_KHR_maintenance4
+#endif
 #ifdef VK_ANDROID_native_buffer
 #endif
 #ifdef VK_EXT_debug_report
@@ -206,6 +232,8 @@
 #endif
 #ifdef VK_EXT_transform_feedback
 #endif
+#ifdef VK_NVX_binary_import
+#endif
 #ifdef VK_NVX_image_view_handle
 #endif
 #ifdef VK_AMD_draw_indirect_count
@@ -216,6 +244,12 @@
 #endif
 #ifdef VK_AMD_shader_ballot
 #endif
+#ifdef VK_EXT_video_encode_h264
+#endif
+#ifdef VK_EXT_video_encode_h265
+#endif
+#ifdef VK_EXT_video_decode_h264
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
 #endif
 #ifdef VK_AMD_shader_info
@@ -352,6 +386,8 @@
 #endif
 #ifdef VK_AMD_shader_core_properties
 #endif
+#ifdef VK_EXT_video_decode_h265
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
 #endif
 #ifdef VK_EXT_vertex_attribute_divisor
@@ -424,6 +460,8 @@
 #endif
 #ifdef VK_EXT_ycbcr_image_arrays
 #endif
+#ifdef VK_EXT_provoking_vertex
+#endif
 #ifdef VK_EXT_full_screen_exclusive
 #endif
 #ifdef VK_EXT_headless_surface
@@ -438,16 +476,22 @@
 #endif
 #ifdef VK_EXT_extended_dynamic_state
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+#endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 #endif
 #ifdef VK_NV_device_generated_commands
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+#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_acquire_drm_display
+#endif
 #ifdef VK_EXT_robustness2
 #endif
 #ifdef VK_EXT_custom_border_color
@@ -464,6 +508,10 @@
 #endif
 #ifdef VK_NV_fragment_shading_rate_enums
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+#endif
 #ifdef VK_EXT_fragment_density_map2
 #endif
 #ifdef VK_QCOM_rotated_copy_commands
@@ -472,10 +520,50 @@
 #endif
 #ifdef VK_EXT_4444_formats
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+#endif
+#ifdef VK_NV_acquire_winrt_display
+#endif
 #ifdef VK_EXT_directfb_surface
 #endif
+#ifdef VK_VALVE_mutable_descriptor_type
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+#endif
+#ifdef VK_EXT_physical_device_drm
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+#endif
+#ifdef VK_FUCHSIA_external_memory
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+#endif
+#ifdef VK_NV_external_memory_rdma
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+#endif
+#ifdef VK_QNX_screen_surface
+#endif
+#ifdef VK_EXT_color_write_enable
+#endif
 #ifdef VK_GOOGLE_gfxstream
 #endif
+#ifdef VK_EXT_global_priority_query
+#endif
+#ifdef VK_EXT_multi_draw
+#endif
+#ifdef VK_EXT_load_store_op_none
+#endif
+#ifdef VK_EXT_border_color_swizzle
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+#endif
 #ifdef VK_KHR_acceleration_structure
 #endif
 #ifdef VK_KHR_ray_tracing_pipeline
@@ -836,6 +924,50 @@
             return sizeof(VkDisplayPresentInfoKHR);
         }
 #endif
+#ifdef VK_KHR_video_queue
+        case VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR:
+        {
+            return sizeof(VkVideoQueueFamilyProperties2KHR);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR:
+        {
+            return sizeof(VkVideoProfileKHR);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR:
+        {
+            return sizeof(VkVideoProfilesKHR);
+        }
+#endif
+#ifdef VK_KHR_dynamic_rendering
+        case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR:
+        {
+            return sizeof(VkPipelineRenderingCreateInfoKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceDynamicRenderingFeaturesKHR);
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR:
+        {
+            return sizeof(VkCommandBufferInheritanceRenderingInfoKHR);
+        }
+        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
+        {
+            return sizeof(VkRenderingFragmentShadingRateAttachmentInfoKHR);
+        }
+        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:
+        {
+            return sizeof(VkRenderingFragmentDensityMapAttachmentInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:
+        {
+            return sizeof(VkAttachmentSampleCountInfoAMD);
+        }
+        case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:
+        {
+            return sizeof(VkMultiviewPerViewAttributesInfoNVX);
+        }
+#endif
 #ifdef VK_KHR_external_memory_win32
         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
         {
@@ -956,12 +1088,92 @@
             return sizeof(VkSurfaceProtectedCapabilitiesKHR);
         }
 #endif
+#ifdef VK_KHR_present_wait
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDevicePresentWaitFeaturesKHR);
+        }
+#endif
 #ifdef VK_KHR_pipeline_executable_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
         {
             return sizeof(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR);
         }
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR);
+        }
+#endif
+#ifdef VK_KHR_present_id
+        case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:
+        {
+            return sizeof(VkPresentIdKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDevicePresentIdFeaturesKHR);
+        }
+#endif
+#ifdef VK_KHR_video_encode_queue
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:
+        {
+            return sizeof(VkVideoEncodeRateControlInfoKHR);
+        }
+#endif
+#ifdef VK_KHR_synchronization2
+        case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR:
+        {
+            return sizeof(VkMemoryBarrier2KHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceSynchronization2FeaturesKHR);
+        }
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:
+        {
+            return sizeof(VkQueueFamilyCheckpointProperties2NV);
+        }
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR);
+        }
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR);
+        }
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR);
+        }
+#endif
+#ifdef VK_KHR_format_feature_flags2
+        case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR:
+        {
+            return sizeof(VkFormatProperties3KHR);
+        }
+#endif
+#ifdef VK_KHR_maintenance4
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceMaintenance4FeaturesKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceMaintenance4PropertiesKHR);
+        }
+#endif
 #ifdef VK_ANDROID_native_buffer
         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
         {
@@ -1008,6 +1220,100 @@
             return sizeof(VkPipelineRasterizationStateStreamCreateInfoEXT);
         }
 #endif
+#ifdef VK_EXT_video_encode_h264
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT:
+        {
+            return sizeof(VkVideoEncodeH264CapabilitiesEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT:
+        {
+            return sizeof(VkVideoEncodeH264SessionCreateInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            return sizeof(VkVideoEncodeH264SessionParametersAddInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            return sizeof(VkVideoEncodeH264SessionParametersCreateInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT:
+        {
+            return sizeof(VkVideoEncodeH264VclFrameInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT:
+        {
+            return sizeof(VkVideoEncodeH264EmitPictureParametersEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT:
+        {
+            return sizeof(VkVideoEncodeH264ProfileEXT);
+        }
+#endif
+#ifdef VK_EXT_video_encode_h265
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT:
+        {
+            return sizeof(VkVideoEncodeH265CapabilitiesEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT:
+        {
+            return sizeof(VkVideoEncodeH265SessionCreateInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            return sizeof(VkVideoEncodeH265SessionParametersAddInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            return sizeof(VkVideoEncodeH265SessionParametersCreateInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT:
+        {
+            return sizeof(VkVideoEncodeH265VclFrameInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT:
+        {
+            return sizeof(VkVideoEncodeH265EmitPictureParametersEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT:
+        {
+            return sizeof(VkVideoEncodeH265ProfileEXT);
+        }
+#endif
+#ifdef VK_EXT_video_decode_h264
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT:
+        {
+            return sizeof(VkVideoDecodeH264ProfileEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT:
+        {
+            return sizeof(VkVideoDecodeH264CapabilitiesEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT:
+        {
+            return sizeof(VkVideoDecodeH264SessionCreateInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            return sizeof(VkVideoDecodeH264SessionParametersAddInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            return sizeof(VkVideoDecodeH264SessionParametersCreateInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT:
+        {
+            return sizeof(VkVideoDecodeH264PictureInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT:
+        {
+            return sizeof(VkVideoDecodeH264MvcEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT:
+        {
+            return sizeof(VkVideoDecodeH264DpbSlotInfoEXT);
+        }
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
@@ -1161,6 +1467,10 @@
         {
             return sizeof(VkExternalFormatANDROID);
         }
+        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:
+        {
+            return sizeof(VkAndroidHardwareBufferFormatProperties2ANDROID);
+        }
 #endif
 #ifdef VK_EXT_inline_uniform_block
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:
@@ -1251,6 +1561,10 @@
         {
             return sizeof(VkImageDrmFormatModifierExplicitCreateInfoEXT);
         }
+        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:
+        {
+            return sizeof(VkDrmFormatModifierPropertiesList2EXT);
+        }
 #endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
@@ -1334,6 +1648,36 @@
             return sizeof(VkPhysicalDeviceShaderCorePropertiesAMD);
         }
 #endif
+#ifdef VK_EXT_video_decode_h265
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT:
+        {
+            return sizeof(VkVideoDecodeH265ProfileEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT:
+        {
+            return sizeof(VkVideoDecodeH265CapabilitiesEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT:
+        {
+            return sizeof(VkVideoDecodeH265SessionCreateInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            return sizeof(VkVideoDecodeH265SessionParametersAddInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            return sizeof(VkVideoDecodeH265SessionParametersCreateInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT:
+        {
+            return sizeof(VkVideoDecodeH265PictureInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT:
+        {
+            return sizeof(VkVideoDecodeH265DpbSlotInfoEXT);
+        }
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
         case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
         {
@@ -1615,6 +1959,20 @@
             return sizeof(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT);
         }
 #endif
+#ifdef VK_EXT_provoking_vertex
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceProvokingVertexPropertiesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:
+        {
+            return sizeof(VkPipelineRasterizationProvokingVertexStateCreateInfoEXT);
+        }
+#endif
 #ifdef VK_EXT_full_screen_exclusive
         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
         {
@@ -1661,6 +2019,12 @@
             return sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT);
         }
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT);
+        }
+#endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT:
         {
@@ -1681,6 +2045,16 @@
             return sizeof(VkGraphicsPipelineShaderGroupsCreateInfoNV);
         }
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceInheritedViewportScissorFeaturesNV);
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:
+        {
+            return sizeof(VkCommandBufferInheritanceViewportScissorInfoNV);
+        }
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
         {
@@ -1775,6 +2149,26 @@
             return sizeof(VkPipelineFragmentShadingRateEnumStateCreateInfoNV);
         }
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:
+        {
+            return sizeof(VkAccelerationStructureGeometryMotionTrianglesDataNV);
+        }
+        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:
+        {
+            return sizeof(VkAccelerationStructureMotionInfoNV);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceRayTracingMotionBlurFeaturesNV);
+        }
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT);
+        }
+#endif
 #ifdef VK_EXT_fragment_density_map2
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
         {
@@ -1803,6 +2197,102 @@
             return sizeof(VkPhysicalDevice4444FormatsFeaturesEXT);
         }
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT);
+        }
+#endif
+#ifdef VK_VALVE_mutable_descriptor_type
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE:
+        {
+            return sizeof(VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE);
+        }
+        case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE:
+        {
+            return sizeof(VkMutableDescriptorTypeCreateInfoVALVE);
+        }
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_physical_device_drm
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceDrmPropertiesEXT);
+        }
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT);
+        }
+#endif
+#ifdef VK_FUCHSIA_external_memory
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:
+        {
+            return sizeof(VkImportMemoryZirconHandleInfoFUCHSIA);
+        }
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:
+        {
+            return sizeof(VkImportMemoryBufferCollectionFUCHSIA);
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:
+        {
+            return sizeof(VkBufferCollectionImageCreateInfoFUCHSIA);
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:
+        {
+            return sizeof(VkBufferCollectionBufferCreateInfoFUCHSIA);
+        }
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+        case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:
+        {
+            return sizeof(VkSubpassShadingPipelineCreateInfoHUAWEI);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:
+        {
+            return sizeof(VkPhysicalDeviceSubpassShadingFeaturesHUAWEI);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:
+        {
+            return sizeof(VkPhysicalDeviceSubpassShadingPropertiesHUAWEI);
+        }
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:
+        {
+            return sizeof(VkPhysicalDeviceInvocationMaskFeaturesHUAWEI);
+        }
+#endif
+#ifdef VK_NV_external_memory_rdma
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceExternalMemoryRDMAFeaturesNV);
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_color_write_enable
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceColorWriteEnableFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:
+        {
+            return sizeof(VkPipelineColorWriteCreateInfoEXT);
+        }
+#endif
 #ifdef VK_GOOGLE_gfxstream
         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
         {
@@ -1817,6 +2307,42 @@
             return sizeof(VkImportPhysicalAddressGOOGLE);
         }
 #endif
+#ifdef VK_EXT_global_priority_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT:
+        {
+            return sizeof(VkQueueFamilyGlobalPriorityPropertiesEXT);
+        }
+#endif
+#ifdef VK_EXT_multi_draw
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceMultiDrawFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceMultiDrawPropertiesEXT);
+        }
+#endif
+#ifdef VK_EXT_border_color_swizzle
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceBorderColorSwizzleFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:
+        {
+            return sizeof(VkSamplerBorderColorComponentMappingCreateInfoEXT);
+        }
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT);
+        }
+#endif
 #ifdef VK_KHR_acceleration_structure
         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
         {
@@ -2209,6 +2735,50 @@
             return sizeof(VkDisplayPresentInfoKHR);
         }
 #endif
+#ifdef VK_KHR_video_queue
+        case VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR:
+        {
+            return sizeof(VkVideoQueueFamilyProperties2KHR);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR:
+        {
+            return sizeof(VkVideoProfileKHR);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR:
+        {
+            return sizeof(VkVideoProfilesKHR);
+        }
+#endif
+#ifdef VK_KHR_dynamic_rendering
+        case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR:
+        {
+            return sizeof(VkPipelineRenderingCreateInfoKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceDynamicRenderingFeaturesKHR);
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR:
+        {
+            return sizeof(VkCommandBufferInheritanceRenderingInfoKHR);
+        }
+        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
+        {
+            return sizeof(VkRenderingFragmentShadingRateAttachmentInfoKHR);
+        }
+        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:
+        {
+            return sizeof(VkRenderingFragmentDensityMapAttachmentInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:
+        {
+            return sizeof(VkAttachmentSampleCountInfoAMD);
+        }
+        case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:
+        {
+            return sizeof(VkMultiviewPerViewAttributesInfoNVX);
+        }
+#endif
 #ifdef VK_KHR_external_memory_win32
         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
         {
@@ -2329,12 +2899,92 @@
             return sizeof(VkSurfaceProtectedCapabilitiesKHR);
         }
 #endif
+#ifdef VK_KHR_present_wait
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDevicePresentWaitFeaturesKHR);
+        }
+#endif
 #ifdef VK_KHR_pipeline_executable_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
         {
             return sizeof(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR);
         }
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR);
+        }
+#endif
+#ifdef VK_KHR_present_id
+        case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:
+        {
+            return sizeof(VkPresentIdKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDevicePresentIdFeaturesKHR);
+        }
+#endif
+#ifdef VK_KHR_video_encode_queue
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:
+        {
+            return sizeof(VkVideoEncodeRateControlInfoKHR);
+        }
+#endif
+#ifdef VK_KHR_synchronization2
+        case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR:
+        {
+            return sizeof(VkMemoryBarrier2KHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceSynchronization2FeaturesKHR);
+        }
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:
+        {
+            return sizeof(VkQueueFamilyCheckpointProperties2NV);
+        }
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR);
+        }
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR);
+        }
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR);
+        }
+#endif
+#ifdef VK_KHR_format_feature_flags2
+        case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR:
+        {
+            return sizeof(VkFormatProperties3KHR);
+        }
+#endif
+#ifdef VK_KHR_maintenance4
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceMaintenance4FeaturesKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceMaintenance4PropertiesKHR);
+        }
+#endif
 #ifdef VK_ANDROID_native_buffer
         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
         {
@@ -2381,6 +3031,100 @@
             return sizeof(VkPipelineRasterizationStateStreamCreateInfoEXT);
         }
 #endif
+#ifdef VK_EXT_video_encode_h264
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT:
+        {
+            return sizeof(VkVideoEncodeH264CapabilitiesEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT:
+        {
+            return sizeof(VkVideoEncodeH264SessionCreateInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            return sizeof(VkVideoEncodeH264SessionParametersAddInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            return sizeof(VkVideoEncodeH264SessionParametersCreateInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT:
+        {
+            return sizeof(VkVideoEncodeH264VclFrameInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT:
+        {
+            return sizeof(VkVideoEncodeH264EmitPictureParametersEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT:
+        {
+            return sizeof(VkVideoEncodeH264ProfileEXT);
+        }
+#endif
+#ifdef VK_EXT_video_encode_h265
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT:
+        {
+            return sizeof(VkVideoEncodeH265CapabilitiesEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT:
+        {
+            return sizeof(VkVideoEncodeH265SessionCreateInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            return sizeof(VkVideoEncodeH265SessionParametersAddInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            return sizeof(VkVideoEncodeH265SessionParametersCreateInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT:
+        {
+            return sizeof(VkVideoEncodeH265VclFrameInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT:
+        {
+            return sizeof(VkVideoEncodeH265EmitPictureParametersEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT:
+        {
+            return sizeof(VkVideoEncodeH265ProfileEXT);
+        }
+#endif
+#ifdef VK_EXT_video_decode_h264
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT:
+        {
+            return sizeof(VkVideoDecodeH264ProfileEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT:
+        {
+            return sizeof(VkVideoDecodeH264CapabilitiesEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT:
+        {
+            return sizeof(VkVideoDecodeH264SessionCreateInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            return sizeof(VkVideoDecodeH264SessionParametersAddInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            return sizeof(VkVideoDecodeH264SessionParametersCreateInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT:
+        {
+            return sizeof(VkVideoDecodeH264PictureInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT:
+        {
+            return sizeof(VkVideoDecodeH264MvcEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT:
+        {
+            return sizeof(VkVideoDecodeH264DpbSlotInfoEXT);
+        }
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
@@ -2534,6 +3278,10 @@
         {
             return sizeof(VkExternalFormatANDROID);
         }
+        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:
+        {
+            return sizeof(VkAndroidHardwareBufferFormatProperties2ANDROID);
+        }
 #endif
 #ifdef VK_EXT_inline_uniform_block
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:
@@ -2624,6 +3372,10 @@
         {
             return sizeof(VkImageDrmFormatModifierExplicitCreateInfoEXT);
         }
+        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:
+        {
+            return sizeof(VkDrmFormatModifierPropertiesList2EXT);
+        }
 #endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
@@ -2707,6 +3459,36 @@
             return sizeof(VkPhysicalDeviceShaderCorePropertiesAMD);
         }
 #endif
+#ifdef VK_EXT_video_decode_h265
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT:
+        {
+            return sizeof(VkVideoDecodeH265ProfileEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT:
+        {
+            return sizeof(VkVideoDecodeH265CapabilitiesEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT:
+        {
+            return sizeof(VkVideoDecodeH265SessionCreateInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            return sizeof(VkVideoDecodeH265SessionParametersAddInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            return sizeof(VkVideoDecodeH265SessionParametersCreateInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT:
+        {
+            return sizeof(VkVideoDecodeH265PictureInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT:
+        {
+            return sizeof(VkVideoDecodeH265DpbSlotInfoEXT);
+        }
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
         case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
         {
@@ -2988,6 +3770,20 @@
             return sizeof(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT);
         }
 #endif
+#ifdef VK_EXT_provoking_vertex
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceProvokingVertexPropertiesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:
+        {
+            return sizeof(VkPipelineRasterizationProvokingVertexStateCreateInfoEXT);
+        }
+#endif
 #ifdef VK_EXT_full_screen_exclusive
         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
         {
@@ -3034,6 +3830,12 @@
             return sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT);
         }
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT);
+        }
+#endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT:
         {
@@ -3054,6 +3856,16 @@
             return sizeof(VkGraphicsPipelineShaderGroupsCreateInfoNV);
         }
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceInheritedViewportScissorFeaturesNV);
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:
+        {
+            return sizeof(VkCommandBufferInheritanceViewportScissorInfoNV);
+        }
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
         {
@@ -3148,6 +3960,26 @@
             return sizeof(VkPipelineFragmentShadingRateEnumStateCreateInfoNV);
         }
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:
+        {
+            return sizeof(VkAccelerationStructureGeometryMotionTrianglesDataNV);
+        }
+        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:
+        {
+            return sizeof(VkAccelerationStructureMotionInfoNV);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceRayTracingMotionBlurFeaturesNV);
+        }
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT);
+        }
+#endif
 #ifdef VK_EXT_fragment_density_map2
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
         {
@@ -3176,6 +4008,102 @@
             return sizeof(VkPhysicalDevice4444FormatsFeaturesEXT);
         }
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT);
+        }
+#endif
+#ifdef VK_VALVE_mutable_descriptor_type
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE:
+        {
+            return sizeof(VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE);
+        }
+        case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE:
+        {
+            return sizeof(VkMutableDescriptorTypeCreateInfoVALVE);
+        }
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_physical_device_drm
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceDrmPropertiesEXT);
+        }
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT);
+        }
+#endif
+#ifdef VK_FUCHSIA_external_memory
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:
+        {
+            return sizeof(VkImportMemoryZirconHandleInfoFUCHSIA);
+        }
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:
+        {
+            return sizeof(VkImportMemoryBufferCollectionFUCHSIA);
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:
+        {
+            return sizeof(VkBufferCollectionImageCreateInfoFUCHSIA);
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:
+        {
+            return sizeof(VkBufferCollectionBufferCreateInfoFUCHSIA);
+        }
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+        case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:
+        {
+            return sizeof(VkSubpassShadingPipelineCreateInfoHUAWEI);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:
+        {
+            return sizeof(VkPhysicalDeviceSubpassShadingFeaturesHUAWEI);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:
+        {
+            return sizeof(VkPhysicalDeviceSubpassShadingPropertiesHUAWEI);
+        }
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:
+        {
+            return sizeof(VkPhysicalDeviceInvocationMaskFeaturesHUAWEI);
+        }
+#endif
+#ifdef VK_NV_external_memory_rdma
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceExternalMemoryRDMAFeaturesNV);
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_color_write_enable
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceColorWriteEnableFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:
+        {
+            return sizeof(VkPipelineColorWriteCreateInfoEXT);
+        }
+#endif
 #ifdef VK_GOOGLE_gfxstream
         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
         {
@@ -3190,6 +4118,42 @@
             return sizeof(VkImportPhysicalAddressGOOGLE);
         }
 #endif
+#ifdef VK_EXT_global_priority_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT:
+        {
+            return sizeof(VkQueueFamilyGlobalPriorityPropertiesEXT);
+        }
+#endif
+#ifdef VK_EXT_multi_draw
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceMultiDrawFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceMultiDrawPropertiesEXT);
+        }
+#endif
+#ifdef VK_EXT_border_color_swizzle
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceBorderColorSwizzleFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:
+        {
+            return sizeof(VkSamplerBorderColorComponentMappingCreateInfoEXT);
+        }
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT);
+        }
+#endif
 #ifdef VK_KHR_acceleration_structure
         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
         {
diff --git a/system/vulkan_enc/goldfish_vk_extension_structs_guest.h b/system/vulkan_enc/goldfish_vk_extension_structs_guest.h
index 6bae0b8..5c7d486 100644
--- a/system/vulkan_enc/goldfish_vk_extension_structs_guest.h
+++ b/system/vulkan_enc/goldfish_vk_extension_structs_guest.h
@@ -77,6 +77,12 @@
 #endif
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
+#ifdef VK_KHR_video_queue
+#endif
+#ifdef VK_KHR_video_decode_queue
+#endif
+#ifdef VK_KHR_dynamic_rendering
+#endif
 #ifdef VK_KHR_multiview
 #endif
 #ifdef VK_KHR_get_physical_device_properties2
@@ -191,6 +197,8 @@
 #endif
 #ifdef VK_KHR_separate_depth_stencil_layouts
 #endif
+#ifdef VK_KHR_present_wait
+#endif
 #ifdef VK_KHR_uniform_buffer_standard_layout
 #endif
 #ifdef VK_KHR_buffer_device_address
@@ -199,12 +207,30 @@
 #endif
 #ifdef VK_KHR_pipeline_executable_properties
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+#endif
 #ifdef VK_KHR_pipeline_library
 #endif
 #ifdef VK_KHR_shader_non_semantic_info
 #endif
+#ifdef VK_KHR_present_id
+#endif
+#ifdef VK_KHR_video_encode_queue
+#endif
+#ifdef VK_KHR_synchronization2
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+#endif
 #ifdef VK_KHR_copy_commands2
 #endif
+#ifdef VK_KHR_format_feature_flags2
+#endif
+#ifdef VK_KHR_maintenance4
+#endif
 #ifdef VK_ANDROID_native_buffer
 #endif
 #ifdef VK_EXT_debug_report
@@ -229,6 +255,8 @@
 #endif
 #ifdef VK_EXT_transform_feedback
 #endif
+#ifdef VK_NVX_binary_import
+#endif
 #ifdef VK_NVX_image_view_handle
 #endif
 #ifdef VK_AMD_draw_indirect_count
@@ -239,6 +267,12 @@
 #endif
 #ifdef VK_AMD_shader_ballot
 #endif
+#ifdef VK_EXT_video_encode_h264
+#endif
+#ifdef VK_EXT_video_encode_h265
+#endif
+#ifdef VK_EXT_video_decode_h264
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
 #endif
 #ifdef VK_AMD_shader_info
@@ -375,6 +409,8 @@
 #endif
 #ifdef VK_AMD_shader_core_properties
 #endif
+#ifdef VK_EXT_video_decode_h265
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
 #endif
 #ifdef VK_EXT_vertex_attribute_divisor
@@ -447,6 +483,8 @@
 #endif
 #ifdef VK_EXT_ycbcr_image_arrays
 #endif
+#ifdef VK_EXT_provoking_vertex
+#endif
 #ifdef VK_EXT_full_screen_exclusive
 #endif
 #ifdef VK_EXT_headless_surface
@@ -461,16 +499,22 @@
 #endif
 #ifdef VK_EXT_extended_dynamic_state
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+#endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 #endif
 #ifdef VK_NV_device_generated_commands
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+#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_acquire_drm_display
+#endif
 #ifdef VK_EXT_robustness2
 #endif
 #ifdef VK_EXT_custom_border_color
@@ -487,6 +531,10 @@
 #endif
 #ifdef VK_NV_fragment_shading_rate_enums
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+#endif
 #ifdef VK_EXT_fragment_density_map2
 #endif
 #ifdef VK_QCOM_rotated_copy_commands
@@ -495,10 +543,50 @@
 #endif
 #ifdef VK_EXT_4444_formats
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+#endif
+#ifdef VK_NV_acquire_winrt_display
+#endif
 #ifdef VK_EXT_directfb_surface
 #endif
+#ifdef VK_VALVE_mutable_descriptor_type
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+#endif
+#ifdef VK_EXT_physical_device_drm
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+#endif
+#ifdef VK_FUCHSIA_external_memory
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+#endif
+#ifdef VK_NV_external_memory_rdma
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+#endif
+#ifdef VK_QNX_screen_surface
+#endif
+#ifdef VK_EXT_color_write_enable
+#endif
 #ifdef VK_GOOGLE_gfxstream
 #endif
+#ifdef VK_EXT_global_priority_query
+#endif
+#ifdef VK_EXT_multi_draw
+#endif
+#ifdef VK_EXT_load_store_op_none
+#endif
+#ifdef VK_EXT_border_color_swizzle
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+#endif
 #ifdef VK_KHR_acceleration_structure
 #endif
 #ifdef VK_KHR_ray_tracing_pipeline
diff --git a/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp b/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp
index 269b50b..95ca034 100644
--- a/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp
@@ -173,6 +173,14 @@
     }
 }
 
+void handlemap_VkPipelineCacheHeaderVersionOne(
+    VulkanHandleMapping* handlemap,
+    VkPipelineCacheHeaderVersionOne* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
 void handlemap_VkAllocationCallbacks(
     VulkanHandleMapping* handlemap,
     VkAllocationCallbacks* toMap)
@@ -3427,6 +3435,409 @@
 #endif
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
+#ifdef VK_KHR_video_queue
+void handlemap_VkVideoQueueFamilyProperties2KHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoQueueFamilyProperties2KHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkVideoProfileKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoProfileKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkVideoProfilesKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoProfilesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pProfiles)
+    {
+        handlemap_VkVideoProfileKHR(handlemap, (VkVideoProfileKHR*)(toMap->pProfiles));
+    }
+}
+
+void handlemap_VkVideoCapabilitiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoCapabilitiesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->videoPictureExtentGranularity));
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->minExtent));
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->maxExtent));
+}
+
+void handlemap_VkPhysicalDeviceVideoFormatInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceVideoFormatInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pVideoProfiles)
+    {
+        handlemap_VkVideoProfilesKHR(handlemap, (VkVideoProfilesKHR*)(toMap->pVideoProfiles));
+    }
+}
+
+void handlemap_VkVideoFormatPropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoFormatPropertiesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkVideoPictureResourceKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoPictureResourceKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkOffset2D(handlemap, (VkOffset2D*)(&toMap->codedOffset));
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->codedExtent));
+    handlemap->mapHandles_VkImageView((VkImageView*)&toMap->imageViewBinding);
+}
+
+void handlemap_VkVideoReferenceSlotKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoReferenceSlotKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pPictureResource)
+    {
+        handlemap_VkVideoPictureResourceKHR(handlemap, (VkVideoPictureResourceKHR*)(toMap->pPictureResource));
+    }
+}
+
+void handlemap_VkVideoGetMemoryPropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoGetMemoryPropertiesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pMemoryRequirements)
+    {
+        handlemap_VkMemoryRequirements2(handlemap, (VkMemoryRequirements2*)(toMap->pMemoryRequirements));
+    }
+}
+
+void handlemap_VkVideoBindMemoryKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoBindMemoryKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkDeviceMemory((VkDeviceMemory*)&toMap->memory);
+}
+
+void handlemap_VkVideoSessionCreateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoSessionCreateInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pVideoProfile)
+    {
+        handlemap_VkVideoProfileKHR(handlemap, (VkVideoProfileKHR*)(toMap->pVideoProfile));
+    }
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->maxCodedExtent));
+}
+
+void handlemap_VkVideoSessionParametersCreateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoSessionParametersCreateInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkVideoSessionParametersKHR((VkVideoSessionParametersKHR*)&toMap->videoSessionParametersTemplate);
+    handlemap->mapHandles_VkVideoSessionKHR((VkVideoSessionKHR*)&toMap->videoSession);
+}
+
+void handlemap_VkVideoSessionParametersUpdateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoSessionParametersUpdateInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkVideoBeginCodingInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoBeginCodingInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkVideoSessionKHR((VkVideoSessionKHR*)&toMap->videoSession);
+    handlemap->mapHandles_VkVideoSessionParametersKHR((VkVideoSessionParametersKHR*)&toMap->videoSessionParameters);
+    if (toMap)
+    {
+        if (toMap->pReferenceSlots)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->referenceSlotCount; ++i)
+            {
+                handlemap_VkVideoReferenceSlotKHR(handlemap, (VkVideoReferenceSlotKHR*)(toMap->pReferenceSlots + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkVideoEndCodingInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoEndCodingInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkVideoCodingControlInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoCodingControlInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_video_decode_queue
+void handlemap_VkVideoDecodeInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkOffset2D(handlemap, (VkOffset2D*)(&toMap->codedOffset));
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->codedExtent));
+    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->srcBuffer);
+    handlemap_VkVideoPictureResourceKHR(handlemap, (VkVideoPictureResourceKHR*)(&toMap->dstPictureResource));
+    if (toMap->pSetupReferenceSlot)
+    {
+        handlemap_VkVideoReferenceSlotKHR(handlemap, (VkVideoReferenceSlotKHR*)(toMap->pSetupReferenceSlot));
+    }
+    if (toMap)
+    {
+        if (toMap->pReferenceSlots)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->referenceSlotCount; ++i)
+            {
+                handlemap_VkVideoReferenceSlotKHR(handlemap, (VkVideoReferenceSlotKHR*)(toMap->pReferenceSlots + i));
+            }
+        }
+    }
+}
+
+#endif
+#ifdef VK_KHR_dynamic_rendering
+void handlemap_VkRenderingAttachmentInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkRenderingAttachmentInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkImageView((VkImageView*)&toMap->imageView);
+    handlemap->mapHandles_VkImageView((VkImageView*)&toMap->resolveImageView);
+    handlemap_VkClearValue(handlemap, (VkClearValue*)(&toMap->clearValue));
+}
+
+void handlemap_VkRenderingInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkRenderingInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkRect2D(handlemap, (VkRect2D*)(&toMap->renderArea));
+    if (toMap)
+    {
+        if (toMap->pColorAttachments)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->colorAttachmentCount; ++i)
+            {
+                handlemap_VkRenderingAttachmentInfoKHR(handlemap, (VkRenderingAttachmentInfoKHR*)(toMap->pColorAttachments + i));
+            }
+        }
+    }
+    if (toMap->pDepthAttachment)
+    {
+        handlemap_VkRenderingAttachmentInfoKHR(handlemap, (VkRenderingAttachmentInfoKHR*)(toMap->pDepthAttachment));
+    }
+    if (toMap->pStencilAttachment)
+    {
+        handlemap_VkRenderingAttachmentInfoKHR(handlemap, (VkRenderingAttachmentInfoKHR*)(toMap->pStencilAttachment));
+    }
+}
+
+void handlemap_VkPipelineRenderingCreateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkPipelineRenderingCreateInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceDynamicRenderingFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDynamicRenderingFeaturesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkCommandBufferInheritanceRenderingInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkCommandBufferInheritanceRenderingInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkRenderingFragmentShadingRateAttachmentInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkRenderingFragmentShadingRateAttachmentInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkImageView((VkImageView*)&toMap->imageView);
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->shadingRateAttachmentTexelSize));
+}
+
+void handlemap_VkRenderingFragmentDensityMapAttachmentInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkRenderingFragmentDensityMapAttachmentInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkImageView((VkImageView*)&toMap->imageView);
+}
+
+void handlemap_VkAttachmentSampleCountInfoAMD(
+    VulkanHandleMapping* handlemap,
+    VkAttachmentSampleCountInfoAMD* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkMultiviewPerViewAttributesInfoNVX(
+    VulkanHandleMapping* handlemap,
+    VkMultiviewPerViewAttributesInfoNVX* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
 #ifdef VK_KHR_multiview
 #endif
 #ifdef VK_KHR_get_physical_device_properties2
@@ -4187,6 +4598,20 @@
 #endif
 #ifdef VK_KHR_separate_depth_stencil_layouts
 #endif
+#ifdef VK_KHR_present_wait
+void handlemap_VkPhysicalDevicePresentWaitFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePresentWaitFeaturesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
 #ifdef VK_KHR_uniform_buffer_standard_layout
 #endif
 #ifdef VK_KHR_buffer_device_address
@@ -4278,6 +4703,32 @@
 }
 
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+void handlemap_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* 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,
@@ -4298,6 +4749,304 @@
 #endif
 #ifdef VK_KHR_shader_non_semantic_info
 #endif
+#ifdef VK_KHR_present_id
+void handlemap_VkPresentIdKHR(
+    VulkanHandleMapping* handlemap,
+    VkPresentIdKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDevicePresentIdFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePresentIdFeaturesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_video_encode_queue
+void handlemap_VkVideoEncodeInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->codedExtent));
+    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->dstBitstreamBuffer);
+    handlemap_VkVideoPictureResourceKHR(handlemap, (VkVideoPictureResourceKHR*)(&toMap->srcPictureResource));
+    if (toMap->pSetupReferenceSlot)
+    {
+        handlemap_VkVideoReferenceSlotKHR(handlemap, (VkVideoReferenceSlotKHR*)(toMap->pSetupReferenceSlot));
+    }
+    if (toMap)
+    {
+        if (toMap->pReferenceSlots)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->referenceSlotCount; ++i)
+            {
+                handlemap_VkVideoReferenceSlotKHR(handlemap, (VkVideoReferenceSlotKHR*)(toMap->pReferenceSlots + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkVideoEncodeRateControlInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeRateControlInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_synchronization2
+void handlemap_VkMemoryBarrier2KHR(
+    VulkanHandleMapping* handlemap,
+    VkMemoryBarrier2KHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkBufferMemoryBarrier2KHR(
+    VulkanHandleMapping* handlemap,
+    VkBufferMemoryBarrier2KHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->buffer);
+}
+
+void handlemap_VkImageMemoryBarrier2KHR(
+    VulkanHandleMapping* handlemap,
+    VkImageMemoryBarrier2KHR* 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_VkDependencyInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkDependencyInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap)
+    {
+        if (toMap->pMemoryBarriers)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->memoryBarrierCount; ++i)
+            {
+                handlemap_VkMemoryBarrier2KHR(handlemap, (VkMemoryBarrier2KHR*)(toMap->pMemoryBarriers + i));
+            }
+        }
+    }
+    if (toMap)
+    {
+        if (toMap->pBufferMemoryBarriers)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->bufferMemoryBarrierCount; ++i)
+            {
+                handlemap_VkBufferMemoryBarrier2KHR(handlemap, (VkBufferMemoryBarrier2KHR*)(toMap->pBufferMemoryBarriers + i));
+            }
+        }
+    }
+    if (toMap)
+    {
+        if (toMap->pImageMemoryBarriers)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->imageMemoryBarrierCount; ++i)
+            {
+                handlemap_VkImageMemoryBarrier2KHR(handlemap, (VkImageMemoryBarrier2KHR*)(toMap->pImageMemoryBarriers + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkSemaphoreSubmitInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkSemaphoreSubmitInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkSemaphore((VkSemaphore*)&toMap->semaphore);
+}
+
+void handlemap_VkCommandBufferSubmitInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkCommandBufferSubmitInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkCommandBuffer((VkCommandBuffer*)&toMap->commandBuffer);
+}
+
+void handlemap_VkSubmitInfo2KHR(
+    VulkanHandleMapping* handlemap,
+    VkSubmitInfo2KHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap)
+    {
+        if (toMap->pWaitSemaphoreInfos)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->waitSemaphoreInfoCount; ++i)
+            {
+                handlemap_VkSemaphoreSubmitInfoKHR(handlemap, (VkSemaphoreSubmitInfoKHR*)(toMap->pWaitSemaphoreInfos + i));
+            }
+        }
+    }
+    if (toMap)
+    {
+        if (toMap->pCommandBufferInfos)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->commandBufferInfoCount; ++i)
+            {
+                handlemap_VkCommandBufferSubmitInfoKHR(handlemap, (VkCommandBufferSubmitInfoKHR*)(toMap->pCommandBufferInfos + i));
+            }
+        }
+    }
+    if (toMap)
+    {
+        if (toMap->pSignalSemaphoreInfos)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->signalSemaphoreInfoCount; ++i)
+            {
+                handlemap_VkSemaphoreSubmitInfoKHR(handlemap, (VkSemaphoreSubmitInfoKHR*)(toMap->pSignalSemaphoreInfos + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkPhysicalDeviceSynchronization2FeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceSynchronization2FeaturesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkQueueFamilyCheckpointProperties2NV(
+    VulkanHandleMapping* handlemap,
+    VkQueueFamilyCheckpointProperties2NV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkCheckpointData2NV(
+    VulkanHandleMapping* handlemap,
+    VkCheckpointData2NV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+void handlemap_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+void handlemap_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+void handlemap_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
 #ifdef VK_KHR_copy_commands2
 void handlemap_VkBufferCopy2KHR(
     VulkanHandleMapping* handlemap,
@@ -4527,6 +5276,78 @@
 }
 
 #endif
+#ifdef VK_KHR_format_feature_flags2
+void handlemap_VkFormatProperties3KHR(
+    VulkanHandleMapping* handlemap,
+    VkFormatProperties3KHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_maintenance4
+void handlemap_VkPhysicalDeviceMaintenance4FeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceMaintenance4FeaturesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceMaintenance4PropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceMaintenance4PropertiesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkDeviceBufferMemoryRequirementsKHR(
+    VulkanHandleMapping* handlemap,
+    VkDeviceBufferMemoryRequirementsKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pCreateInfo)
+    {
+        handlemap_VkBufferCreateInfo(handlemap, (VkBufferCreateInfo*)(toMap->pCreateInfo));
+    }
+}
+
+void handlemap_VkDeviceImageMemoryRequirementsKHR(
+    VulkanHandleMapping* handlemap,
+    VkDeviceImageMemoryRequirementsKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pCreateInfo)
+    {
+        handlemap_VkImageCreateInfo(handlemap, (VkImageCreateInfo*)(toMap->pCreateInfo));
+    }
+}
+
+#endif
 #ifdef VK_ANDROID_native_buffer
 void handlemap_VkNativeBufferANDROID(
     VulkanHandleMapping* handlemap,
@@ -4697,6 +5518,46 @@
 }
 
 #endif
+#ifdef VK_NVX_binary_import
+void handlemap_VkCuModuleCreateInfoNVX(
+    VulkanHandleMapping* handlemap,
+    VkCuModuleCreateInfoNVX* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkCuFunctionCreateInfoNVX(
+    VulkanHandleMapping* handlemap,
+    VkCuFunctionCreateInfoNVX* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkCuModuleNVX((VkCuModuleNVX*)&toMap->module);
+}
+
+void handlemap_VkCuLaunchInfoNVX(
+    VulkanHandleMapping* handlemap,
+    VkCuLaunchInfoNVX* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkCuFunctionNVX((VkCuFunctionNVX*)&toMap->function);
+}
+
+#endif
 #ifdef VK_NVX_image_view_handle
 void handlemap_VkImageViewHandleInfoNVX(
     VulkanHandleMapping* handlemap,
@@ -4733,6 +5594,461 @@
 #endif
 #ifdef VK_AMD_shader_ballot
 #endif
+#ifdef VK_EXT_video_encode_h264
+void handlemap_VkVideoEncodeH264CapabilitiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH264CapabilitiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->minPictureSizeInMbs));
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->maxPictureSizeInMbs));
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->inputImageDataAlignment));
+    handlemap_VkExtensionProperties(handlemap, (VkExtensionProperties*)(&toMap->stdExtensionVersion));
+}
+
+void handlemap_VkVideoEncodeH264SessionCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH264SessionCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->maxPictureSizeInMbs));
+    if (toMap->pStdExtensionVersion)
+    {
+        handlemap_VkExtensionProperties(handlemap, (VkExtensionProperties*)(toMap->pStdExtensionVersion));
+    }
+}
+
+void handlemap_VkVideoEncodeH264SessionParametersAddInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH264SessionParametersAddInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkVideoEncodeH264SessionParametersCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH264SessionParametersCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pParametersAddInfo)
+    {
+        handlemap_VkVideoEncodeH264SessionParametersAddInfoEXT(handlemap, (VkVideoEncodeH264SessionParametersAddInfoEXT*)(toMap->pParametersAddInfo));
+    }
+}
+
+void handlemap_VkVideoEncodeH264DpbSlotInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH264DpbSlotInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkVideoEncodeH264NaluSliceEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH264NaluSliceEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap)
+    {
+        if (toMap->pRefFinalList0Entries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->refFinalList0EntryCount; ++i)
+            {
+                handlemap_VkVideoEncodeH264DpbSlotInfoEXT(handlemap, (VkVideoEncodeH264DpbSlotInfoEXT*)(toMap->pRefFinalList0Entries + i));
+            }
+        }
+    }
+    if (toMap)
+    {
+        if (toMap->pRefFinalList1Entries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->refFinalList1EntryCount; ++i)
+            {
+                handlemap_VkVideoEncodeH264DpbSlotInfoEXT(handlemap, (VkVideoEncodeH264DpbSlotInfoEXT*)(toMap->pRefFinalList1Entries + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkVideoEncodeH264VclFrameInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH264VclFrameInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap)
+    {
+        if (toMap->pRefDefaultFinalList0Entries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->refDefaultFinalList0EntryCount; ++i)
+            {
+                handlemap_VkVideoEncodeH264DpbSlotInfoEXT(handlemap, (VkVideoEncodeH264DpbSlotInfoEXT*)(toMap->pRefDefaultFinalList0Entries + i));
+            }
+        }
+    }
+    if (toMap)
+    {
+        if (toMap->pRefDefaultFinalList1Entries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->refDefaultFinalList1EntryCount; ++i)
+            {
+                handlemap_VkVideoEncodeH264DpbSlotInfoEXT(handlemap, (VkVideoEncodeH264DpbSlotInfoEXT*)(toMap->pRefDefaultFinalList1Entries + i));
+            }
+        }
+    }
+    if (toMap)
+    {
+        if (toMap->pNaluSliceEntries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->naluSliceEntryCount; ++i)
+            {
+                handlemap_VkVideoEncodeH264NaluSliceEXT(handlemap, (VkVideoEncodeH264NaluSliceEXT*)(toMap->pNaluSliceEntries + i));
+            }
+        }
+    }
+    if (toMap->pCurrentPictureInfo)
+    {
+        handlemap_VkVideoEncodeH264DpbSlotInfoEXT(handlemap, (VkVideoEncodeH264DpbSlotInfoEXT*)(toMap->pCurrentPictureInfo));
+    }
+}
+
+void handlemap_VkVideoEncodeH264EmitPictureParametersEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH264EmitPictureParametersEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkVideoEncodeH264ProfileEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH264ProfileEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_video_encode_h265
+void handlemap_VkVideoEncodeH265CapabilitiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH265CapabilitiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->inputImageDataAlignment));
+    handlemap_VkExtensionProperties(handlemap, (VkExtensionProperties*)(&toMap->stdExtensionVersion));
+}
+
+void handlemap_VkVideoEncodeH265SessionCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH265SessionCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pStdExtensionVersion)
+    {
+        handlemap_VkExtensionProperties(handlemap, (VkExtensionProperties*)(toMap->pStdExtensionVersion));
+    }
+}
+
+void handlemap_VkVideoEncodeH265SessionParametersAddInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH265SessionParametersAddInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkVideoEncodeH265SessionParametersCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH265SessionParametersCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pParametersAddInfo)
+    {
+        handlemap_VkVideoEncodeH265SessionParametersAddInfoEXT(handlemap, (VkVideoEncodeH265SessionParametersAddInfoEXT*)(toMap->pParametersAddInfo));
+    }
+}
+
+void handlemap_VkVideoEncodeH265DpbSlotInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH265DpbSlotInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkVideoEncodeH265ReferenceListsEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH265ReferenceListsEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap)
+    {
+        if (toMap->pReferenceList0Entries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->referenceList0EntryCount; ++i)
+            {
+                handlemap_VkVideoEncodeH265DpbSlotInfoEXT(handlemap, (VkVideoEncodeH265DpbSlotInfoEXT*)(toMap->pReferenceList0Entries + i));
+            }
+        }
+    }
+    if (toMap)
+    {
+        if (toMap->pReferenceList1Entries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->referenceList1EntryCount; ++i)
+            {
+                handlemap_VkVideoEncodeH265DpbSlotInfoEXT(handlemap, (VkVideoEncodeH265DpbSlotInfoEXT*)(toMap->pReferenceList1Entries + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkVideoEncodeH265NaluSliceEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH265NaluSliceEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pReferenceFinalLists)
+    {
+        handlemap_VkVideoEncodeH265ReferenceListsEXT(handlemap, (VkVideoEncodeH265ReferenceListsEXT*)(toMap->pReferenceFinalLists));
+    }
+}
+
+void handlemap_VkVideoEncodeH265VclFrameInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH265VclFrameInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pReferenceFinalLists)
+    {
+        handlemap_VkVideoEncodeH265ReferenceListsEXT(handlemap, (VkVideoEncodeH265ReferenceListsEXT*)(toMap->pReferenceFinalLists));
+    }
+    if (toMap)
+    {
+        if (toMap->pNaluSliceEntries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->naluSliceEntryCount; ++i)
+            {
+                handlemap_VkVideoEncodeH265NaluSliceEXT(handlemap, (VkVideoEncodeH265NaluSliceEXT*)(toMap->pNaluSliceEntries + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkVideoEncodeH265EmitPictureParametersEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH265EmitPictureParametersEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkVideoEncodeH265ProfileEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH265ProfileEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_video_decode_h264
+void handlemap_VkVideoDecodeH264ProfileEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH264ProfileEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkVideoDecodeH264CapabilitiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH264CapabilitiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkOffset2D(handlemap, (VkOffset2D*)(&toMap->fieldOffsetGranularity));
+    handlemap_VkExtensionProperties(handlemap, (VkExtensionProperties*)(&toMap->stdExtensionVersion));
+}
+
+void handlemap_VkVideoDecodeH264SessionCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH264SessionCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pStdExtensionVersion)
+    {
+        handlemap_VkExtensionProperties(handlemap, (VkExtensionProperties*)(toMap->pStdExtensionVersion));
+    }
+}
+
+void handlemap_VkVideoDecodeH264SessionParametersAddInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH264SessionParametersAddInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkVideoDecodeH264SessionParametersCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH264SessionParametersCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pParametersAddInfo)
+    {
+        handlemap_VkVideoDecodeH264SessionParametersAddInfoEXT(handlemap, (VkVideoDecodeH264SessionParametersAddInfoEXT*)(toMap->pParametersAddInfo));
+    }
+}
+
+void handlemap_VkVideoDecodeH264PictureInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH264PictureInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkVideoDecodeH264MvcEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH264MvcEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkVideoDecodeH264DpbSlotInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH264DpbSlotInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
 void handlemap_VkTextureLODGatherFormatPropertiesAMD(
     VulkanHandleMapping* handlemap,
@@ -5514,6 +6830,19 @@
     }
 }
 
+void handlemap_VkAndroidHardwareBufferFormatProperties2ANDROID(
+    VulkanHandleMapping* handlemap,
+    VkAndroidHardwareBufferFormatProperties2ANDROID* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkComponentMapping(handlemap, (VkComponentMapping*)(&toMap->samplerYcbcrConversionComponents));
+}
+
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
 #endif
@@ -5882,6 +7211,36 @@
     }
 }
 
+void handlemap_VkDrmFormatModifierProperties2EXT(
+    VulkanHandleMapping* handlemap,
+    VkDrmFormatModifierProperties2EXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkDrmFormatModifierPropertiesList2EXT(
+    VulkanHandleMapping* handlemap,
+    VkDrmFormatModifierPropertiesList2EXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap)
+    {
+        if (toMap->pDrmFormatModifierProperties)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->drmFormatModifierCount; ++i)
+            {
+                handlemap_VkDrmFormatModifierProperties2EXT(handlemap, (VkDrmFormatModifierProperties2EXT*)(toMap->pDrmFormatModifierProperties + i));
+            }
+        }
+    }
+}
+
 #endif
 #ifdef VK_EXT_validation_cache
 void handlemap_VkValidationCacheCreateInfoEXT(
@@ -6383,6 +7742,101 @@
 }
 
 #endif
+#ifdef VK_EXT_video_decode_h265
+void handlemap_VkVideoDecodeH265ProfileEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH265ProfileEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkVideoDecodeH265CapabilitiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH265CapabilitiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkExtensionProperties(handlemap, (VkExtensionProperties*)(&toMap->stdExtensionVersion));
+}
+
+void handlemap_VkVideoDecodeH265SessionCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH265SessionCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pStdExtensionVersion)
+    {
+        handlemap_VkExtensionProperties(handlemap, (VkExtensionProperties*)(toMap->pStdExtensionVersion));
+    }
+}
+
+void handlemap_VkVideoDecodeH265SessionParametersAddInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH265SessionParametersAddInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkVideoDecodeH265SessionParametersCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH265SessionParametersCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pParametersAddInfo)
+    {
+        handlemap_VkVideoDecodeH265SessionParametersAddInfoEXT(handlemap, (VkVideoDecodeH265SessionParametersAddInfoEXT*)(toMap->pParametersAddInfo));
+    }
+}
+
+void handlemap_VkVideoDecodeH265PictureInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH265PictureInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkVideoDecodeH265DpbSlotInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH265DpbSlotInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
 void handlemap_VkDeviceMemoryOverallocationCreateInfoAMD(
     VulkanHandleMapping* handlemap,
@@ -7157,6 +8611,44 @@
 }
 
 #endif
+#ifdef VK_EXT_provoking_vertex
+void handlemap_VkPhysicalDeviceProvokingVertexFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceProvokingVertexFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceProvokingVertexPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceProvokingVertexPropertiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* 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,
@@ -7291,6 +8783,20 @@
 }
 
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+void handlemap_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* 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,
@@ -7504,6 +9010,36 @@
 }
 
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+void handlemap_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceInheritedViewportScissorFeaturesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkCommandBufferInheritanceViewportScissorInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkCommandBufferInheritanceViewportScissorInfoNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pViewportDepths)
+    {
+        handlemap_VkViewport(handlemap, (VkViewport*)(toMap->pViewportDepths));
+    }
+}
+
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
 void handlemap_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
     VulkanHandleMapping* handlemap,
@@ -7595,6 +9131,8 @@
 }
 
 #endif
+#ifdef VK_EXT_acquire_drm_display
+#endif
 #ifdef VK_EXT_robustness2
 void handlemap_VkPhysicalDeviceRobustness2FeaturesEXT(
     VulkanHandleMapping* handlemap,
@@ -7780,6 +9318,115 @@
 }
 
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+void handlemap_VkDeviceOrHostAddressConstKHR(
+    VulkanHandleMapping* handlemap,
+    VkDeviceOrHostAddressConstKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkAccelerationStructureGeometryMotionTrianglesDataNV(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureGeometryMotionTrianglesDataNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkDeviceOrHostAddressConstKHR(handlemap, (VkDeviceOrHostAddressConstKHR*)(&toMap->vertexData));
+}
+
+void handlemap_VkAccelerationStructureMotionInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureMotionInfoNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkAccelerationStructureMatrixMotionInstanceNV(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureMatrixMotionInstanceNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    handlemap_VkTransformMatrixKHR(handlemap, (VkTransformMatrixKHR*)(&toMap->transformT0));
+    handlemap_VkTransformMatrixKHR(handlemap, (VkTransformMatrixKHR*)(&toMap->transformT1));
+}
+
+void handlemap_VkSRTDataNV(
+    VulkanHandleMapping* handlemap,
+    VkSRTDataNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkAccelerationStructureSRTMotionInstanceNV(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureSRTMotionInstanceNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    handlemap_VkSRTDataNV(handlemap, (VkSRTDataNV*)(&toMap->transformT0));
+    handlemap_VkSRTDataNV(handlemap, (VkSRTDataNV*)(&toMap->transformT1));
+}
+
+void handlemap_VkAccelerationStructureMotionInstanceDataNV(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureMotionInstanceDataNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    handlemap_VkAccelerationStructureInstanceKHR(handlemap, (VkAccelerationStructureInstanceKHR*)(&toMap->staticInstance));
+    handlemap_VkAccelerationStructureMatrixMotionInstanceNV(handlemap, (VkAccelerationStructureMatrixMotionInstanceNV*)(&toMap->matrixMotionInstance));
+    handlemap_VkAccelerationStructureSRTMotionInstanceNV(handlemap, (VkAccelerationStructureSRTMotionInstanceNV*)(&toMap->srtMotionInstance));
+}
+
+void handlemap_VkAccelerationStructureMotionInstanceNV(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureMotionInstanceNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    handlemap_VkAccelerationStructureMotionInstanceDataNV(handlemap, (VkAccelerationStructureMotionInstanceDataNV*)(&toMap->data));
+}
+
+void handlemap_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+void handlemap_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* 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,
@@ -7848,6 +9495,22 @@
 }
 
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+void handlemap_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_acquire_winrt_display
+#endif
 #ifdef VK_EXT_directfb_surface
 void handlemap_VkDirectFBSurfaceCreateInfoEXT(
     VulkanHandleMapping* handlemap,
@@ -7862,6 +9525,462 @@
 }
 
 #endif
+#ifdef VK_VALVE_mutable_descriptor_type
+void handlemap_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkMutableDescriptorTypeListVALVE(
+    VulkanHandleMapping* handlemap,
+    VkMutableDescriptorTypeListVALVE* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkMutableDescriptorTypeCreateInfoVALVE(
+    VulkanHandleMapping* handlemap,
+    VkMutableDescriptorTypeCreateInfoVALVE* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap)
+    {
+        if (toMap->pMutableDescriptorTypeLists)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->mutableDescriptorTypeListCount; ++i)
+            {
+                handlemap_VkMutableDescriptorTypeListVALVE(handlemap, (VkMutableDescriptorTypeListVALVE*)(toMap->pMutableDescriptorTypeLists + i));
+            }
+        }
+    }
+}
+
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+void handlemap_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkVertexInputBindingDescription2EXT(
+    VulkanHandleMapping* handlemap,
+    VkVertexInputBindingDescription2EXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkVertexInputAttributeDescription2EXT(
+    VulkanHandleMapping* handlemap,
+    VkVertexInputAttributeDescription2EXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_physical_device_drm
+void handlemap_VkPhysicalDeviceDrmPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDrmPropertiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+void handlemap_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_FUCHSIA_external_memory
+void handlemap_VkImportMemoryZirconHandleInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkImportMemoryZirconHandleInfoFUCHSIA* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkMemoryZirconHandlePropertiesFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkMemoryZirconHandlePropertiesFUCHSIA* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkMemoryGetZirconHandleInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkMemoryGetZirconHandleInfoFUCHSIA* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkDeviceMemory((VkDeviceMemory*)&toMap->memory);
+}
+
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+void handlemap_VkImportSemaphoreZirconHandleInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkImportSemaphoreZirconHandleInfoFUCHSIA* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkSemaphore((VkSemaphore*)&toMap->semaphore);
+}
+
+void handlemap_VkSemaphoreGetZirconHandleInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkSemaphoreGetZirconHandleInfoFUCHSIA* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkSemaphore((VkSemaphore*)&toMap->semaphore);
+}
+
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+void handlemap_VkBufferCollectionCreateInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkBufferCollectionCreateInfoFUCHSIA* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkImportMemoryBufferCollectionFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkImportMemoryBufferCollectionFUCHSIA* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkBufferCollectionFUCHSIA((VkBufferCollectionFUCHSIA*)&toMap->collection);
+}
+
+void handlemap_VkBufferCollectionImageCreateInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkBufferCollectionImageCreateInfoFUCHSIA* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkBufferCollectionFUCHSIA((VkBufferCollectionFUCHSIA*)&toMap->collection);
+}
+
+void handlemap_VkBufferCollectionConstraintsInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkBufferCollectionConstraintsInfoFUCHSIA* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkBufferConstraintsInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkBufferConstraintsInfoFUCHSIA* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkBufferCreateInfo(handlemap, (VkBufferCreateInfo*)(&toMap->createInfo));
+    handlemap_VkBufferCollectionConstraintsInfoFUCHSIA(handlemap, (VkBufferCollectionConstraintsInfoFUCHSIA*)(&toMap->bufferCollectionConstraints));
+}
+
+void handlemap_VkBufferCollectionBufferCreateInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkBufferCollectionBufferCreateInfoFUCHSIA* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkBufferCollectionFUCHSIA((VkBufferCollectionFUCHSIA*)&toMap->collection);
+}
+
+void handlemap_VkSysmemColorSpaceFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkSysmemColorSpaceFUCHSIA* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkBufferCollectionPropertiesFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkBufferCollectionPropertiesFUCHSIA* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkSysmemColorSpaceFUCHSIA(handlemap, (VkSysmemColorSpaceFUCHSIA*)(&toMap->sysmemColorSpaceIndex));
+    handlemap_VkComponentMapping(handlemap, (VkComponentMapping*)(&toMap->samplerYcbcrConversionComponents));
+}
+
+void handlemap_VkImageFormatConstraintsInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkImageFormatConstraintsInfoFUCHSIA* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkImageCreateInfo(handlemap, (VkImageCreateInfo*)(&toMap->imageCreateInfo));
+    if (toMap->pColorSpaces)
+    {
+        handlemap_VkSysmemColorSpaceFUCHSIA(handlemap, (VkSysmemColorSpaceFUCHSIA*)(toMap->pColorSpaces));
+    }
+}
+
+void handlemap_VkImageConstraintsInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkImageConstraintsInfoFUCHSIA* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap)
+    {
+        if (toMap->pFormatConstraints)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->formatConstraintsCount; ++i)
+            {
+                handlemap_VkImageFormatConstraintsInfoFUCHSIA(handlemap, (VkImageFormatConstraintsInfoFUCHSIA*)(toMap->pFormatConstraints + i));
+            }
+        }
+    }
+    handlemap_VkBufferCollectionConstraintsInfoFUCHSIA(handlemap, (VkBufferCollectionConstraintsInfoFUCHSIA*)(&toMap->bufferCollectionConstraints));
+}
+
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+void handlemap_VkSubpassShadingPipelineCreateInfoHUAWEI(
+    VulkanHandleMapping* handlemap,
+    VkSubpassShadingPipelineCreateInfoHUAWEI* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkRenderPass((VkRenderPass*)&toMap->renderPass);
+}
+
+void handlemap_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+void handlemap_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_external_memory_rdma
+void handlemap_VkMemoryGetRemoteAddressInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkMemoryGetRemoteAddressInfoNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkDeviceMemory((VkDeviceMemory*)&toMap->memory);
+}
+
+void handlemap_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+void handlemap_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_QNX_screen_surface
+void handlemap_VkScreenSurfaceCreateInfoQNX(
+    VulkanHandleMapping* handlemap,
+    VkScreenSurfaceCreateInfoQNX* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_color_write_enable
+void handlemap_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceColorWriteEnableFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPipelineColorWriteCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkPipelineColorWriteCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
 #ifdef VK_GOOGLE_gfxstream
 void handlemap_VkImportColorBufferGOOGLE(
     VulkanHandleMapping* handlemap,
@@ -7900,18 +10019,121 @@
 }
 
 #endif
-#ifdef VK_KHR_acceleration_structure
-void handlemap_VkDeviceOrHostAddressKHR(
+#ifdef VK_EXT_global_priority_query
+void handlemap_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(
     VulkanHandleMapping* handlemap,
-    VkDeviceOrHostAddressKHR* toMap)
+    VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkQueueFamilyGlobalPriorityPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkQueueFamilyGlobalPriorityPropertiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_multi_draw
+void handlemap_VkPhysicalDeviceMultiDrawFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceMultiDrawFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceMultiDrawPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceMultiDrawPropertiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkMultiDrawInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkMultiDrawInfoEXT* toMap)
 {
     (void)handlemap;
     (void)toMap;
 }
 
-void handlemap_VkDeviceOrHostAddressConstKHR(
+void handlemap_VkMultiDrawIndexedInfoEXT(
     VulkanHandleMapping* handlemap,
-    VkDeviceOrHostAddressConstKHR* toMap)
+    VkMultiDrawIndexedInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+#endif
+#ifdef VK_EXT_load_store_op_none
+#endif
+#ifdef VK_EXT_border_color_swizzle
+void handlemap_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkSamplerBorderColorComponentMappingCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkSamplerBorderColorComponentMappingCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkComponentMapping(handlemap, (VkComponentMapping*)(&toMap->components));
+}
+
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+void handlemap_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_acceleration_structure
+void handlemap_VkDeviceOrHostAddressKHR(
+    VulkanHandleMapping* handlemap,
+    VkDeviceOrHostAddressKHR* toMap)
 {
     (void)handlemap;
     (void)toMap;
@@ -8703,6 +10925,60 @@
             break;
         }
 #endif
+#ifdef VK_KHR_video_queue
+        case VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR:
+        {
+            handlemap_VkVideoQueueFamilyProperties2KHR(handlemap, reinterpret_cast<VkVideoQueueFamilyProperties2KHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR:
+        {
+            handlemap_VkVideoProfileKHR(handlemap, reinterpret_cast<VkVideoProfileKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR:
+        {
+            handlemap_VkVideoProfilesKHR(handlemap, reinterpret_cast<VkVideoProfilesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_dynamic_rendering
+        case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR:
+        {
+            handlemap_VkPipelineRenderingCreateInfoKHR(handlemap, reinterpret_cast<VkPipelineRenderingCreateInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR:
+        {
+            handlemap_VkPhysicalDeviceDynamicRenderingFeaturesKHR(handlemap, reinterpret_cast<VkPhysicalDeviceDynamicRenderingFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR:
+        {
+            handlemap_VkCommandBufferInheritanceRenderingInfoKHR(handlemap, reinterpret_cast<VkCommandBufferInheritanceRenderingInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
+        {
+            handlemap_VkRenderingFragmentShadingRateAttachmentInfoKHR(handlemap, reinterpret_cast<VkRenderingFragmentShadingRateAttachmentInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:
+        {
+            handlemap_VkRenderingFragmentDensityMapAttachmentInfoEXT(handlemap, reinterpret_cast<VkRenderingFragmentDensityMapAttachmentInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:
+        {
+            handlemap_VkAttachmentSampleCountInfoAMD(handlemap, reinterpret_cast<VkAttachmentSampleCountInfoAMD*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:
+        {
+            handlemap_VkMultiviewPerViewAttributesInfoNVX(handlemap, reinterpret_cast<VkMultiviewPerViewAttributesInfoNVX*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_KHR_external_memory_win32
         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
         {
@@ -8846,6 +11122,13 @@
             break;
         }
 #endif
+#ifdef VK_KHR_present_wait
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:
+        {
+            handlemap_VkPhysicalDevicePresentWaitFeaturesKHR(handlemap, reinterpret_cast<VkPhysicalDevicePresentWaitFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_KHR_pipeline_executable_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
         {
@@ -8853,6 +11136,94 @@
             break;
         }
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR:
+        {
+            handlemap_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(handlemap, reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR:
+        {
+            handlemap_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(handlemap, reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_present_id
+        case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:
+        {
+            handlemap_VkPresentIdKHR(handlemap, reinterpret_cast<VkPresentIdKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:
+        {
+            handlemap_VkPhysicalDevicePresentIdFeaturesKHR(handlemap, reinterpret_cast<VkPhysicalDevicePresentIdFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_video_encode_queue
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:
+        {
+            handlemap_VkVideoEncodeRateControlInfoKHR(handlemap, reinterpret_cast<VkVideoEncodeRateControlInfoKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_synchronization2
+        case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR:
+        {
+            handlemap_VkMemoryBarrier2KHR(handlemap, reinterpret_cast<VkMemoryBarrier2KHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR:
+        {
+            handlemap_VkPhysicalDeviceSynchronization2FeaturesKHR(handlemap, reinterpret_cast<VkPhysicalDeviceSynchronization2FeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:
+        {
+            handlemap_VkQueueFamilyCheckpointProperties2NV(handlemap, reinterpret_cast<VkQueueFamilyCheckpointProperties2NV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR:
+        {
+            handlemap_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(handlemap, reinterpret_cast<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR:
+        {
+            handlemap_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(handlemap, reinterpret_cast<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:
+        {
+            handlemap_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(handlemap, reinterpret_cast<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_format_feature_flags2
+        case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR:
+        {
+            handlemap_VkFormatProperties3KHR(handlemap, reinterpret_cast<VkFormatProperties3KHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_maintenance4
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR:
+        {
+            handlemap_VkPhysicalDeviceMaintenance4FeaturesKHR(handlemap, reinterpret_cast<VkPhysicalDeviceMaintenance4FeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR:
+        {
+            handlemap_VkPhysicalDeviceMaintenance4PropertiesKHR(handlemap, reinterpret_cast<VkPhysicalDeviceMaintenance4PropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_ANDROID_native_buffer
         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
         {
@@ -8908,6 +11279,122 @@
             break;
         }
 #endif
+#ifdef VK_EXT_video_encode_h264
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT:
+        {
+            handlemap_VkVideoEncodeH264CapabilitiesEXT(handlemap, reinterpret_cast<VkVideoEncodeH264CapabilitiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT:
+        {
+            handlemap_VkVideoEncodeH264SessionCreateInfoEXT(handlemap, reinterpret_cast<VkVideoEncodeH264SessionCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            handlemap_VkVideoEncodeH264SessionParametersAddInfoEXT(handlemap, reinterpret_cast<VkVideoEncodeH264SessionParametersAddInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            handlemap_VkVideoEncodeH264SessionParametersCreateInfoEXT(handlemap, reinterpret_cast<VkVideoEncodeH264SessionParametersCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT:
+        {
+            handlemap_VkVideoEncodeH264VclFrameInfoEXT(handlemap, reinterpret_cast<VkVideoEncodeH264VclFrameInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT:
+        {
+            handlemap_VkVideoEncodeH264EmitPictureParametersEXT(handlemap, reinterpret_cast<VkVideoEncodeH264EmitPictureParametersEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT:
+        {
+            handlemap_VkVideoEncodeH264ProfileEXT(handlemap, reinterpret_cast<VkVideoEncodeH264ProfileEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_video_encode_h265
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT:
+        {
+            handlemap_VkVideoEncodeH265CapabilitiesEXT(handlemap, reinterpret_cast<VkVideoEncodeH265CapabilitiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT:
+        {
+            handlemap_VkVideoEncodeH265SessionCreateInfoEXT(handlemap, reinterpret_cast<VkVideoEncodeH265SessionCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            handlemap_VkVideoEncodeH265SessionParametersAddInfoEXT(handlemap, reinterpret_cast<VkVideoEncodeH265SessionParametersAddInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            handlemap_VkVideoEncodeH265SessionParametersCreateInfoEXT(handlemap, reinterpret_cast<VkVideoEncodeH265SessionParametersCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT:
+        {
+            handlemap_VkVideoEncodeH265VclFrameInfoEXT(handlemap, reinterpret_cast<VkVideoEncodeH265VclFrameInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT:
+        {
+            handlemap_VkVideoEncodeH265EmitPictureParametersEXT(handlemap, reinterpret_cast<VkVideoEncodeH265EmitPictureParametersEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT:
+        {
+            handlemap_VkVideoEncodeH265ProfileEXT(handlemap, reinterpret_cast<VkVideoEncodeH265ProfileEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_video_decode_h264
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT:
+        {
+            handlemap_VkVideoDecodeH264ProfileEXT(handlemap, reinterpret_cast<VkVideoDecodeH264ProfileEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT:
+        {
+            handlemap_VkVideoDecodeH264CapabilitiesEXT(handlemap, reinterpret_cast<VkVideoDecodeH264CapabilitiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT:
+        {
+            handlemap_VkVideoDecodeH264SessionCreateInfoEXT(handlemap, reinterpret_cast<VkVideoDecodeH264SessionCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            handlemap_VkVideoDecodeH264SessionParametersAddInfoEXT(handlemap, reinterpret_cast<VkVideoDecodeH264SessionParametersAddInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            handlemap_VkVideoDecodeH264SessionParametersCreateInfoEXT(handlemap, reinterpret_cast<VkVideoDecodeH264SessionParametersCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT:
+        {
+            handlemap_VkVideoDecodeH264PictureInfoEXT(handlemap, reinterpret_cast<VkVideoDecodeH264PictureInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT:
+        {
+            handlemap_VkVideoDecodeH264MvcEXT(handlemap, reinterpret_cast<VkVideoDecodeH264MvcEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT:
+        {
+            handlemap_VkVideoDecodeH264DpbSlotInfoEXT(handlemap, reinterpret_cast<VkVideoDecodeH264DpbSlotInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
@@ -9090,6 +11577,11 @@
             handlemap_VkExternalFormatANDROID(handlemap, reinterpret_cast<VkExternalFormatANDROID*>(structExtension_out));
             break;
         }
+        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:
+        {
+            handlemap_VkAndroidHardwareBufferFormatProperties2ANDROID(handlemap, reinterpret_cast<VkAndroidHardwareBufferFormatProperties2ANDROID*>(structExtension_out));
+            break;
+        }
 #endif
 #ifdef VK_EXT_inline_uniform_block
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:
@@ -9199,6 +11691,11 @@
             handlemap_VkImageDrmFormatModifierExplicitCreateInfoEXT(handlemap, reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>(structExtension_out));
             break;
         }
+        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:
+        {
+            handlemap_VkDrmFormatModifierPropertiesList2EXT(handlemap, reinterpret_cast<VkDrmFormatModifierPropertiesList2EXT*>(structExtension_out));
+            break;
+        }
 #endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
@@ -9298,6 +11795,43 @@
             break;
         }
 #endif
+#ifdef VK_EXT_video_decode_h265
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT:
+        {
+            handlemap_VkVideoDecodeH265ProfileEXT(handlemap, reinterpret_cast<VkVideoDecodeH265ProfileEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT:
+        {
+            handlemap_VkVideoDecodeH265CapabilitiesEXT(handlemap, reinterpret_cast<VkVideoDecodeH265CapabilitiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT:
+        {
+            handlemap_VkVideoDecodeH265SessionCreateInfoEXT(handlemap, reinterpret_cast<VkVideoDecodeH265SessionCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            handlemap_VkVideoDecodeH265SessionParametersAddInfoEXT(handlemap, reinterpret_cast<VkVideoDecodeH265SessionParametersAddInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            handlemap_VkVideoDecodeH265SessionParametersCreateInfoEXT(handlemap, reinterpret_cast<VkVideoDecodeH265SessionParametersCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT:
+        {
+            handlemap_VkVideoDecodeH265PictureInfoEXT(handlemap, reinterpret_cast<VkVideoDecodeH265PictureInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT:
+        {
+            handlemap_VkVideoDecodeH265DpbSlotInfoEXT(handlemap, reinterpret_cast<VkVideoDecodeH265DpbSlotInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
         case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
         {
@@ -9559,6 +12093,23 @@
             break;
         }
 #endif
+#ifdef VK_EXT_provoking_vertex
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceProvokingVertexFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceProvokingVertexFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
+        {
+            handlemap_VkPhysicalDeviceProvokingVertexPropertiesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceProvokingVertexPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:
+        {
+            handlemap_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(handlemap, reinterpret_cast<VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_full_screen_exclusive
         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
         {
@@ -9614,6 +12165,13 @@
             break;
         }
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT*>(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:
         {
@@ -9638,6 +12196,18 @@
             break;
         }
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:
+        {
+            handlemap_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(handlemap, reinterpret_cast<VkPhysicalDeviceInheritedViewportScissorFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:
+        {
+            handlemap_VkCommandBufferInheritanceViewportScissorInfoNV(handlemap, reinterpret_cast<VkCommandBufferInheritanceViewportScissorInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
         {
@@ -9751,6 +12321,30 @@
             break;
         }
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:
+        {
+            handlemap_VkAccelerationStructureGeometryMotionTrianglesDataNV(handlemap, reinterpret_cast<VkAccelerationStructureGeometryMotionTrianglesDataNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:
+        {
+            handlemap_VkAccelerationStructureMotionInfoNV(handlemap, reinterpret_cast<VkAccelerationStructureMotionInfoNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:
+        {
+            handlemap_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(handlemap, reinterpret_cast<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_fragment_density_map2
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
         {
@@ -9784,6 +12378,120 @@
             break;
         }
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_VALVE_mutable_descriptor_type
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE:
+        {
+            handlemap_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(handlemap, reinterpret_cast<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE:
+        {
+            handlemap_VkMutableDescriptorTypeCreateInfoVALVE(handlemap, reinterpret_cast<VkMutableDescriptorTypeCreateInfoVALVE*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_physical_device_drm
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:
+        {
+            handlemap_VkPhysicalDeviceDrmPropertiesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceDrmPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_FUCHSIA_external_memory
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:
+        {
+            handlemap_VkImportMemoryZirconHandleInfoFUCHSIA(handlemap, reinterpret_cast<VkImportMemoryZirconHandleInfoFUCHSIA*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:
+        {
+            handlemap_VkImportMemoryBufferCollectionFUCHSIA(handlemap, reinterpret_cast<VkImportMemoryBufferCollectionFUCHSIA*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:
+        {
+            handlemap_VkBufferCollectionImageCreateInfoFUCHSIA(handlemap, reinterpret_cast<VkBufferCollectionImageCreateInfoFUCHSIA*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:
+        {
+            handlemap_VkBufferCollectionBufferCreateInfoFUCHSIA(handlemap, reinterpret_cast<VkBufferCollectionBufferCreateInfoFUCHSIA*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+        case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:
+        {
+            handlemap_VkSubpassShadingPipelineCreateInfoHUAWEI(handlemap, reinterpret_cast<VkSubpassShadingPipelineCreateInfoHUAWEI*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:
+        {
+            handlemap_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(handlemap, reinterpret_cast<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:
+        {
+            handlemap_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(handlemap, reinterpret_cast<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:
+        {
+            handlemap_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(handlemap, reinterpret_cast<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_external_memory_rdma
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:
+        {
+            handlemap_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(handlemap, reinterpret_cast<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_color_write_enable
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceColorWriteEnableFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:
+        {
+            handlemap_VkPipelineColorWriteCreateInfoEXT(handlemap, reinterpret_cast<VkPipelineColorWriteCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_GOOGLE_gfxstream
         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
         {
@@ -9801,6 +12509,49 @@
             break;
         }
 #endif
+#ifdef VK_EXT_global_priority_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT:
+        {
+            handlemap_VkQueueFamilyGlobalPriorityPropertiesEXT(handlemap, reinterpret_cast<VkQueueFamilyGlobalPriorityPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_multi_draw
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceMultiDrawFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceMultiDrawFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:
+        {
+            handlemap_VkPhysicalDeviceMultiDrawPropertiesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceMultiDrawPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_border_color_swizzle
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:
+        {
+            handlemap_VkSamplerBorderColorComponentMappingCreateInfoEXT(handlemap, reinterpret_cast<VkSamplerBorderColorComponentMappingCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_KHR_acceleration_structure
         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
         {
diff --git a/system/vulkan_enc/goldfish_vk_handlemap_guest.h b/system/vulkan_enc/goldfish_vk_handlemap_guest.h
index d73c8bd..86eed63 100644
--- a/system/vulkan_enc/goldfish_vk_handlemap_guest.h
+++ b/system/vulkan_enc/goldfish_vk_handlemap_guest.h
@@ -98,6 +98,10 @@
     VulkanHandleMapping* handlemap,
     VkMemoryBarrier* toMap);
 
+void handlemap_VkPipelineCacheHeaderVersionOne(
+    VulkanHandleMapping* handlemap,
+    VkPipelineCacheHeaderVersionOne* toMap);
+
 void handlemap_VkAllocationCallbacks(
     VulkanHandleMapping* handlemap,
     VkAllocationCallbacks* toMap);
@@ -1075,6 +1079,118 @@
 #endif
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
+#ifdef VK_KHR_video_queue
+void handlemap_VkVideoQueueFamilyProperties2KHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoQueueFamilyProperties2KHR* toMap);
+
+void handlemap_VkVideoProfileKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoProfileKHR* toMap);
+
+void handlemap_VkVideoProfilesKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoProfilesKHR* toMap);
+
+void handlemap_VkVideoCapabilitiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoCapabilitiesKHR* toMap);
+
+void handlemap_VkPhysicalDeviceVideoFormatInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceVideoFormatInfoKHR* toMap);
+
+void handlemap_VkVideoFormatPropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoFormatPropertiesKHR* toMap);
+
+void handlemap_VkVideoPictureResourceKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoPictureResourceKHR* toMap);
+
+void handlemap_VkVideoReferenceSlotKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoReferenceSlotKHR* toMap);
+
+void handlemap_VkVideoGetMemoryPropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoGetMemoryPropertiesKHR* toMap);
+
+void handlemap_VkVideoBindMemoryKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoBindMemoryKHR* toMap);
+
+void handlemap_VkVideoSessionCreateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoSessionCreateInfoKHR* toMap);
+
+void handlemap_VkVideoSessionParametersCreateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoSessionParametersCreateInfoKHR* toMap);
+
+void handlemap_VkVideoSessionParametersUpdateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoSessionParametersUpdateInfoKHR* toMap);
+
+void handlemap_VkVideoBeginCodingInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoBeginCodingInfoKHR* toMap);
+
+void handlemap_VkVideoEndCodingInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoEndCodingInfoKHR* toMap);
+
+void handlemap_VkVideoCodingControlInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoCodingControlInfoKHR* toMap);
+
+#endif
+#ifdef VK_KHR_video_decode_queue
+void handlemap_VkVideoDecodeInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeInfoKHR* toMap);
+
+#endif
+#ifdef VK_KHR_dynamic_rendering
+void handlemap_VkRenderingAttachmentInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkRenderingAttachmentInfoKHR* toMap);
+
+void handlemap_VkRenderingInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkRenderingInfoKHR* toMap);
+
+void handlemap_VkPipelineRenderingCreateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkPipelineRenderingCreateInfoKHR* toMap);
+
+void handlemap_VkPhysicalDeviceDynamicRenderingFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDynamicRenderingFeaturesKHR* toMap);
+
+void handlemap_VkCommandBufferInheritanceRenderingInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkCommandBufferInheritanceRenderingInfoKHR* toMap);
+
+void handlemap_VkRenderingFragmentShadingRateAttachmentInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkRenderingFragmentShadingRateAttachmentInfoKHR* toMap);
+
+void handlemap_VkRenderingFragmentDensityMapAttachmentInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkRenderingFragmentDensityMapAttachmentInfoEXT* toMap);
+
+void handlemap_VkAttachmentSampleCountInfoAMD(
+    VulkanHandleMapping* handlemap,
+    VkAttachmentSampleCountInfoAMD* toMap);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkAttachmentSampleCountInfoAMD, handlemap_VkAttachmentSampleCountInfoNV)
+
+void handlemap_VkMultiviewPerViewAttributesInfoNVX(
+    VulkanHandleMapping* handlemap,
+    VkMultiviewPerViewAttributesInfoNVX* toMap);
+
+#endif
 #ifdef VK_KHR_multiview
 DEFINE_ALIAS_FUNCTION(handlemap_VkRenderPassMultiviewCreateInfo, handlemap_VkRenderPassMultiviewCreateInfoKHR)
 
@@ -1579,6 +1695,12 @@
 DEFINE_ALIAS_FUNCTION(handlemap_VkAttachmentDescriptionStencilLayout, handlemap_VkAttachmentDescriptionStencilLayoutKHR)
 
 #endif
+#ifdef VK_KHR_present_wait
+void handlemap_VkPhysicalDevicePresentWaitFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePresentWaitFeaturesKHR* toMap);
+
+#endif
 #ifdef VK_KHR_uniform_buffer_standard_layout
 DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceUniformBufferStandardLayoutFeatures, handlemap_VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR)
 
@@ -1627,6 +1749,16 @@
     VkPipelineExecutableInternalRepresentationKHR* toMap);
 
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+void handlemap_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* toMap);
+
+void handlemap_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* toMap);
+
+#endif
 #ifdef VK_KHR_pipeline_library
 void handlemap_VkPipelineLibraryCreateInfoKHR(
     VulkanHandleMapping* handlemap,
@@ -1635,6 +1767,86 @@
 #endif
 #ifdef VK_KHR_shader_non_semantic_info
 #endif
+#ifdef VK_KHR_present_id
+void handlemap_VkPresentIdKHR(
+    VulkanHandleMapping* handlemap,
+    VkPresentIdKHR* toMap);
+
+void handlemap_VkPhysicalDevicePresentIdFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePresentIdFeaturesKHR* toMap);
+
+#endif
+#ifdef VK_KHR_video_encode_queue
+void handlemap_VkVideoEncodeInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeInfoKHR* toMap);
+
+void handlemap_VkVideoEncodeRateControlInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeRateControlInfoKHR* toMap);
+
+#endif
+#ifdef VK_KHR_synchronization2
+void handlemap_VkMemoryBarrier2KHR(
+    VulkanHandleMapping* handlemap,
+    VkMemoryBarrier2KHR* toMap);
+
+void handlemap_VkBufferMemoryBarrier2KHR(
+    VulkanHandleMapping* handlemap,
+    VkBufferMemoryBarrier2KHR* toMap);
+
+void handlemap_VkImageMemoryBarrier2KHR(
+    VulkanHandleMapping* handlemap,
+    VkImageMemoryBarrier2KHR* toMap);
+
+void handlemap_VkDependencyInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkDependencyInfoKHR* toMap);
+
+void handlemap_VkSemaphoreSubmitInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkSemaphoreSubmitInfoKHR* toMap);
+
+void handlemap_VkCommandBufferSubmitInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkCommandBufferSubmitInfoKHR* toMap);
+
+void handlemap_VkSubmitInfo2KHR(
+    VulkanHandleMapping* handlemap,
+    VkSubmitInfo2KHR* toMap);
+
+void handlemap_VkPhysicalDeviceSynchronization2FeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceSynchronization2FeaturesKHR* toMap);
+
+void handlemap_VkQueueFamilyCheckpointProperties2NV(
+    VulkanHandleMapping* handlemap,
+    VkQueueFamilyCheckpointProperties2NV* toMap);
+
+void handlemap_VkCheckpointData2NV(
+    VulkanHandleMapping* handlemap,
+    VkCheckpointData2NV* toMap);
+
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+void handlemap_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* toMap);
+
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+void handlemap_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* toMap);
+
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+void handlemap_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* toMap);
+
+#endif
 #ifdef VK_KHR_copy_commands2
 void handlemap_VkBufferCopy2KHR(
     VulkanHandleMapping* handlemap,
@@ -1681,6 +1893,30 @@
     VkResolveImageInfo2KHR* toMap);
 
 #endif
+#ifdef VK_KHR_format_feature_flags2
+void handlemap_VkFormatProperties3KHR(
+    VulkanHandleMapping* handlemap,
+    VkFormatProperties3KHR* toMap);
+
+#endif
+#ifdef VK_KHR_maintenance4
+void handlemap_VkPhysicalDeviceMaintenance4FeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceMaintenance4FeaturesKHR* toMap);
+
+void handlemap_VkPhysicalDeviceMaintenance4PropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceMaintenance4PropertiesKHR* toMap);
+
+void handlemap_VkDeviceBufferMemoryRequirementsKHR(
+    VulkanHandleMapping* handlemap,
+    VkDeviceBufferMemoryRequirementsKHR* toMap);
+
+void handlemap_VkDeviceImageMemoryRequirementsKHR(
+    VulkanHandleMapping* handlemap,
+    VkDeviceImageMemoryRequirementsKHR* toMap);
+
+#endif
 #ifdef VK_ANDROID_native_buffer
 void handlemap_VkNativeBufferANDROID(
     VulkanHandleMapping* handlemap,
@@ -1753,6 +1989,20 @@
     VkPipelineRasterizationStateStreamCreateInfoEXT* toMap);
 
 #endif
+#ifdef VK_NVX_binary_import
+void handlemap_VkCuModuleCreateInfoNVX(
+    VulkanHandleMapping* handlemap,
+    VkCuModuleCreateInfoNVX* toMap);
+
+void handlemap_VkCuFunctionCreateInfoNVX(
+    VulkanHandleMapping* handlemap,
+    VkCuFunctionCreateInfoNVX* toMap);
+
+void handlemap_VkCuLaunchInfoNVX(
+    VulkanHandleMapping* handlemap,
+    VkCuLaunchInfoNVX* toMap);
+
+#endif
 #ifdef VK_NVX_image_view_handle
 void handlemap_VkImageViewHandleInfoNVX(
     VulkanHandleMapping* handlemap,
@@ -1771,6 +2021,120 @@
 #endif
 #ifdef VK_AMD_shader_ballot
 #endif
+#ifdef VK_EXT_video_encode_h264
+void handlemap_VkVideoEncodeH264CapabilitiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH264CapabilitiesEXT* toMap);
+
+void handlemap_VkVideoEncodeH264SessionCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH264SessionCreateInfoEXT* toMap);
+
+void handlemap_VkVideoEncodeH264SessionParametersAddInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH264SessionParametersAddInfoEXT* toMap);
+
+void handlemap_VkVideoEncodeH264SessionParametersCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH264SessionParametersCreateInfoEXT* toMap);
+
+void handlemap_VkVideoEncodeH264DpbSlotInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH264DpbSlotInfoEXT* toMap);
+
+void handlemap_VkVideoEncodeH264NaluSliceEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH264NaluSliceEXT* toMap);
+
+void handlemap_VkVideoEncodeH264VclFrameInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH264VclFrameInfoEXT* toMap);
+
+void handlemap_VkVideoEncodeH264EmitPictureParametersEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH264EmitPictureParametersEXT* toMap);
+
+void handlemap_VkVideoEncodeH264ProfileEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH264ProfileEXT* toMap);
+
+#endif
+#ifdef VK_EXT_video_encode_h265
+void handlemap_VkVideoEncodeH265CapabilitiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH265CapabilitiesEXT* toMap);
+
+void handlemap_VkVideoEncodeH265SessionCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH265SessionCreateInfoEXT* toMap);
+
+void handlemap_VkVideoEncodeH265SessionParametersAddInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH265SessionParametersAddInfoEXT* toMap);
+
+void handlemap_VkVideoEncodeH265SessionParametersCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH265SessionParametersCreateInfoEXT* toMap);
+
+void handlemap_VkVideoEncodeH265DpbSlotInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH265DpbSlotInfoEXT* toMap);
+
+void handlemap_VkVideoEncodeH265ReferenceListsEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH265ReferenceListsEXT* toMap);
+
+void handlemap_VkVideoEncodeH265NaluSliceEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH265NaluSliceEXT* toMap);
+
+void handlemap_VkVideoEncodeH265VclFrameInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH265VclFrameInfoEXT* toMap);
+
+void handlemap_VkVideoEncodeH265EmitPictureParametersEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH265EmitPictureParametersEXT* toMap);
+
+void handlemap_VkVideoEncodeH265ProfileEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoEncodeH265ProfileEXT* toMap);
+
+#endif
+#ifdef VK_EXT_video_decode_h264
+void handlemap_VkVideoDecodeH264ProfileEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH264ProfileEXT* toMap);
+
+void handlemap_VkVideoDecodeH264CapabilitiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH264CapabilitiesEXT* toMap);
+
+void handlemap_VkVideoDecodeH264SessionCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH264SessionCreateInfoEXT* toMap);
+
+void handlemap_VkVideoDecodeH264SessionParametersAddInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH264SessionParametersAddInfoEXT* toMap);
+
+void handlemap_VkVideoDecodeH264SessionParametersCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH264SessionParametersCreateInfoEXT* toMap);
+
+void handlemap_VkVideoDecodeH264PictureInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH264PictureInfoEXT* toMap);
+
+void handlemap_VkVideoDecodeH264MvcEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH264MvcEXT* toMap);
+
+void handlemap_VkVideoDecodeH264DpbSlotInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH264DpbSlotInfoEXT* toMap);
+
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
 void handlemap_VkTextureLODGatherFormatPropertiesAMD(
     VulkanHandleMapping* handlemap,
@@ -2066,6 +2430,10 @@
     VulkanHandleMapping* handlemap,
     VkExternalFormatANDROID* toMap);
 
+void handlemap_VkAndroidHardwareBufferFormatProperties2ANDROID(
+    VulkanHandleMapping* handlemap,
+    VkAndroidHardwareBufferFormatProperties2ANDROID* toMap);
+
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
 DEFINE_ALIAS_FUNCTION(handlemap_VkSamplerReductionModeCreateInfo, handlemap_VkSamplerReductionModeCreateInfoEXT)
@@ -2198,6 +2566,14 @@
     VulkanHandleMapping* handlemap,
     VkImageDrmFormatModifierPropertiesEXT* toMap);
 
+void handlemap_VkDrmFormatModifierProperties2EXT(
+    VulkanHandleMapping* handlemap,
+    VkDrmFormatModifierProperties2EXT* toMap);
+
+void handlemap_VkDrmFormatModifierPropertiesList2EXT(
+    VulkanHandleMapping* handlemap,
+    VkDrmFormatModifierPropertiesList2EXT* toMap);
+
 #endif
 #ifdef VK_EXT_validation_cache
 void handlemap_VkValidationCacheCreateInfoEXT(
@@ -2383,6 +2759,36 @@
     VkPhysicalDeviceShaderCorePropertiesAMD* toMap);
 
 #endif
+#ifdef VK_EXT_video_decode_h265
+void handlemap_VkVideoDecodeH265ProfileEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH265ProfileEXT* toMap);
+
+void handlemap_VkVideoDecodeH265CapabilitiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH265CapabilitiesEXT* toMap);
+
+void handlemap_VkVideoDecodeH265SessionCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH265SessionCreateInfoEXT* toMap);
+
+void handlemap_VkVideoDecodeH265SessionParametersAddInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH265SessionParametersAddInfoEXT* toMap);
+
+void handlemap_VkVideoDecodeH265SessionParametersCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH265SessionParametersCreateInfoEXT* toMap);
+
+void handlemap_VkVideoDecodeH265PictureInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH265PictureInfoEXT* toMap);
+
+void handlemap_VkVideoDecodeH265DpbSlotInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkVideoDecodeH265DpbSlotInfoEXT* toMap);
+
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
 void handlemap_VkDeviceMemoryOverallocationCreateInfoAMD(
     VulkanHandleMapping* handlemap,
@@ -2693,6 +3099,20 @@
     VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* toMap);
 
 #endif
+#ifdef VK_EXT_provoking_vertex
+void handlemap_VkPhysicalDeviceProvokingVertexFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceProvokingVertexFeaturesEXT* toMap);
+
+void handlemap_VkPhysicalDeviceProvokingVertexPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceProvokingVertexPropertiesEXT* toMap);
+
+void handlemap_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* toMap);
+
+#endif
 #ifdef VK_EXT_full_screen_exclusive
 void handlemap_VkSurfaceFullScreenExclusiveInfoEXT(
     VulkanHandleMapping* handlemap,
@@ -2749,6 +3169,12 @@
     VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* toMap);
 
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+void handlemap_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* toMap);
+
+#endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 void handlemap_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
     VulkanHandleMapping* handlemap,
@@ -2809,6 +3235,16 @@
     VkGeneratedCommandsMemoryRequirementsInfoNV* toMap);
 
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+void handlemap_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceInheritedViewportScissorFeaturesNV* toMap);
+
+void handlemap_VkCommandBufferInheritanceViewportScissorInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkCommandBufferInheritanceViewportScissorInfoNV* toMap);
+
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
 void handlemap_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
     VulkanHandleMapping* handlemap,
@@ -2843,6 +3279,8 @@
     VkDeviceDeviceMemoryReportCreateInfoEXT* toMap);
 
 #endif
+#ifdef VK_EXT_acquire_drm_display
+#endif
 #ifdef VK_EXT_robustness2
 void handlemap_VkPhysicalDeviceRobustness2FeaturesEXT(
     VulkanHandleMapping* handlemap,
@@ -2915,6 +3353,50 @@
     VkPipelineFragmentShadingRateEnumStateCreateInfoNV* toMap);
 
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+void handlemap_VkDeviceOrHostAddressConstKHR(
+    VulkanHandleMapping* handlemap,
+    VkDeviceOrHostAddressConstKHR* toMap);
+
+void handlemap_VkAccelerationStructureGeometryMotionTrianglesDataNV(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureGeometryMotionTrianglesDataNV* toMap);
+
+void handlemap_VkAccelerationStructureMotionInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureMotionInfoNV* toMap);
+
+void handlemap_VkAccelerationStructureMatrixMotionInstanceNV(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureMatrixMotionInstanceNV* toMap);
+
+void handlemap_VkSRTDataNV(
+    VulkanHandleMapping* handlemap,
+    VkSRTDataNV* toMap);
+
+void handlemap_VkAccelerationStructureSRTMotionInstanceNV(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureSRTMotionInstanceNV* toMap);
+
+void handlemap_VkAccelerationStructureMotionInstanceDataNV(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureMotionInstanceDataNV* toMap);
+
+void handlemap_VkAccelerationStructureMotionInstanceNV(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureMotionInstanceNV* toMap);
+
+void handlemap_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* toMap);
+
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+void handlemap_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* toMap);
+
+#endif
 #ifdef VK_EXT_fragment_density_map2
 void handlemap_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
     VulkanHandleMapping* handlemap,
@@ -2943,12 +3425,178 @@
     VkPhysicalDevice4444FormatsFeaturesEXT* toMap);
 
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+void handlemap_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* toMap);
+
+#endif
+#ifdef VK_NV_acquire_winrt_display
+#endif
 #ifdef VK_EXT_directfb_surface
 void handlemap_VkDirectFBSurfaceCreateInfoEXT(
     VulkanHandleMapping* handlemap,
     VkDirectFBSurfaceCreateInfoEXT* toMap);
 
 #endif
+#ifdef VK_VALVE_mutable_descriptor_type
+void handlemap_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* toMap);
+
+void handlemap_VkMutableDescriptorTypeListVALVE(
+    VulkanHandleMapping* handlemap,
+    VkMutableDescriptorTypeListVALVE* toMap);
+
+void handlemap_VkMutableDescriptorTypeCreateInfoVALVE(
+    VulkanHandleMapping* handlemap,
+    VkMutableDescriptorTypeCreateInfoVALVE* toMap);
+
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+void handlemap_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* toMap);
+
+void handlemap_VkVertexInputBindingDescription2EXT(
+    VulkanHandleMapping* handlemap,
+    VkVertexInputBindingDescription2EXT* toMap);
+
+void handlemap_VkVertexInputAttributeDescription2EXT(
+    VulkanHandleMapping* handlemap,
+    VkVertexInputAttributeDescription2EXT* toMap);
+
+#endif
+#ifdef VK_EXT_physical_device_drm
+void handlemap_VkPhysicalDeviceDrmPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDrmPropertiesEXT* toMap);
+
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+void handlemap_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* toMap);
+
+#endif
+#ifdef VK_FUCHSIA_external_memory
+void handlemap_VkImportMemoryZirconHandleInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkImportMemoryZirconHandleInfoFUCHSIA* toMap);
+
+void handlemap_VkMemoryZirconHandlePropertiesFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkMemoryZirconHandlePropertiesFUCHSIA* toMap);
+
+void handlemap_VkMemoryGetZirconHandleInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkMemoryGetZirconHandleInfoFUCHSIA* toMap);
+
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+void handlemap_VkImportSemaphoreZirconHandleInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkImportSemaphoreZirconHandleInfoFUCHSIA* toMap);
+
+void handlemap_VkSemaphoreGetZirconHandleInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkSemaphoreGetZirconHandleInfoFUCHSIA* toMap);
+
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+void handlemap_VkBufferCollectionCreateInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkBufferCollectionCreateInfoFUCHSIA* toMap);
+
+void handlemap_VkImportMemoryBufferCollectionFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkImportMemoryBufferCollectionFUCHSIA* toMap);
+
+void handlemap_VkBufferCollectionImageCreateInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkBufferCollectionImageCreateInfoFUCHSIA* toMap);
+
+void handlemap_VkBufferCollectionConstraintsInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkBufferCollectionConstraintsInfoFUCHSIA* toMap);
+
+void handlemap_VkBufferConstraintsInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkBufferConstraintsInfoFUCHSIA* toMap);
+
+void handlemap_VkBufferCollectionBufferCreateInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkBufferCollectionBufferCreateInfoFUCHSIA* toMap);
+
+void handlemap_VkSysmemColorSpaceFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkSysmemColorSpaceFUCHSIA* toMap);
+
+void handlemap_VkBufferCollectionPropertiesFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkBufferCollectionPropertiesFUCHSIA* toMap);
+
+void handlemap_VkImageFormatConstraintsInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkImageFormatConstraintsInfoFUCHSIA* toMap);
+
+void handlemap_VkImageConstraintsInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkImageConstraintsInfoFUCHSIA* toMap);
+
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+void handlemap_VkSubpassShadingPipelineCreateInfoHUAWEI(
+    VulkanHandleMapping* handlemap,
+    VkSubpassShadingPipelineCreateInfoHUAWEI* toMap);
+
+void handlemap_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* toMap);
+
+void handlemap_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* toMap);
+
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+void handlemap_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* toMap);
+
+#endif
+#ifdef VK_NV_external_memory_rdma
+void handlemap_VkMemoryGetRemoteAddressInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkMemoryGetRemoteAddressInfoNV* toMap);
+
+void handlemap_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* toMap);
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+void handlemap_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* toMap);
+
+#endif
+#ifdef VK_QNX_screen_surface
+void handlemap_VkScreenSurfaceCreateInfoQNX(
+    VulkanHandleMapping* handlemap,
+    VkScreenSurfaceCreateInfoQNX* toMap);
+
+#endif
+#ifdef VK_EXT_color_write_enable
+void handlemap_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceColorWriteEnableFeaturesEXT* toMap);
+
+void handlemap_VkPipelineColorWriteCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkPipelineColorWriteCreateInfoEXT* toMap);
+
+#endif
 #ifdef VK_GOOGLE_gfxstream
 void handlemap_VkImportColorBufferGOOGLE(
     VulkanHandleMapping* handlemap,
@@ -2963,15 +3611,57 @@
     VkImportPhysicalAddressGOOGLE* toMap);
 
 #endif
+#ifdef VK_EXT_global_priority_query
+void handlemap_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* toMap);
+
+void handlemap_VkQueueFamilyGlobalPriorityPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkQueueFamilyGlobalPriorityPropertiesEXT* toMap);
+
+#endif
+#ifdef VK_EXT_multi_draw
+void handlemap_VkPhysicalDeviceMultiDrawFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceMultiDrawFeaturesEXT* toMap);
+
+void handlemap_VkPhysicalDeviceMultiDrawPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceMultiDrawPropertiesEXT* toMap);
+
+void handlemap_VkMultiDrawInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkMultiDrawInfoEXT* toMap);
+
+void handlemap_VkMultiDrawIndexedInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkMultiDrawIndexedInfoEXT* toMap);
+
+#endif
+#ifdef VK_EXT_load_store_op_none
+#endif
+#ifdef VK_EXT_border_color_swizzle
+void handlemap_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* toMap);
+
+void handlemap_VkSamplerBorderColorComponentMappingCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkSamplerBorderColorComponentMappingCreateInfoEXT* toMap);
+
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+void handlemap_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* toMap);
+
+#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);
diff --git a/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp b/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
index 09bf7b9..967b5bc 100644
--- a/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
@@ -426,6 +426,32 @@
     vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
 }
 
+void marshal_VkPipelineCacheHeaderVersionOne(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPipelineCacheHeaderVersionOne* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((uint32_t*)&forMarshaling->headerSize, sizeof(uint32_t));
+    vkStream->write((VkPipelineCacheHeaderVersion*)&forMarshaling->headerVersion, sizeof(VkPipelineCacheHeaderVersion));
+    vkStream->write((uint32_t*)&forMarshaling->vendorID, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->deviceID, sizeof(uint32_t));
+    vkStream->write((uint8_t*)forMarshaling->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
+}
+
+void unmarshal_VkPipelineCacheHeaderVersionOne(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPipelineCacheHeaderVersionOne* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((uint32_t*)&forUnmarshaling->headerSize, sizeof(uint32_t));
+    vkStream->read((VkPipelineCacheHeaderVersion*)&forUnmarshaling->headerVersion, sizeof(VkPipelineCacheHeaderVersion));
+    vkStream->read((uint32_t*)&forUnmarshaling->vendorID, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->deviceID, sizeof(uint32_t));
+    vkStream->read((uint8_t*)forUnmarshaling->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
+}
+
 void marshal_VkAllocationCallbacks(
     VulkanStreamGuest* vkStream,
     VkStructureType rootType,
@@ -10307,6 +10333,1052 @@
 #endif
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
+#ifdef VK_KHR_video_queue
+void marshal_VkVideoQueueFamilyProperties2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoQueueFamilyProperties2KHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkVideoCodecOperationFlagsKHR*)&forMarshaling->videoCodecOperations, sizeof(VkVideoCodecOperationFlagsKHR));
+}
+
+void unmarshal_VkVideoQueueFamilyProperties2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoQueueFamilyProperties2KHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkVideoCodecOperationFlagsKHR*)&forUnmarshaling->videoCodecOperations, sizeof(VkVideoCodecOperationFlagsKHR));
+}
+
+void marshal_VkVideoProfileKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoProfileKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkVideoCodecOperationFlagBitsKHR*)&forMarshaling->videoCodecOperation, sizeof(VkVideoCodecOperationFlagBitsKHR));
+    vkStream->write((VkVideoChromaSubsamplingFlagsKHR*)&forMarshaling->chromaSubsampling, sizeof(VkVideoChromaSubsamplingFlagsKHR));
+    vkStream->write((VkVideoComponentBitDepthFlagsKHR*)&forMarshaling->lumaBitDepth, sizeof(VkVideoComponentBitDepthFlagsKHR));
+    vkStream->write((VkVideoComponentBitDepthFlagsKHR*)&forMarshaling->chromaBitDepth, sizeof(VkVideoComponentBitDepthFlagsKHR));
+}
+
+void unmarshal_VkVideoProfileKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoProfileKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkVideoCodecOperationFlagBitsKHR*)&forUnmarshaling->videoCodecOperation, sizeof(VkVideoCodecOperationFlagBitsKHR));
+    vkStream->read((VkVideoChromaSubsamplingFlagsKHR*)&forUnmarshaling->chromaSubsampling, sizeof(VkVideoChromaSubsamplingFlagsKHR));
+    vkStream->read((VkVideoComponentBitDepthFlagsKHR*)&forUnmarshaling->lumaBitDepth, sizeof(VkVideoComponentBitDepthFlagsKHR));
+    vkStream->read((VkVideoComponentBitDepthFlagsKHR*)&forUnmarshaling->chromaBitDepth, sizeof(VkVideoComponentBitDepthFlagsKHR));
+}
+
+void marshal_VkVideoProfilesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoProfilesKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->profileCount, sizeof(uint32_t));
+    marshal_VkVideoProfileKHR(vkStream, rootType, (const VkVideoProfileKHR*)(forMarshaling->pProfiles));
+}
+
+void unmarshal_VkVideoProfilesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoProfilesKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->profileCount, sizeof(uint32_t));
+    unmarshal_VkVideoProfileKHR(vkStream, rootType, (VkVideoProfileKHR*)(forUnmarshaling->pProfiles));
+}
+
+void marshal_VkVideoCapabilitiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoCapabilitiesKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkVideoCapabilityFlagsKHR*)&forMarshaling->capabilityFlags, sizeof(VkVideoCapabilityFlagsKHR));
+    vkStream->write((VkDeviceSize*)&forMarshaling->minBitstreamBufferOffsetAlignment, sizeof(VkDeviceSize));
+    vkStream->write((VkDeviceSize*)&forMarshaling->minBitstreamBufferSizeAlignment, sizeof(VkDeviceSize));
+    marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->videoPictureExtentGranularity));
+    marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->minExtent));
+    marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->maxExtent));
+    vkStream->write((uint32_t*)&forMarshaling->maxReferencePicturesSlotsCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxReferencePicturesActiveCount, sizeof(uint32_t));
+}
+
+void unmarshal_VkVideoCapabilitiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoCapabilitiesKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkVideoCapabilityFlagsKHR*)&forUnmarshaling->capabilityFlags, sizeof(VkVideoCapabilityFlagsKHR));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->minBitstreamBufferOffsetAlignment, sizeof(VkDeviceSize));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->minBitstreamBufferSizeAlignment, sizeof(VkDeviceSize));
+    unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->videoPictureExtentGranularity));
+    unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->minExtent));
+    unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->maxExtent));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxReferencePicturesSlotsCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxReferencePicturesActiveCount, sizeof(uint32_t));
+}
+
+void marshal_VkPhysicalDeviceVideoFormatInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceVideoFormatInfoKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkImageUsageFlags*)&forMarshaling->imageUsage, sizeof(VkImageUsageFlags));
+    marshal_VkVideoProfilesKHR(vkStream, rootType, (const VkVideoProfilesKHR*)(forMarshaling->pVideoProfiles));
+}
+
+void unmarshal_VkPhysicalDeviceVideoFormatInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceVideoFormatInfoKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkImageUsageFlags*)&forUnmarshaling->imageUsage, sizeof(VkImageUsageFlags));
+    unmarshal_VkVideoProfilesKHR(vkStream, rootType, (VkVideoProfilesKHR*)(forUnmarshaling->pVideoProfiles));
+}
+
+void marshal_VkVideoFormatPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoFormatPropertiesKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
+}
+
+void unmarshal_VkVideoFormatPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoFormatPropertiesKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
+}
+
+void marshal_VkVideoPictureResourceKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoPictureResourceKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    marshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forMarshaling->codedOffset));
+    marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->codedExtent));
+    vkStream->write((uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->imageViewBinding, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+}
+
+void unmarshal_VkVideoPictureResourceKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoPictureResourceKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    unmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forUnmarshaling->codedOffset));
+    unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->codedExtent));
+    vkStream->read((uint32_t*)&forUnmarshaling->baseArrayLayer, sizeof(uint32_t));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImageView(&cgen_var_0, (VkImageView*)&forUnmarshaling->imageViewBinding, 1);
+}
+
+void marshal_VkVideoReferenceSlotKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoReferenceSlotKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((int8_t*)&forMarshaling->slotIndex, sizeof(int8_t));
+    marshal_VkVideoPictureResourceKHR(vkStream, rootType, (const VkVideoPictureResourceKHR*)(forMarshaling->pPictureResource));
+}
+
+void unmarshal_VkVideoReferenceSlotKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoReferenceSlotKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((int8_t*)&forUnmarshaling->slotIndex, sizeof(int8_t));
+    unmarshal_VkVideoPictureResourceKHR(vkStream, rootType, (VkVideoPictureResourceKHR*)(forUnmarshaling->pPictureResource));
+}
+
+void marshal_VkVideoGetMemoryPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoGetMemoryPropertiesKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->memoryBindIndex, sizeof(uint32_t));
+    marshal_VkMemoryRequirements2(vkStream, rootType, (VkMemoryRequirements2*)(forMarshaling->pMemoryRequirements));
+}
+
+void unmarshal_VkVideoGetMemoryPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoGetMemoryPropertiesKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->memoryBindIndex, sizeof(uint32_t));
+    unmarshal_VkMemoryRequirements2(vkStream, rootType, (VkMemoryRequirements2*)(forUnmarshaling->pMemoryRequirements));
+}
+
+void marshal_VkVideoBindMemoryKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoBindMemoryKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->memoryBindIndex, sizeof(uint32_t));
+    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((VkDeviceSize*)&forMarshaling->memorySize, sizeof(VkDeviceSize));
+}
+
+void unmarshal_VkVideoBindMemoryKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoBindMemoryKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->memoryBindIndex, sizeof(uint32_t));
+    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((VkDeviceSize*)&forUnmarshaling->memorySize, sizeof(VkDeviceSize));
+}
+
+void marshal_VkVideoSessionCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoSessionCreateInfoKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
+    vkStream->write((VkVideoSessionCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkVideoSessionCreateFlagsKHR));
+    marshal_VkVideoProfileKHR(vkStream, rootType, (const VkVideoProfileKHR*)(forMarshaling->pVideoProfile));
+    vkStream->write((VkFormat*)&forMarshaling->pictureFormat, sizeof(VkFormat));
+    marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->maxCodedExtent));
+    vkStream->write((VkFormat*)&forMarshaling->referencePicturesFormat, sizeof(VkFormat));
+    vkStream->write((uint32_t*)&forMarshaling->maxReferencePicturesSlotsCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxReferencePicturesActiveCount, sizeof(uint32_t));
+}
+
+void unmarshal_VkVideoSessionCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoSessionCreateInfoKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndex, sizeof(uint32_t));
+    vkStream->read((VkVideoSessionCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkVideoSessionCreateFlagsKHR));
+    unmarshal_VkVideoProfileKHR(vkStream, rootType, (VkVideoProfileKHR*)(forUnmarshaling->pVideoProfile));
+    vkStream->read((VkFormat*)&forUnmarshaling->pictureFormat, sizeof(VkFormat));
+    unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->maxCodedExtent));
+    vkStream->read((VkFormat*)&forUnmarshaling->referencePicturesFormat, sizeof(VkFormat));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxReferencePicturesSlotsCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxReferencePicturesActiveCount, sizeof(uint32_t));
+}
+
+void marshal_VkVideoSessionParametersCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoSessionParametersCreateInfoKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->videoSessionParametersTemplate;
+    vkStream->putBe64(cgen_var_0);
+    uint64_t cgen_var_1 = (uint64_t)forMarshaling->videoSession;
+    vkStream->putBe64(cgen_var_1);
+}
+
+void unmarshal_VkVideoSessionParametersCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoSessionParametersCreateInfoKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    forUnmarshaling->videoSessionParametersTemplate = (VkVideoSessionParametersKHR)vkStream->getBe64();
+    forUnmarshaling->videoSession = (VkVideoSessionKHR)vkStream->getBe64();
+}
+
+void marshal_VkVideoSessionParametersUpdateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoSessionParametersUpdateInfoKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->updateSequenceCount, sizeof(uint32_t));
+}
+
+void unmarshal_VkVideoSessionParametersUpdateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoSessionParametersUpdateInfoKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->updateSequenceCount, sizeof(uint32_t));
+}
+
+void marshal_VkVideoBeginCodingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoBeginCodingInfoKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkVideoBeginCodingFlagsKHR*)&forMarshaling->flags, sizeof(VkVideoBeginCodingFlagsKHR));
+    vkStream->write((VkVideoCodingQualityPresetFlagsKHR*)&forMarshaling->codecQualityPreset, sizeof(VkVideoCodingQualityPresetFlagsKHR));
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->videoSession;
+    vkStream->putBe64(cgen_var_0);
+    uint64_t cgen_var_1 = (uint64_t)forMarshaling->videoSessionParameters;
+    vkStream->putBe64(cgen_var_1);
+    vkStream->write((uint32_t*)&forMarshaling->referenceSlotCount, sizeof(uint32_t));
+    if (forMarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->referenceSlotCount; ++i)
+        {
+            marshal_VkVideoReferenceSlotKHR(vkStream, rootType, (const VkVideoReferenceSlotKHR*)(forMarshaling->pReferenceSlots + i));
+        }
+    }
+}
+
+void unmarshal_VkVideoBeginCodingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoBeginCodingInfoKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkVideoBeginCodingFlagsKHR*)&forUnmarshaling->flags, sizeof(VkVideoBeginCodingFlagsKHR));
+    vkStream->read((VkVideoCodingQualityPresetFlagsKHR*)&forUnmarshaling->codecQualityPreset, sizeof(VkVideoCodingQualityPresetFlagsKHR));
+    forUnmarshaling->videoSession = (VkVideoSessionKHR)vkStream->getBe64();
+    forUnmarshaling->videoSessionParameters = (VkVideoSessionParametersKHR)vkStream->getBe64();
+    vkStream->read((uint32_t*)&forUnmarshaling->referenceSlotCount, sizeof(uint32_t));
+    if (forUnmarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->referenceSlotCount; ++i)
+        {
+            unmarshal_VkVideoReferenceSlotKHR(vkStream, rootType, (VkVideoReferenceSlotKHR*)(forUnmarshaling->pReferenceSlots + i));
+        }
+    }
+}
+
+void marshal_VkVideoEndCodingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEndCodingInfoKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkVideoEndCodingFlagsKHR*)&forMarshaling->flags, sizeof(VkVideoEndCodingFlagsKHR));
+}
+
+void unmarshal_VkVideoEndCodingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEndCodingInfoKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkVideoEndCodingFlagsKHR*)&forUnmarshaling->flags, sizeof(VkVideoEndCodingFlagsKHR));
+}
+
+void marshal_VkVideoCodingControlInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoCodingControlInfoKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkVideoCodingControlFlagsKHR*)&forMarshaling->flags, sizeof(VkVideoCodingControlFlagsKHR));
+}
+
+void unmarshal_VkVideoCodingControlInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoCodingControlInfoKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkVideoCodingControlFlagsKHR*)&forUnmarshaling->flags, sizeof(VkVideoCodingControlFlagsKHR));
+}
+
+#endif
+#ifdef VK_KHR_video_decode_queue
+void marshal_VkVideoDecodeInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeInfoKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkVideoDecodeFlagsKHR*)&forMarshaling->flags, sizeof(VkVideoDecodeFlagsKHR));
+    marshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forMarshaling->codedOffset));
+    marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->codedExtent));
+    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);
+    vkStream->write((VkDeviceSize*)&forMarshaling->srcBufferOffset, sizeof(VkDeviceSize));
+    vkStream->write((VkDeviceSize*)&forMarshaling->srcBufferRange, sizeof(VkDeviceSize));
+    marshal_VkVideoPictureResourceKHR(vkStream, rootType, (VkVideoPictureResourceKHR*)(&forMarshaling->dstPictureResource));
+    marshal_VkVideoReferenceSlotKHR(vkStream, rootType, (const VkVideoReferenceSlotKHR*)(forMarshaling->pSetupReferenceSlot));
+    vkStream->write((uint32_t*)&forMarshaling->referenceSlotCount, sizeof(uint32_t));
+    if (forMarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->referenceSlotCount; ++i)
+        {
+            marshal_VkVideoReferenceSlotKHR(vkStream, rootType, (const VkVideoReferenceSlotKHR*)(forMarshaling->pReferenceSlots + i));
+        }
+    }
+}
+
+void unmarshal_VkVideoDecodeInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeInfoKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkVideoDecodeFlagsKHR*)&forUnmarshaling->flags, sizeof(VkVideoDecodeFlagsKHR));
+    unmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forUnmarshaling->codedOffset));
+    unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->codedExtent));
+    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);
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->srcBufferOffset, sizeof(VkDeviceSize));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->srcBufferRange, sizeof(VkDeviceSize));
+    unmarshal_VkVideoPictureResourceKHR(vkStream, rootType, (VkVideoPictureResourceKHR*)(&forUnmarshaling->dstPictureResource));
+    unmarshal_VkVideoReferenceSlotKHR(vkStream, rootType, (VkVideoReferenceSlotKHR*)(forUnmarshaling->pSetupReferenceSlot));
+    vkStream->read((uint32_t*)&forUnmarshaling->referenceSlotCount, sizeof(uint32_t));
+    if (forUnmarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->referenceSlotCount; ++i)
+        {
+            unmarshal_VkVideoReferenceSlotKHR(vkStream, rootType, (VkVideoReferenceSlotKHR*)(forUnmarshaling->pReferenceSlots + i));
+        }
+    }
+}
+
+#endif
+#ifdef VK_KHR_dynamic_rendering
+void marshal_VkRenderingAttachmentInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkRenderingAttachmentInfoKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, 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((VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
+    vkStream->write((VkResolveModeFlagBits*)&forMarshaling->resolveMode, sizeof(VkResolveModeFlagBits));
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->resolveImageView, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->write((VkImageLayout*)&forMarshaling->resolveImageLayout, sizeof(VkImageLayout));
+    vkStream->write((VkAttachmentLoadOp*)&forMarshaling->loadOp, sizeof(VkAttachmentLoadOp));
+    vkStream->write((VkAttachmentStoreOp*)&forMarshaling->storeOp, sizeof(VkAttachmentStoreOp));
+    marshal_VkClearValue(vkStream, rootType, (VkClearValue*)(&forMarshaling->clearValue));
+}
+
+void unmarshal_VkRenderingAttachmentInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkRenderingAttachmentInfoKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (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((VkImageLayout*)&forUnmarshaling->imageLayout, sizeof(VkImageLayout));
+    vkStream->read((VkResolveModeFlagBits*)&forUnmarshaling->resolveMode, sizeof(VkResolveModeFlagBits));
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImageView(&cgen_var_1, (VkImageView*)&forUnmarshaling->resolveImageView, 1);
+    vkStream->read((VkImageLayout*)&forUnmarshaling->resolveImageLayout, sizeof(VkImageLayout));
+    vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->loadOp, sizeof(VkAttachmentLoadOp));
+    vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->storeOp, sizeof(VkAttachmentStoreOp));
+    unmarshal_VkClearValue(vkStream, rootType, (VkClearValue*)(&forUnmarshaling->clearValue));
+}
+
+void marshal_VkRenderingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkRenderingInfoKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkRenderingFlagsKHR*)&forMarshaling->flags, sizeof(VkRenderingFlagsKHR));
+    marshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forMarshaling->renderArea));
+    vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
+    if (forMarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i)
+        {
+            marshal_VkRenderingAttachmentInfoKHR(vkStream, rootType, (const VkRenderingAttachmentInfoKHR*)(forMarshaling->pColorAttachments + i));
+        }
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDepthAttachment;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pDepthAttachment)
+    {
+        marshal_VkRenderingAttachmentInfoKHR(vkStream, rootType, (const VkRenderingAttachmentInfoKHR*)(forMarshaling->pDepthAttachment));
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pStencilAttachment;
+    vkStream->putBe64(cgen_var_1);
+    if (forMarshaling->pStencilAttachment)
+    {
+        marshal_VkRenderingAttachmentInfoKHR(vkStream, rootType, (const VkRenderingAttachmentInfoKHR*)(forMarshaling->pStencilAttachment));
+    }
+}
+
+void unmarshal_VkRenderingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkRenderingInfoKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkRenderingFlagsKHR*)&forUnmarshaling->flags, sizeof(VkRenderingFlagsKHR));
+    unmarshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forUnmarshaling->renderArea));
+    vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->viewMask, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
+    if (forUnmarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i)
+        {
+            unmarshal_VkRenderingAttachmentInfoKHR(vkStream, rootType, (VkRenderingAttachmentInfoKHR*)(forUnmarshaling->pColorAttachments + i));
+        }
+    }
+    // WARNING PTR CHECK
+    const VkRenderingAttachmentInfoKHR* check_pDepthAttachment;
+    check_pDepthAttachment = (const VkRenderingAttachmentInfoKHR*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pDepthAttachment)
+    {
+        if (!(check_pDepthAttachment))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pDepthAttachment inconsistent between guest and host\n");
+        }
+        unmarshal_VkRenderingAttachmentInfoKHR(vkStream, rootType, (VkRenderingAttachmentInfoKHR*)(forUnmarshaling->pDepthAttachment));
+    }
+    // WARNING PTR CHECK
+    const VkRenderingAttachmentInfoKHR* check_pStencilAttachment;
+    check_pStencilAttachment = (const VkRenderingAttachmentInfoKHR*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pStencilAttachment)
+    {
+        if (!(check_pStencilAttachment))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pStencilAttachment inconsistent between guest and host\n");
+        }
+        unmarshal_VkRenderingAttachmentInfoKHR(vkStream, rootType, (VkRenderingAttachmentInfoKHR*)(forUnmarshaling->pStencilAttachment));
+    }
+}
+
+void marshal_VkPipelineRenderingCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPipelineRenderingCreateInfoKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
+    vkStream->write((const VkFormat*)forMarshaling->pColorAttachmentFormats, forMarshaling->colorAttachmentCount * sizeof(const VkFormat));
+    vkStream->write((VkFormat*)&forMarshaling->depthAttachmentFormat, sizeof(VkFormat));
+    vkStream->write((VkFormat*)&forMarshaling->stencilAttachmentFormat, sizeof(VkFormat));
+}
+
+void unmarshal_VkPipelineRenderingCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPipelineRenderingCreateInfoKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->viewMask, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
+    vkStream->read((VkFormat*)forUnmarshaling->pColorAttachmentFormats, forUnmarshaling->colorAttachmentCount * sizeof(const VkFormat));
+    vkStream->read((VkFormat*)&forUnmarshaling->depthAttachmentFormat, sizeof(VkFormat));
+    vkStream->read((VkFormat*)&forUnmarshaling->stencilAttachmentFormat, sizeof(VkFormat));
+}
+
+void marshal_VkPhysicalDeviceDynamicRenderingFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceDynamicRenderingFeaturesKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->dynamicRendering, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceDynamicRenderingFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceDynamicRenderingFeaturesKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->dynamicRendering, sizeof(VkBool32));
+}
+
+void marshal_VkCommandBufferInheritanceRenderingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCommandBufferInheritanceRenderingInfoKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkRenderingFlagsKHR*)&forMarshaling->flags, sizeof(VkRenderingFlagsKHR));
+    vkStream->write((uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
+    vkStream->write((const VkFormat*)forMarshaling->pColorAttachmentFormats, forMarshaling->colorAttachmentCount * sizeof(const VkFormat));
+    vkStream->write((VkFormat*)&forMarshaling->depthAttachmentFormat, sizeof(VkFormat));
+    vkStream->write((VkFormat*)&forMarshaling->stencilAttachmentFormat, sizeof(VkFormat));
+    vkStream->write((VkSampleCountFlagBits*)&forMarshaling->rasterizationSamples, sizeof(VkSampleCountFlagBits));
+}
+
+void unmarshal_VkCommandBufferInheritanceRenderingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkCommandBufferInheritanceRenderingInfoKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkRenderingFlagsKHR*)&forUnmarshaling->flags, sizeof(VkRenderingFlagsKHR));
+    vkStream->read((uint32_t*)&forUnmarshaling->viewMask, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
+    vkStream->read((VkFormat*)forUnmarshaling->pColorAttachmentFormats, forUnmarshaling->colorAttachmentCount * sizeof(const VkFormat));
+    vkStream->read((VkFormat*)&forUnmarshaling->depthAttachmentFormat, sizeof(VkFormat));
+    vkStream->read((VkFormat*)&forUnmarshaling->stencilAttachmentFormat, sizeof(VkFormat));
+    vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->rasterizationSamples, sizeof(VkSampleCountFlagBits));
+}
+
+void marshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkRenderingFragmentShadingRateAttachmentInfoKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, 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((VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
+    marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->shadingRateAttachmentTexelSize));
+}
+
+void unmarshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkRenderingFragmentShadingRateAttachmentInfoKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (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((VkImageLayout*)&forUnmarshaling->imageLayout, sizeof(VkImageLayout));
+    unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->shadingRateAttachmentTexelSize));
+}
+
+void marshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkRenderingFragmentDensityMapAttachmentInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, 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((VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
+}
+
+void unmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkRenderingFragmentDensityMapAttachmentInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (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((VkImageLayout*)&forUnmarshaling->imageLayout, sizeof(VkImageLayout));
+}
+
+void marshal_VkAttachmentSampleCountInfoAMD(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAttachmentSampleCountInfoAMD* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pColorAttachmentSamples;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pColorAttachmentSamples)
+    {
+        vkStream->write((const VkSampleCountFlagBits*)forMarshaling->pColorAttachmentSamples, forMarshaling->colorAttachmentCount * sizeof(const VkSampleCountFlagBits));
+    }
+    vkStream->write((VkSampleCountFlagBits*)&forMarshaling->depthStencilAttachmentSamples, sizeof(VkSampleCountFlagBits));
+}
+
+void unmarshal_VkAttachmentSampleCountInfoAMD(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkAttachmentSampleCountInfoAMD* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const VkSampleCountFlagBits* check_pColorAttachmentSamples;
+    check_pColorAttachmentSamples = (const VkSampleCountFlagBits*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pColorAttachmentSamples)
+    {
+        if (!(check_pColorAttachmentSamples))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pColorAttachmentSamples inconsistent between guest and host\n");
+        }
+        vkStream->read((VkSampleCountFlagBits*)forUnmarshaling->pColorAttachmentSamples, forUnmarshaling->colorAttachmentCount * sizeof(const VkSampleCountFlagBits));
+    }
+    vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->depthStencilAttachmentSamples, sizeof(VkSampleCountFlagBits));
+}
+
+void marshal_VkMultiviewPerViewAttributesInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMultiviewPerViewAttributesInfoNVX* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->perViewAttributes, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->perViewAttributesPositionXOnly, sizeof(VkBool32));
+}
+
+void unmarshal_VkMultiviewPerViewAttributesInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkMultiviewPerViewAttributesInfoNVX* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->perViewAttributes, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->perViewAttributesPositionXOnly, sizeof(VkBool32));
+}
+
+#endif
 #ifdef VK_KHR_multiview
 #endif
 #ifdef VK_KHR_get_physical_device_properties2
@@ -12054,7 +13126,13 @@
         rootType = forMarshaling->sType;
     }
     marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
-    marshal_VkAttachmentReference2(vkStream, rootType, (const VkAttachmentReference2*)(forMarshaling->pFragmentShadingRateAttachment));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pFragmentShadingRateAttachment;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pFragmentShadingRateAttachment)
+    {
+        marshal_VkAttachmentReference2(vkStream, rootType, (const VkAttachmentReference2*)(forMarshaling->pFragmentShadingRateAttachment));
+    }
     marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->shadingRateAttachmentTexelSize));
 }
 
@@ -12070,7 +13148,17 @@
         rootType = forUnmarshaling->sType;
     }
     unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
-    unmarshal_VkAttachmentReference2(vkStream, rootType, (VkAttachmentReference2*)(forUnmarshaling->pFragmentShadingRateAttachment));
+    // WARNING PTR CHECK
+    const VkAttachmentReference2* check_pFragmentShadingRateAttachment;
+    check_pFragmentShadingRateAttachment = (const VkAttachmentReference2*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pFragmentShadingRateAttachment)
+    {
+        if (!(check_pFragmentShadingRateAttachment))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pFragmentShadingRateAttachment inconsistent between guest and host\n");
+        }
+        unmarshal_VkAttachmentReference2(vkStream, rootType, (VkAttachmentReference2*)(forUnmarshaling->pFragmentShadingRateAttachment));
+    }
     unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->shadingRateAttachmentTexelSize));
 }
 
@@ -12271,6 +13359,38 @@
 #endif
 #ifdef VK_KHR_separate_depth_stencil_layouts
 #endif
+#ifdef VK_KHR_present_wait
+void marshal_VkPhysicalDevicePresentWaitFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDevicePresentWaitFeaturesKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->presentWait, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDevicePresentWaitFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDevicePresentWaitFeaturesKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->presentWait, sizeof(VkBool32));
+}
+
+#endif
 #ifdef VK_KHR_uniform_buffer_standard_layout
 #endif
 #ifdef VK_KHR_buffer_device_address
@@ -12524,6 +13644,126 @@
 }
 
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+void marshal_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->shaderIntegerDotProduct, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderIntegerDotProduct, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProduct8BitUnsignedAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProduct8BitSignedAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProduct8BitMixedSignednessAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedUnsignedAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedSignedAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedMixedSignednessAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProduct16BitUnsignedAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProduct16BitSignedAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProduct16BitMixedSignednessAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProduct32BitUnsignedAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProduct32BitSignedAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProduct32BitMixedSignednessAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProduct64BitUnsignedAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProduct64BitSignedAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProduct64BitMixedSignednessAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating8BitSignedAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating16BitSignedAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating32BitSignedAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating64BitSignedAccelerated, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct8BitUnsignedAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct8BitSignedAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct8BitMixedSignednessAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedUnsignedAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedSignedAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct4x8BitPackedMixedSignednessAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct16BitUnsignedAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct16BitSignedAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct16BitMixedSignednessAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct32BitUnsignedAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct32BitSignedAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct32BitMixedSignednessAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct64BitUnsignedAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct64BitSignedAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProduct64BitMixedSignednessAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating8BitSignedAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating16BitSignedAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating32BitSignedAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating64BitSignedAccelerated, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated, sizeof(VkBool32));
+}
+
+#endif
 #ifdef VK_KHR_pipeline_library
 void marshal_VkPipelineLibraryCreateInfoKHR(
     VulkanStreamGuest* vkStream,
@@ -12572,6 +13812,776 @@
 #endif
 #ifdef VK_KHR_shader_non_semantic_info
 #endif
+#ifdef VK_KHR_present_id
+void marshal_VkPresentIdKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPresentIdKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pPresentIds;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pPresentIds)
+    {
+        vkStream->write((const uint64_t*)forMarshaling->pPresentIds, forMarshaling->swapchainCount * sizeof(const uint64_t));
+    }
+}
+
+void unmarshal_VkPresentIdKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPresentIdKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->swapchainCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const uint64_t* check_pPresentIds;
+    check_pPresentIds = (const uint64_t*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pPresentIds)
+    {
+        if (!(check_pPresentIds))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pPresentIds inconsistent between guest and host\n");
+        }
+        vkStream->read((uint64_t*)forUnmarshaling->pPresentIds, forUnmarshaling->swapchainCount * sizeof(const uint64_t));
+    }
+}
+
+void marshal_VkPhysicalDevicePresentIdFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDevicePresentIdFeaturesKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->presentId, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDevicePresentIdFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDevicePresentIdFeaturesKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->presentId, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_KHR_video_encode_queue
+void marshal_VkVideoEncodeInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeInfoKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkVideoEncodeFlagsKHR*)&forMarshaling->flags, sizeof(VkVideoEncodeFlagsKHR));
+    vkStream->write((uint32_t*)&forMarshaling->qualityLevel, sizeof(uint32_t));
+    marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->codedExtent));
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->dstBitstreamBuffer, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((VkDeviceSize*)&forMarshaling->dstBitstreamBufferOffset, sizeof(VkDeviceSize));
+    vkStream->write((VkDeviceSize*)&forMarshaling->dstBitstreamBufferMaxRange, sizeof(VkDeviceSize));
+    marshal_VkVideoPictureResourceKHR(vkStream, rootType, (VkVideoPictureResourceKHR*)(&forMarshaling->srcPictureResource));
+    marshal_VkVideoReferenceSlotKHR(vkStream, rootType, (const VkVideoReferenceSlotKHR*)(forMarshaling->pSetupReferenceSlot));
+    vkStream->write((uint32_t*)&forMarshaling->referenceSlotCount, sizeof(uint32_t));
+    if (forMarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->referenceSlotCount; ++i)
+        {
+            marshal_VkVideoReferenceSlotKHR(vkStream, rootType, (const VkVideoReferenceSlotKHR*)(forMarshaling->pReferenceSlots + i));
+        }
+    }
+}
+
+void unmarshal_VkVideoEncodeInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeInfoKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkVideoEncodeFlagsKHR*)&forUnmarshaling->flags, sizeof(VkVideoEncodeFlagsKHR));
+    vkStream->read((uint32_t*)&forUnmarshaling->qualityLevel, sizeof(uint32_t));
+    unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->codedExtent));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0, (VkBuffer*)&forUnmarshaling->dstBitstreamBuffer, 1);
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->dstBitstreamBufferOffset, sizeof(VkDeviceSize));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->dstBitstreamBufferMaxRange, sizeof(VkDeviceSize));
+    unmarshal_VkVideoPictureResourceKHR(vkStream, rootType, (VkVideoPictureResourceKHR*)(&forUnmarshaling->srcPictureResource));
+    unmarshal_VkVideoReferenceSlotKHR(vkStream, rootType, (VkVideoReferenceSlotKHR*)(forUnmarshaling->pSetupReferenceSlot));
+    vkStream->read((uint32_t*)&forUnmarshaling->referenceSlotCount, sizeof(uint32_t));
+    if (forUnmarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->referenceSlotCount; ++i)
+        {
+            unmarshal_VkVideoReferenceSlotKHR(vkStream, rootType, (VkVideoReferenceSlotKHR*)(forUnmarshaling->pReferenceSlots + i));
+        }
+    }
+}
+
+void marshal_VkVideoEncodeRateControlInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeRateControlInfoKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkVideoEncodeRateControlFlagsKHR*)&forMarshaling->flags, sizeof(VkVideoEncodeRateControlFlagsKHR));
+    vkStream->write((VkVideoEncodeRateControlModeFlagBitsKHR*)&forMarshaling->rateControlMode, sizeof(VkVideoEncodeRateControlModeFlagBitsKHR));
+    vkStream->write((uint32_t*)&forMarshaling->averageBitrate, sizeof(uint32_t));
+    vkStream->write((uint16_t*)&forMarshaling->peakToAverageBitrateRatio, sizeof(uint16_t));
+    vkStream->write((uint16_t*)&forMarshaling->frameRateNumerator, sizeof(uint16_t));
+    vkStream->write((uint16_t*)&forMarshaling->frameRateDenominator, sizeof(uint16_t));
+    vkStream->write((uint32_t*)&forMarshaling->virtualBufferSizeInMs, sizeof(uint32_t));
+}
+
+void unmarshal_VkVideoEncodeRateControlInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeRateControlInfoKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkVideoEncodeRateControlFlagsKHR*)&forUnmarshaling->flags, sizeof(VkVideoEncodeRateControlFlagsKHR));
+    vkStream->read((VkVideoEncodeRateControlModeFlagBitsKHR*)&forUnmarshaling->rateControlMode, sizeof(VkVideoEncodeRateControlModeFlagBitsKHR));
+    vkStream->read((uint32_t*)&forUnmarshaling->averageBitrate, sizeof(uint32_t));
+    vkStream->read((uint16_t*)&forUnmarshaling->peakToAverageBitrateRatio, sizeof(uint16_t));
+    vkStream->read((uint16_t*)&forUnmarshaling->frameRateNumerator, sizeof(uint16_t));
+    vkStream->read((uint16_t*)&forUnmarshaling->frameRateDenominator, sizeof(uint16_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->virtualBufferSizeInMs, sizeof(uint32_t));
+}
+
+#endif
+#ifdef VK_KHR_synchronization2
+void marshal_VkMemoryBarrier2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMemoryBarrier2KHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkPipelineStageFlags2KHR*)&forMarshaling->srcStageMask, sizeof(VkPipelineStageFlags2KHR));
+    vkStream->write((VkAccessFlags2KHR*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags2KHR));
+    vkStream->write((VkPipelineStageFlags2KHR*)&forMarshaling->dstStageMask, sizeof(VkPipelineStageFlags2KHR));
+    vkStream->write((VkAccessFlags2KHR*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags2KHR));
+}
+
+void unmarshal_VkMemoryBarrier2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkMemoryBarrier2KHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkPipelineStageFlags2KHR*)&forUnmarshaling->srcStageMask, sizeof(VkPipelineStageFlags2KHR));
+    vkStream->read((VkAccessFlags2KHR*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags2KHR));
+    vkStream->read((VkPipelineStageFlags2KHR*)&forUnmarshaling->dstStageMask, sizeof(VkPipelineStageFlags2KHR));
+    vkStream->read((VkAccessFlags2KHR*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags2KHR));
+}
+
+void marshal_VkBufferMemoryBarrier2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferMemoryBarrier2KHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkPipelineStageFlags2KHR*)&forMarshaling->srcStageMask, sizeof(VkPipelineStageFlags2KHR));
+    vkStream->write((VkAccessFlags2KHR*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags2KHR));
+    vkStream->write((VkPipelineStageFlags2KHR*)&forMarshaling->dstStageMask, sizeof(VkPipelineStageFlags2KHR));
+    vkStream->write((VkAccessFlags2KHR*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags2KHR));
+    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_VkBufferMemoryBarrier2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkBufferMemoryBarrier2KHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkPipelineStageFlags2KHR*)&forUnmarshaling->srcStageMask, sizeof(VkPipelineStageFlags2KHR));
+    vkStream->read((VkAccessFlags2KHR*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags2KHR));
+    vkStream->read((VkPipelineStageFlags2KHR*)&forUnmarshaling->dstStageMask, sizeof(VkPipelineStageFlags2KHR));
+    vkStream->read((VkAccessFlags2KHR*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags2KHR));
+    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_VkImageMemoryBarrier2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImageMemoryBarrier2KHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkPipelineStageFlags2KHR*)&forMarshaling->srcStageMask, sizeof(VkPipelineStageFlags2KHR));
+    vkStream->write((VkAccessFlags2KHR*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags2KHR));
+    vkStream->write((VkPipelineStageFlags2KHR*)&forMarshaling->dstStageMask, sizeof(VkPipelineStageFlags2KHR));
+    vkStream->write((VkAccessFlags2KHR*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags2KHR));
+    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, rootType, (VkImageSubresourceRange*)(&forMarshaling->subresourceRange));
+}
+
+void unmarshal_VkImageMemoryBarrier2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkImageMemoryBarrier2KHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkPipelineStageFlags2KHR*)&forUnmarshaling->srcStageMask, sizeof(VkPipelineStageFlags2KHR));
+    vkStream->read((VkAccessFlags2KHR*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags2KHR));
+    vkStream->read((VkPipelineStageFlags2KHR*)&forUnmarshaling->dstStageMask, sizeof(VkPipelineStageFlags2KHR));
+    vkStream->read((VkAccessFlags2KHR*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags2KHR));
+    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, rootType, (VkImageSubresourceRange*)(&forUnmarshaling->subresourceRange));
+}
+
+void marshal_VkDependencyInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDependencyInfoKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkDependencyFlags*)&forMarshaling->dependencyFlags, sizeof(VkDependencyFlags));
+    vkStream->write((uint32_t*)&forMarshaling->memoryBarrierCount, sizeof(uint32_t));
+    if (forMarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->memoryBarrierCount; ++i)
+        {
+            marshal_VkMemoryBarrier2KHR(vkStream, rootType, (const VkMemoryBarrier2KHR*)(forMarshaling->pMemoryBarriers + i));
+        }
+    }
+    vkStream->write((uint32_t*)&forMarshaling->bufferMemoryBarrierCount, sizeof(uint32_t));
+    if (forMarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->bufferMemoryBarrierCount; ++i)
+        {
+            marshal_VkBufferMemoryBarrier2KHR(vkStream, rootType, (const VkBufferMemoryBarrier2KHR*)(forMarshaling->pBufferMemoryBarriers + i));
+        }
+    }
+    vkStream->write((uint32_t*)&forMarshaling->imageMemoryBarrierCount, sizeof(uint32_t));
+    if (forMarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageMemoryBarrierCount; ++i)
+        {
+            marshal_VkImageMemoryBarrier2KHR(vkStream, rootType, (const VkImageMemoryBarrier2KHR*)(forMarshaling->pImageMemoryBarriers + i));
+        }
+    }
+}
+
+void unmarshal_VkDependencyInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkDependencyInfoKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkDependencyFlags*)&forUnmarshaling->dependencyFlags, sizeof(VkDependencyFlags));
+    vkStream->read((uint32_t*)&forUnmarshaling->memoryBarrierCount, sizeof(uint32_t));
+    if (forUnmarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->memoryBarrierCount; ++i)
+        {
+            unmarshal_VkMemoryBarrier2KHR(vkStream, rootType, (VkMemoryBarrier2KHR*)(forUnmarshaling->pMemoryBarriers + i));
+        }
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->bufferMemoryBarrierCount, sizeof(uint32_t));
+    if (forUnmarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bufferMemoryBarrierCount; ++i)
+        {
+            unmarshal_VkBufferMemoryBarrier2KHR(vkStream, rootType, (VkBufferMemoryBarrier2KHR*)(forUnmarshaling->pBufferMemoryBarriers + i));
+        }
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->imageMemoryBarrierCount, sizeof(uint32_t));
+    if (forUnmarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->imageMemoryBarrierCount; ++i)
+        {
+            unmarshal_VkImageMemoryBarrier2KHR(vkStream, rootType, (VkImageMemoryBarrier2KHR*)(forUnmarshaling->pImageMemoryBarriers + i));
+        }
+    }
+}
+
+void marshal_VkSemaphoreSubmitInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSemaphoreSubmitInfoKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, 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));
+    vkStream->write((VkPipelineStageFlags2KHR*)&forMarshaling->stageMask, sizeof(VkPipelineStageFlags2KHR));
+    vkStream->write((uint32_t*)&forMarshaling->deviceIndex, sizeof(uint32_t));
+}
+
+void unmarshal_VkSemaphoreSubmitInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkSemaphoreSubmitInfoKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (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));
+    vkStream->read((VkPipelineStageFlags2KHR*)&forUnmarshaling->stageMask, sizeof(VkPipelineStageFlags2KHR));
+    vkStream->read((uint32_t*)&forUnmarshaling->deviceIndex, sizeof(uint32_t));
+}
+
+void marshal_VkCommandBufferSubmitInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCommandBufferSubmitInfoKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&forMarshaling->commandBuffer, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
+}
+
+void unmarshal_VkCommandBufferSubmitInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkCommandBufferSubmitInfoKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkCommandBuffer(&cgen_var_0, (VkCommandBuffer*)&forUnmarshaling->commandBuffer, 1);
+    vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
+}
+
+void marshal_VkSubmitInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSubmitInfo2KHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkSubmitFlagsKHR*)&forMarshaling->flags, sizeof(VkSubmitFlagsKHR));
+    vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreInfoCount, sizeof(uint32_t));
+    if (forMarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->waitSemaphoreInfoCount; ++i)
+        {
+            marshal_VkSemaphoreSubmitInfoKHR(vkStream, rootType, (const VkSemaphoreSubmitInfoKHR*)(forMarshaling->pWaitSemaphoreInfos + i));
+        }
+    }
+    vkStream->write((uint32_t*)&forMarshaling->commandBufferInfoCount, sizeof(uint32_t));
+    if (forMarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->commandBufferInfoCount; ++i)
+        {
+            marshal_VkCommandBufferSubmitInfoKHR(vkStream, rootType, (const VkCommandBufferSubmitInfoKHR*)(forMarshaling->pCommandBufferInfos + i));
+        }
+    }
+    vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreInfoCount, sizeof(uint32_t));
+    if (forMarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->signalSemaphoreInfoCount; ++i)
+        {
+            marshal_VkSemaphoreSubmitInfoKHR(vkStream, rootType, (const VkSemaphoreSubmitInfoKHR*)(forMarshaling->pSignalSemaphoreInfos + i));
+        }
+    }
+}
+
+void unmarshal_VkSubmitInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkSubmitInfo2KHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkSubmitFlagsKHR*)&forUnmarshaling->flags, sizeof(VkSubmitFlagsKHR));
+    vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreInfoCount, sizeof(uint32_t));
+    if (forUnmarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->waitSemaphoreInfoCount; ++i)
+        {
+            unmarshal_VkSemaphoreSubmitInfoKHR(vkStream, rootType, (VkSemaphoreSubmitInfoKHR*)(forUnmarshaling->pWaitSemaphoreInfos + i));
+        }
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->commandBufferInfoCount, sizeof(uint32_t));
+    if (forUnmarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->commandBufferInfoCount; ++i)
+        {
+            unmarshal_VkCommandBufferSubmitInfoKHR(vkStream, rootType, (VkCommandBufferSubmitInfoKHR*)(forUnmarshaling->pCommandBufferInfos + i));
+        }
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreInfoCount, sizeof(uint32_t));
+    if (forUnmarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->signalSemaphoreInfoCount; ++i)
+        {
+            unmarshal_VkSemaphoreSubmitInfoKHR(vkStream, rootType, (VkSemaphoreSubmitInfoKHR*)(forUnmarshaling->pSignalSemaphoreInfos + i));
+        }
+    }
+}
+
+void marshal_VkPhysicalDeviceSynchronization2FeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSynchronization2FeaturesKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->synchronization2, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceSynchronization2FeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceSynchronization2FeaturesKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->synchronization2, sizeof(VkBool32));
+}
+
+void marshal_VkQueueFamilyCheckpointProperties2NV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkQueueFamilyCheckpointProperties2NV* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkPipelineStageFlags2KHR*)&forMarshaling->checkpointExecutionStageMask, sizeof(VkPipelineStageFlags2KHR));
+}
+
+void unmarshal_VkQueueFamilyCheckpointProperties2NV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkQueueFamilyCheckpointProperties2NV* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkPipelineStageFlags2KHR*)&forUnmarshaling->checkpointExecutionStageMask, sizeof(VkPipelineStageFlags2KHR));
+}
+
+void marshal_VkCheckpointData2NV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCheckpointData2NV* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkPipelineStageFlags2KHR*)&forMarshaling->stage, sizeof(VkPipelineStageFlags2KHR));
+    // WARNING PTR CHECK
+    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));
+    }
+}
+
+void unmarshal_VkCheckpointData2NV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkCheckpointData2NV* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkPipelineStageFlags2KHR*)&forUnmarshaling->stage, sizeof(VkPipelineStageFlags2KHR));
+    // WARNING PTR CHECK
+    void* check_pCheckpointMarker;
+    check_pCheckpointMarker = (void*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pCheckpointMarker)
+    {
+        if (!(check_pCheckpointMarker))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pCheckpointMarker inconsistent between guest and host\n");
+        }
+        vkStream->read((void*)forUnmarshaling->pCheckpointMarker, sizeof(uint8_t));
+    }
+}
+
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+void marshal_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->shaderSubgroupUniformControlFlow, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSubgroupUniformControlFlow, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+void marshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->shaderZeroInitializeWorkgroupMemory, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderZeroInitializeWorkgroupMemory, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+void marshal_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->workgroupMemoryExplicitLayout, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->workgroupMemoryExplicitLayoutScalarBlockLayout, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->workgroupMemoryExplicitLayout8BitAccess, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->workgroupMemoryExplicitLayout16BitAccess, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->workgroupMemoryExplicitLayout, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->workgroupMemoryExplicitLayoutScalarBlockLayout, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->workgroupMemoryExplicitLayout8BitAccess, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->workgroupMemoryExplicitLayout16BitAccess, sizeof(VkBool32));
+}
+
+#endif
 #ifdef VK_KHR_copy_commands2
 void marshal_VkBufferCopy2KHR(
     VulkanStreamGuest* vkStream,
@@ -13126,6 +15136,166 @@
 }
 
 #endif
+#ifdef VK_KHR_format_feature_flags2
+void marshal_VkFormatProperties3KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkFormatProperties3KHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkFormatFeatureFlags2KHR*)&forMarshaling->linearTilingFeatures, sizeof(VkFormatFeatureFlags2KHR));
+    vkStream->write((VkFormatFeatureFlags2KHR*)&forMarshaling->optimalTilingFeatures, sizeof(VkFormatFeatureFlags2KHR));
+    vkStream->write((VkFormatFeatureFlags2KHR*)&forMarshaling->bufferFeatures, sizeof(VkFormatFeatureFlags2KHR));
+}
+
+void unmarshal_VkFormatProperties3KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkFormatProperties3KHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkFormatFeatureFlags2KHR*)&forUnmarshaling->linearTilingFeatures, sizeof(VkFormatFeatureFlags2KHR));
+    vkStream->read((VkFormatFeatureFlags2KHR*)&forUnmarshaling->optimalTilingFeatures, sizeof(VkFormatFeatureFlags2KHR));
+    vkStream->read((VkFormatFeatureFlags2KHR*)&forUnmarshaling->bufferFeatures, sizeof(VkFormatFeatureFlags2KHR));
+}
+
+#endif
+#ifdef VK_KHR_maintenance4
+void marshal_VkPhysicalDeviceMaintenance4FeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMaintenance4FeaturesKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->maintenance4, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceMaintenance4FeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceMaintenance4FeaturesKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->maintenance4, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceMaintenance4PropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMaintenance4PropertiesKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkDeviceSize*)&forMarshaling->maxBufferSize, sizeof(VkDeviceSize));
+}
+
+void unmarshal_VkPhysicalDeviceMaintenance4PropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceMaintenance4PropertiesKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->maxBufferSize, sizeof(VkDeviceSize));
+}
+
+void marshal_VkDeviceBufferMemoryRequirementsKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDeviceBufferMemoryRequirementsKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    marshal_VkBufferCreateInfo(vkStream, rootType, (const VkBufferCreateInfo*)(forMarshaling->pCreateInfo));
+}
+
+void unmarshal_VkDeviceBufferMemoryRequirementsKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkDeviceBufferMemoryRequirementsKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    unmarshal_VkBufferCreateInfo(vkStream, rootType, (VkBufferCreateInfo*)(forUnmarshaling->pCreateInfo));
+}
+
+void marshal_VkDeviceImageMemoryRequirementsKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDeviceImageMemoryRequirementsKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    marshal_VkImageCreateInfo(vkStream, rootType, (const VkImageCreateInfo*)(forMarshaling->pCreateInfo));
+    vkStream->write((VkImageAspectFlagBits*)&forMarshaling->planeAspect, sizeof(VkImageAspectFlagBits));
+}
+
+void unmarshal_VkDeviceImageMemoryRequirementsKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkDeviceImageMemoryRequirementsKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    unmarshal_VkImageCreateInfo(vkStream, rootType, (VkImageCreateInfo*)(forUnmarshaling->pCreateInfo));
+    vkStream->read((VkImageAspectFlagBits*)&forUnmarshaling->planeAspect, sizeof(VkImageAspectFlagBits));
+}
+
+#endif
 #ifdef VK_ANDROID_native_buffer
 void marshal_VkNativeBufferANDROID(
     VulkanStreamGuest* vkStream,
@@ -13604,6 +15774,125 @@
 }
 
 #endif
+#ifdef VK_NVX_binary_import
+void marshal_VkCuModuleCreateInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCuModuleCreateInfoNVX* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    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));
+}
+
+void unmarshal_VkCuModuleCreateInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkCuModuleCreateInfoNVX* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    forUnmarshaling->dataSize = (size_t)vkStream->getBe64();
+    vkStream->read((void*)forUnmarshaling->pData, forUnmarshaling->dataSize * sizeof(const uint8_t));
+}
+
+void marshal_VkCuFunctionCreateInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCuFunctionCreateInfoNVX* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->module;
+    vkStream->putBe64(cgen_var_0);
+    vkStream->putString(forMarshaling->pName);
+}
+
+void unmarshal_VkCuFunctionCreateInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkCuFunctionCreateInfoNVX* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    forUnmarshaling->module = (VkCuModuleNVX)vkStream->getBe64();
+    vkStream->loadStringInPlace((char**)&forUnmarshaling->pName);
+}
+
+void marshal_VkCuLaunchInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCuLaunchInfoNVX* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->function;
+    vkStream->putBe64(cgen_var_0);
+    vkStream->write((uint32_t*)&forMarshaling->gridDimX, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->gridDimY, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->gridDimZ, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->blockDimX, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->blockDimY, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->blockDimZ, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->sharedMemBytes, sizeof(uint32_t));
+    uint64_t cgen_var_1 = (uint64_t)forMarshaling->paramCount;
+    vkStream->putBe64(cgen_var_1);
+    uint64_t cgen_var_2 = (uint64_t)forMarshaling->extraCount;
+    vkStream->putBe64(cgen_var_2);
+}
+
+void unmarshal_VkCuLaunchInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkCuLaunchInfoNVX* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    forUnmarshaling->function = (VkCuFunctionNVX)vkStream->getBe64();
+    vkStream->read((uint32_t*)&forUnmarshaling->gridDimX, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->gridDimY, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->gridDimZ, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->blockDimX, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->blockDimY, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->blockDimZ, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->sharedMemBytes, sizeof(uint32_t));
+    forUnmarshaling->paramCount = (size_t)vkStream->getBe64();
+    forUnmarshaling->extraCount = (size_t)vkStream->getBe64();
+}
+
+#endif
 #ifdef VK_NVX_image_view_handle
 void marshal_VkImageViewHandleInfoNVX(
     VulkanStreamGuest* vkStream,
@@ -13688,6 +15977,1270 @@
 #endif
 #ifdef VK_AMD_shader_ballot
 #endif
+#ifdef VK_EXT_video_encode_h264
+void marshal_VkVideoEncodeH264CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264CapabilitiesEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkVideoEncodeH264CapabilityFlagsEXT*)&forMarshaling->flags, sizeof(VkVideoEncodeH264CapabilityFlagsEXT));
+    vkStream->write((VkVideoEncodeH264InputModeFlagsEXT*)&forMarshaling->inputModeFlags, sizeof(VkVideoEncodeH264InputModeFlagsEXT));
+    vkStream->write((VkVideoEncodeH264OutputModeFlagsEXT*)&forMarshaling->outputModeFlags, sizeof(VkVideoEncodeH264OutputModeFlagsEXT));
+    marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->minPictureSizeInMbs));
+    marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->maxPictureSizeInMbs));
+    marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->inputImageDataAlignment));
+    vkStream->write((uint8_t*)&forMarshaling->maxNumL0ReferenceForP, sizeof(uint8_t));
+    vkStream->write((uint8_t*)&forMarshaling->maxNumL0ReferenceForB, sizeof(uint8_t));
+    vkStream->write((uint8_t*)&forMarshaling->maxNumL1Reference, sizeof(uint8_t));
+    vkStream->write((uint8_t*)&forMarshaling->qualityLevelCount, sizeof(uint8_t));
+    marshal_VkExtensionProperties(vkStream, rootType, (VkExtensionProperties*)(&forMarshaling->stdExtensionVersion));
+}
+
+void unmarshal_VkVideoEncodeH264CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH264CapabilitiesEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkVideoEncodeH264CapabilityFlagsEXT*)&forUnmarshaling->flags, sizeof(VkVideoEncodeH264CapabilityFlagsEXT));
+    vkStream->read((VkVideoEncodeH264InputModeFlagsEXT*)&forUnmarshaling->inputModeFlags, sizeof(VkVideoEncodeH264InputModeFlagsEXT));
+    vkStream->read((VkVideoEncodeH264OutputModeFlagsEXT*)&forUnmarshaling->outputModeFlags, sizeof(VkVideoEncodeH264OutputModeFlagsEXT));
+    unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->minPictureSizeInMbs));
+    unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->maxPictureSizeInMbs));
+    unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->inputImageDataAlignment));
+    vkStream->read((uint8_t*)&forUnmarshaling->maxNumL0ReferenceForP, sizeof(uint8_t));
+    vkStream->read((uint8_t*)&forUnmarshaling->maxNumL0ReferenceForB, sizeof(uint8_t));
+    vkStream->read((uint8_t*)&forUnmarshaling->maxNumL1Reference, sizeof(uint8_t));
+    vkStream->read((uint8_t*)&forUnmarshaling->qualityLevelCount, sizeof(uint8_t));
+    unmarshal_VkExtensionProperties(vkStream, rootType, (VkExtensionProperties*)(&forUnmarshaling->stdExtensionVersion));
+}
+
+void marshal_VkVideoEncodeH264SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionCreateInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkVideoEncodeH264CreateFlagsEXT*)&forMarshaling->flags, sizeof(VkVideoEncodeH264CreateFlagsEXT));
+    marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->maxPictureSizeInMbs));
+    marshal_VkExtensionProperties(vkStream, rootType, (const VkExtensionProperties*)(forMarshaling->pStdExtensionVersion));
+}
+
+void unmarshal_VkVideoEncodeH264SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH264SessionCreateInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkVideoEncodeH264CreateFlagsEXT*)&forUnmarshaling->flags, sizeof(VkVideoEncodeH264CreateFlagsEXT));
+    unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->maxPictureSizeInMbs));
+    unmarshal_VkExtensionProperties(vkStream, rootType, (VkExtensionProperties*)(forUnmarshaling->pStdExtensionVersion));
+}
+
+void marshal_VkVideoEncodeH264SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionParametersAddInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->spsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pSpsStd;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pSpsStd)
+    {
+        vkStream->write((const StdVideoH264SequenceParameterSet*)forMarshaling->pSpsStd, forMarshaling->spsStdCount * sizeof(const StdVideoH264SequenceParameterSet));
+    }
+    vkStream->write((uint32_t*)&forMarshaling->ppsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pPpsStd;
+    vkStream->putBe64(cgen_var_1);
+    if (forMarshaling->pPpsStd)
+    {
+        vkStream->write((const StdVideoH264PictureParameterSet*)forMarshaling->pPpsStd, forMarshaling->ppsStdCount * sizeof(const StdVideoH264PictureParameterSet));
+    }
+}
+
+void unmarshal_VkVideoEncodeH264SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH264SessionParametersAddInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->spsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const StdVideoH264SequenceParameterSet* check_pSpsStd;
+    check_pSpsStd = (const StdVideoH264SequenceParameterSet*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pSpsStd)
+    {
+        if (!(check_pSpsStd))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pSpsStd inconsistent between guest and host\n");
+        }
+        vkStream->read((StdVideoH264SequenceParameterSet*)forUnmarshaling->pSpsStd, forUnmarshaling->spsStdCount * sizeof(const StdVideoH264SequenceParameterSet));
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->ppsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const StdVideoH264PictureParameterSet* check_pPpsStd;
+    check_pPpsStd = (const StdVideoH264PictureParameterSet*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pPpsStd)
+    {
+        if (!(check_pPpsStd))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pPpsStd inconsistent between guest and host\n");
+        }
+        vkStream->read((StdVideoH264PictureParameterSet*)forUnmarshaling->pPpsStd, forUnmarshaling->ppsStdCount * sizeof(const StdVideoH264PictureParameterSet));
+    }
+}
+
+void marshal_VkVideoEncodeH264SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionParametersCreateInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->maxSpsStdCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPpsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pParametersAddInfo;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pParametersAddInfo)
+    {
+        marshal_VkVideoEncodeH264SessionParametersAddInfoEXT(vkStream, rootType, (const VkVideoEncodeH264SessionParametersAddInfoEXT*)(forMarshaling->pParametersAddInfo));
+    }
+}
+
+void unmarshal_VkVideoEncodeH264SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH264SessionParametersCreateInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxSpsStdCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPpsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const VkVideoEncodeH264SessionParametersAddInfoEXT* check_pParametersAddInfo;
+    check_pParametersAddInfo = (const VkVideoEncodeH264SessionParametersAddInfoEXT*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pParametersAddInfo)
+    {
+        if (!(check_pParametersAddInfo))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pParametersAddInfo inconsistent between guest and host\n");
+        }
+        unmarshal_VkVideoEncodeH264SessionParametersAddInfoEXT(vkStream, rootType, (VkVideoEncodeH264SessionParametersAddInfoEXT*)(forUnmarshaling->pParametersAddInfo));
+    }
+}
+
+void marshal_VkVideoEncodeH264DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264DpbSlotInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((int8_t*)&forMarshaling->slotIndex, sizeof(int8_t));
+    vkStream->write((const StdVideoEncodeH264PictureInfo*)forMarshaling->pStdPictureInfo, sizeof(const StdVideoEncodeH264PictureInfo));
+}
+
+void unmarshal_VkVideoEncodeH264DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH264DpbSlotInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((int8_t*)&forUnmarshaling->slotIndex, sizeof(int8_t));
+    vkStream->read((StdVideoEncodeH264PictureInfo*)forUnmarshaling->pStdPictureInfo, sizeof(const StdVideoEncodeH264PictureInfo));
+}
+
+void marshal_VkVideoEncodeH264NaluSliceEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264NaluSliceEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((const StdVideoEncodeH264SliceHeader*)forMarshaling->pSliceHeaderStd, sizeof(const StdVideoEncodeH264SliceHeader));
+    vkStream->write((uint32_t*)&forMarshaling->mbCount, sizeof(uint32_t));
+    vkStream->write((uint8_t*)&forMarshaling->refFinalList0EntryCount, sizeof(uint8_t));
+    if (forMarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->refFinalList0EntryCount; ++i)
+        {
+            marshal_VkVideoEncodeH264DpbSlotInfoEXT(vkStream, rootType, (const VkVideoEncodeH264DpbSlotInfoEXT*)(forMarshaling->pRefFinalList0Entries + i));
+        }
+    }
+    vkStream->write((uint8_t*)&forMarshaling->refFinalList1EntryCount, sizeof(uint8_t));
+    if (forMarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->refFinalList1EntryCount; ++i)
+        {
+            marshal_VkVideoEncodeH264DpbSlotInfoEXT(vkStream, rootType, (const VkVideoEncodeH264DpbSlotInfoEXT*)(forMarshaling->pRefFinalList1Entries + i));
+        }
+    }
+    vkStream->write((uint32_t*)&forMarshaling->precedingNaluBytes, sizeof(uint32_t));
+    vkStream->write((uint8_t*)&forMarshaling->minQp, sizeof(uint8_t));
+    vkStream->write((uint8_t*)&forMarshaling->maxQp, sizeof(uint8_t));
+}
+
+void unmarshal_VkVideoEncodeH264NaluSliceEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH264NaluSliceEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((StdVideoEncodeH264SliceHeader*)forUnmarshaling->pSliceHeaderStd, sizeof(const StdVideoEncodeH264SliceHeader));
+    vkStream->read((uint32_t*)&forUnmarshaling->mbCount, sizeof(uint32_t));
+    vkStream->read((uint8_t*)&forUnmarshaling->refFinalList0EntryCount, sizeof(uint8_t));
+    if (forUnmarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->refFinalList0EntryCount; ++i)
+        {
+            unmarshal_VkVideoEncodeH264DpbSlotInfoEXT(vkStream, rootType, (VkVideoEncodeH264DpbSlotInfoEXT*)(forUnmarshaling->pRefFinalList0Entries + i));
+        }
+    }
+    vkStream->read((uint8_t*)&forUnmarshaling->refFinalList1EntryCount, sizeof(uint8_t));
+    if (forUnmarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->refFinalList1EntryCount; ++i)
+        {
+            unmarshal_VkVideoEncodeH264DpbSlotInfoEXT(vkStream, rootType, (VkVideoEncodeH264DpbSlotInfoEXT*)(forUnmarshaling->pRefFinalList1Entries + i));
+        }
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->precedingNaluBytes, sizeof(uint32_t));
+    vkStream->read((uint8_t*)&forUnmarshaling->minQp, sizeof(uint8_t));
+    vkStream->read((uint8_t*)&forUnmarshaling->maxQp, sizeof(uint8_t));
+}
+
+void marshal_VkVideoEncodeH264VclFrameInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264VclFrameInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint8_t*)&forMarshaling->refDefaultFinalList0EntryCount, sizeof(uint8_t));
+    if (forMarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->refDefaultFinalList0EntryCount; ++i)
+        {
+            marshal_VkVideoEncodeH264DpbSlotInfoEXT(vkStream, rootType, (const VkVideoEncodeH264DpbSlotInfoEXT*)(forMarshaling->pRefDefaultFinalList0Entries + i));
+        }
+    }
+    vkStream->write((uint8_t*)&forMarshaling->refDefaultFinalList1EntryCount, sizeof(uint8_t));
+    if (forMarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->refDefaultFinalList1EntryCount; ++i)
+        {
+            marshal_VkVideoEncodeH264DpbSlotInfoEXT(vkStream, rootType, (const VkVideoEncodeH264DpbSlotInfoEXT*)(forMarshaling->pRefDefaultFinalList1Entries + i));
+        }
+    }
+    vkStream->write((uint32_t*)&forMarshaling->naluSliceEntryCount, sizeof(uint32_t));
+    if (forMarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->naluSliceEntryCount; ++i)
+        {
+            marshal_VkVideoEncodeH264NaluSliceEXT(vkStream, rootType, (const VkVideoEncodeH264NaluSliceEXT*)(forMarshaling->pNaluSliceEntries + i));
+        }
+    }
+    marshal_VkVideoEncodeH264DpbSlotInfoEXT(vkStream, rootType, (const VkVideoEncodeH264DpbSlotInfoEXT*)(forMarshaling->pCurrentPictureInfo));
+}
+
+void unmarshal_VkVideoEncodeH264VclFrameInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH264VclFrameInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint8_t*)&forUnmarshaling->refDefaultFinalList0EntryCount, sizeof(uint8_t));
+    if (forUnmarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->refDefaultFinalList0EntryCount; ++i)
+        {
+            unmarshal_VkVideoEncodeH264DpbSlotInfoEXT(vkStream, rootType, (VkVideoEncodeH264DpbSlotInfoEXT*)(forUnmarshaling->pRefDefaultFinalList0Entries + i));
+        }
+    }
+    vkStream->read((uint8_t*)&forUnmarshaling->refDefaultFinalList1EntryCount, sizeof(uint8_t));
+    if (forUnmarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->refDefaultFinalList1EntryCount; ++i)
+        {
+            unmarshal_VkVideoEncodeH264DpbSlotInfoEXT(vkStream, rootType, (VkVideoEncodeH264DpbSlotInfoEXT*)(forUnmarshaling->pRefDefaultFinalList1Entries + i));
+        }
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->naluSliceEntryCount, sizeof(uint32_t));
+    if (forUnmarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->naluSliceEntryCount; ++i)
+        {
+            unmarshal_VkVideoEncodeH264NaluSliceEXT(vkStream, rootType, (VkVideoEncodeH264NaluSliceEXT*)(forUnmarshaling->pNaluSliceEntries + i));
+        }
+    }
+    unmarshal_VkVideoEncodeH264DpbSlotInfoEXT(vkStream, rootType, (VkVideoEncodeH264DpbSlotInfoEXT*)(forUnmarshaling->pCurrentPictureInfo));
+}
+
+void marshal_VkVideoEncodeH264EmitPictureParametersEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264EmitPictureParametersEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint8_t*)&forMarshaling->spsId, sizeof(uint8_t));
+    vkStream->write((VkBool32*)&forMarshaling->emitSpsEnable, sizeof(VkBool32));
+    vkStream->write((uint32_t*)&forMarshaling->ppsIdEntryCount, sizeof(uint32_t));
+    vkStream->write((const uint8_t*)forMarshaling->ppsIdEntries, forMarshaling->ppsIdEntryCount * sizeof(const uint8_t));
+}
+
+void unmarshal_VkVideoEncodeH264EmitPictureParametersEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH264EmitPictureParametersEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint8_t*)&forUnmarshaling->spsId, sizeof(uint8_t));
+    vkStream->read((VkBool32*)&forUnmarshaling->emitSpsEnable, sizeof(VkBool32));
+    vkStream->read((uint32_t*)&forUnmarshaling->ppsIdEntryCount, sizeof(uint32_t));
+    vkStream->read((uint8_t*)forUnmarshaling->ppsIdEntries, forUnmarshaling->ppsIdEntryCount * sizeof(const uint8_t));
+}
+
+void marshal_VkVideoEncodeH264ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264ProfileEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((StdVideoH264ProfileIdc*)&forMarshaling->stdProfileIdc, sizeof(StdVideoH264ProfileIdc));
+}
+
+void unmarshal_VkVideoEncodeH264ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH264ProfileEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((StdVideoH264ProfileIdc*)&forUnmarshaling->stdProfileIdc, sizeof(StdVideoH264ProfileIdc));
+}
+
+#endif
+#ifdef VK_EXT_video_encode_h265
+void marshal_VkVideoEncodeH265CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265CapabilitiesEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkVideoEncodeH265CapabilityFlagsEXT*)&forMarshaling->flags, sizeof(VkVideoEncodeH265CapabilityFlagsEXT));
+    vkStream->write((VkVideoEncodeH265InputModeFlagsEXT*)&forMarshaling->inputModeFlags, sizeof(VkVideoEncodeH265InputModeFlagsEXT));
+    vkStream->write((VkVideoEncodeH265OutputModeFlagsEXT*)&forMarshaling->outputModeFlags, sizeof(VkVideoEncodeH265OutputModeFlagsEXT));
+    vkStream->write((VkVideoEncodeH265CtbSizeFlagsEXT*)&forMarshaling->ctbSizes, sizeof(VkVideoEncodeH265CtbSizeFlagsEXT));
+    marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->inputImageDataAlignment));
+    vkStream->write((uint8_t*)&forMarshaling->maxNumL0ReferenceForP, sizeof(uint8_t));
+    vkStream->write((uint8_t*)&forMarshaling->maxNumL0ReferenceForB, sizeof(uint8_t));
+    vkStream->write((uint8_t*)&forMarshaling->maxNumL1Reference, sizeof(uint8_t));
+    vkStream->write((uint8_t*)&forMarshaling->maxNumSubLayers, sizeof(uint8_t));
+    vkStream->write((uint8_t*)&forMarshaling->qualityLevelCount, sizeof(uint8_t));
+    marshal_VkExtensionProperties(vkStream, rootType, (VkExtensionProperties*)(&forMarshaling->stdExtensionVersion));
+}
+
+void unmarshal_VkVideoEncodeH265CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH265CapabilitiesEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkVideoEncodeH265CapabilityFlagsEXT*)&forUnmarshaling->flags, sizeof(VkVideoEncodeH265CapabilityFlagsEXT));
+    vkStream->read((VkVideoEncodeH265InputModeFlagsEXT*)&forUnmarshaling->inputModeFlags, sizeof(VkVideoEncodeH265InputModeFlagsEXT));
+    vkStream->read((VkVideoEncodeH265OutputModeFlagsEXT*)&forUnmarshaling->outputModeFlags, sizeof(VkVideoEncodeH265OutputModeFlagsEXT));
+    vkStream->read((VkVideoEncodeH265CtbSizeFlagsEXT*)&forUnmarshaling->ctbSizes, sizeof(VkVideoEncodeH265CtbSizeFlagsEXT));
+    unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->inputImageDataAlignment));
+    vkStream->read((uint8_t*)&forUnmarshaling->maxNumL0ReferenceForP, sizeof(uint8_t));
+    vkStream->read((uint8_t*)&forUnmarshaling->maxNumL0ReferenceForB, sizeof(uint8_t));
+    vkStream->read((uint8_t*)&forUnmarshaling->maxNumL1Reference, sizeof(uint8_t));
+    vkStream->read((uint8_t*)&forUnmarshaling->maxNumSubLayers, sizeof(uint8_t));
+    vkStream->read((uint8_t*)&forUnmarshaling->qualityLevelCount, sizeof(uint8_t));
+    unmarshal_VkExtensionProperties(vkStream, rootType, (VkExtensionProperties*)(&forUnmarshaling->stdExtensionVersion));
+}
+
+void marshal_VkVideoEncodeH265SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionCreateInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkVideoEncodeH265CreateFlagsEXT*)&forMarshaling->flags, sizeof(VkVideoEncodeH265CreateFlagsEXT));
+    marshal_VkExtensionProperties(vkStream, rootType, (const VkExtensionProperties*)(forMarshaling->pStdExtensionVersion));
+}
+
+void unmarshal_VkVideoEncodeH265SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH265SessionCreateInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkVideoEncodeH265CreateFlagsEXT*)&forUnmarshaling->flags, sizeof(VkVideoEncodeH265CreateFlagsEXT));
+    unmarshal_VkExtensionProperties(vkStream, rootType, (VkExtensionProperties*)(forUnmarshaling->pStdExtensionVersion));
+}
+
+void marshal_VkVideoEncodeH265SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionParametersAddInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->vpsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pVpsStd;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pVpsStd)
+    {
+        vkStream->write((const StdVideoH265VideoParameterSet*)forMarshaling->pVpsStd, forMarshaling->vpsStdCount * sizeof(const StdVideoH265VideoParameterSet));
+    }
+    vkStream->write((uint32_t*)&forMarshaling->spsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pSpsStd;
+    vkStream->putBe64(cgen_var_1);
+    if (forMarshaling->pSpsStd)
+    {
+        vkStream->write((const StdVideoH265SequenceParameterSet*)forMarshaling->pSpsStd, forMarshaling->spsStdCount * sizeof(const StdVideoH265SequenceParameterSet));
+    }
+    vkStream->write((uint32_t*)&forMarshaling->ppsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pPpsStd;
+    vkStream->putBe64(cgen_var_2);
+    if (forMarshaling->pPpsStd)
+    {
+        vkStream->write((const StdVideoH265PictureParameterSet*)forMarshaling->pPpsStd, forMarshaling->ppsStdCount * sizeof(const StdVideoH265PictureParameterSet));
+    }
+}
+
+void unmarshal_VkVideoEncodeH265SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH265SessionParametersAddInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->vpsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const StdVideoH265VideoParameterSet* check_pVpsStd;
+    check_pVpsStd = (const StdVideoH265VideoParameterSet*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pVpsStd)
+    {
+        if (!(check_pVpsStd))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pVpsStd inconsistent between guest and host\n");
+        }
+        vkStream->read((StdVideoH265VideoParameterSet*)forUnmarshaling->pVpsStd, forUnmarshaling->vpsStdCount * sizeof(const StdVideoH265VideoParameterSet));
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->spsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const StdVideoH265SequenceParameterSet* check_pSpsStd;
+    check_pSpsStd = (const StdVideoH265SequenceParameterSet*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pSpsStd)
+    {
+        if (!(check_pSpsStd))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pSpsStd inconsistent between guest and host\n");
+        }
+        vkStream->read((StdVideoH265SequenceParameterSet*)forUnmarshaling->pSpsStd, forUnmarshaling->spsStdCount * sizeof(const StdVideoH265SequenceParameterSet));
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->ppsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const StdVideoH265PictureParameterSet* check_pPpsStd;
+    check_pPpsStd = (const StdVideoH265PictureParameterSet*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pPpsStd)
+    {
+        if (!(check_pPpsStd))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pPpsStd inconsistent between guest and host\n");
+        }
+        vkStream->read((StdVideoH265PictureParameterSet*)forUnmarshaling->pPpsStd, forUnmarshaling->ppsStdCount * sizeof(const StdVideoH265PictureParameterSet));
+    }
+}
+
+void marshal_VkVideoEncodeH265SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionParametersCreateInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->maxVpsStdCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxSpsStdCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPpsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pParametersAddInfo;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pParametersAddInfo)
+    {
+        marshal_VkVideoEncodeH265SessionParametersAddInfoEXT(vkStream, rootType, (const VkVideoEncodeH265SessionParametersAddInfoEXT*)(forMarshaling->pParametersAddInfo));
+    }
+}
+
+void unmarshal_VkVideoEncodeH265SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH265SessionParametersCreateInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxVpsStdCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxSpsStdCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPpsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const VkVideoEncodeH265SessionParametersAddInfoEXT* check_pParametersAddInfo;
+    check_pParametersAddInfo = (const VkVideoEncodeH265SessionParametersAddInfoEXT*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pParametersAddInfo)
+    {
+        if (!(check_pParametersAddInfo))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pParametersAddInfo inconsistent between guest and host\n");
+        }
+        unmarshal_VkVideoEncodeH265SessionParametersAddInfoEXT(vkStream, rootType, (VkVideoEncodeH265SessionParametersAddInfoEXT*)(forUnmarshaling->pParametersAddInfo));
+    }
+}
+
+void marshal_VkVideoEncodeH265DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265DpbSlotInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((int8_t*)&forMarshaling->slotIndex, sizeof(int8_t));
+    vkStream->write((const StdVideoEncodeH265ReferenceInfo*)forMarshaling->pStdReferenceInfo, sizeof(const StdVideoEncodeH265ReferenceInfo));
+}
+
+void unmarshal_VkVideoEncodeH265DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH265DpbSlotInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((int8_t*)&forUnmarshaling->slotIndex, sizeof(int8_t));
+    vkStream->read((StdVideoEncodeH265ReferenceInfo*)forUnmarshaling->pStdReferenceInfo, sizeof(const StdVideoEncodeH265ReferenceInfo));
+}
+
+void marshal_VkVideoEncodeH265ReferenceListsEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265ReferenceListsEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint8_t*)&forMarshaling->referenceList0EntryCount, sizeof(uint8_t));
+    if (forMarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->referenceList0EntryCount; ++i)
+        {
+            marshal_VkVideoEncodeH265DpbSlotInfoEXT(vkStream, rootType, (const VkVideoEncodeH265DpbSlotInfoEXT*)(forMarshaling->pReferenceList0Entries + i));
+        }
+    }
+    vkStream->write((uint8_t*)&forMarshaling->referenceList1EntryCount, sizeof(uint8_t));
+    if (forMarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->referenceList1EntryCount; ++i)
+        {
+            marshal_VkVideoEncodeH265DpbSlotInfoEXT(vkStream, rootType, (const VkVideoEncodeH265DpbSlotInfoEXT*)(forMarshaling->pReferenceList1Entries + i));
+        }
+    }
+    vkStream->write((const StdVideoEncodeH265ReferenceModifications*)forMarshaling->pReferenceModifications, sizeof(const StdVideoEncodeH265ReferenceModifications));
+}
+
+void unmarshal_VkVideoEncodeH265ReferenceListsEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH265ReferenceListsEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint8_t*)&forUnmarshaling->referenceList0EntryCount, sizeof(uint8_t));
+    if (forUnmarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->referenceList0EntryCount; ++i)
+        {
+            unmarshal_VkVideoEncodeH265DpbSlotInfoEXT(vkStream, rootType, (VkVideoEncodeH265DpbSlotInfoEXT*)(forUnmarshaling->pReferenceList0Entries + i));
+        }
+    }
+    vkStream->read((uint8_t*)&forUnmarshaling->referenceList1EntryCount, sizeof(uint8_t));
+    if (forUnmarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->referenceList1EntryCount; ++i)
+        {
+            unmarshal_VkVideoEncodeH265DpbSlotInfoEXT(vkStream, rootType, (VkVideoEncodeH265DpbSlotInfoEXT*)(forUnmarshaling->pReferenceList1Entries + i));
+        }
+    }
+    vkStream->read((StdVideoEncodeH265ReferenceModifications*)forUnmarshaling->pReferenceModifications, sizeof(const StdVideoEncodeH265ReferenceModifications));
+}
+
+void marshal_VkVideoEncodeH265NaluSliceEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265NaluSliceEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->ctbCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pReferenceFinalLists;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pReferenceFinalLists)
+    {
+        marshal_VkVideoEncodeH265ReferenceListsEXT(vkStream, rootType, (const VkVideoEncodeH265ReferenceListsEXT*)(forMarshaling->pReferenceFinalLists));
+    }
+    vkStream->write((const StdVideoEncodeH265SliceHeader*)forMarshaling->pSliceHeaderStd, sizeof(const StdVideoEncodeH265SliceHeader));
+}
+
+void unmarshal_VkVideoEncodeH265NaluSliceEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH265NaluSliceEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->ctbCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const VkVideoEncodeH265ReferenceListsEXT* check_pReferenceFinalLists;
+    check_pReferenceFinalLists = (const VkVideoEncodeH265ReferenceListsEXT*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pReferenceFinalLists)
+    {
+        if (!(check_pReferenceFinalLists))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pReferenceFinalLists inconsistent between guest and host\n");
+        }
+        unmarshal_VkVideoEncodeH265ReferenceListsEXT(vkStream, rootType, (VkVideoEncodeH265ReferenceListsEXT*)(forUnmarshaling->pReferenceFinalLists));
+    }
+    vkStream->read((StdVideoEncodeH265SliceHeader*)forUnmarshaling->pSliceHeaderStd, sizeof(const StdVideoEncodeH265SliceHeader));
+}
+
+void marshal_VkVideoEncodeH265VclFrameInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265VclFrameInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pReferenceFinalLists;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pReferenceFinalLists)
+    {
+        marshal_VkVideoEncodeH265ReferenceListsEXT(vkStream, rootType, (const VkVideoEncodeH265ReferenceListsEXT*)(forMarshaling->pReferenceFinalLists));
+    }
+    vkStream->write((uint32_t*)&forMarshaling->naluSliceEntryCount, sizeof(uint32_t));
+    if (forMarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->naluSliceEntryCount; ++i)
+        {
+            marshal_VkVideoEncodeH265NaluSliceEXT(vkStream, rootType, (const VkVideoEncodeH265NaluSliceEXT*)(forMarshaling->pNaluSliceEntries + i));
+        }
+    }
+    vkStream->write((const StdVideoEncodeH265PictureInfo*)forMarshaling->pCurrentPictureInfo, sizeof(const StdVideoEncodeH265PictureInfo));
+}
+
+void unmarshal_VkVideoEncodeH265VclFrameInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH265VclFrameInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    // WARNING PTR CHECK
+    const VkVideoEncodeH265ReferenceListsEXT* check_pReferenceFinalLists;
+    check_pReferenceFinalLists = (const VkVideoEncodeH265ReferenceListsEXT*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pReferenceFinalLists)
+    {
+        if (!(check_pReferenceFinalLists))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pReferenceFinalLists inconsistent between guest and host\n");
+        }
+        unmarshal_VkVideoEncodeH265ReferenceListsEXT(vkStream, rootType, (VkVideoEncodeH265ReferenceListsEXT*)(forUnmarshaling->pReferenceFinalLists));
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->naluSliceEntryCount, sizeof(uint32_t));
+    if (forUnmarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->naluSliceEntryCount; ++i)
+        {
+            unmarshal_VkVideoEncodeH265NaluSliceEXT(vkStream, rootType, (VkVideoEncodeH265NaluSliceEXT*)(forUnmarshaling->pNaluSliceEntries + i));
+        }
+    }
+    vkStream->read((StdVideoEncodeH265PictureInfo*)forUnmarshaling->pCurrentPictureInfo, sizeof(const StdVideoEncodeH265PictureInfo));
+}
+
+void marshal_VkVideoEncodeH265EmitPictureParametersEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265EmitPictureParametersEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint8_t*)&forMarshaling->vpsId, sizeof(uint8_t));
+    vkStream->write((uint8_t*)&forMarshaling->spsId, sizeof(uint8_t));
+    vkStream->write((VkBool32*)&forMarshaling->emitVpsEnable, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->emitSpsEnable, sizeof(VkBool32));
+    vkStream->write((uint32_t*)&forMarshaling->ppsIdEntryCount, sizeof(uint32_t));
+    vkStream->write((const uint8_t*)forMarshaling->ppsIdEntries, forMarshaling->ppsIdEntryCount * sizeof(const uint8_t));
+}
+
+void unmarshal_VkVideoEncodeH265EmitPictureParametersEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH265EmitPictureParametersEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint8_t*)&forUnmarshaling->vpsId, sizeof(uint8_t));
+    vkStream->read((uint8_t*)&forUnmarshaling->spsId, sizeof(uint8_t));
+    vkStream->read((VkBool32*)&forUnmarshaling->emitVpsEnable, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->emitSpsEnable, sizeof(VkBool32));
+    vkStream->read((uint32_t*)&forUnmarshaling->ppsIdEntryCount, sizeof(uint32_t));
+    vkStream->read((uint8_t*)forUnmarshaling->ppsIdEntries, forUnmarshaling->ppsIdEntryCount * sizeof(const uint8_t));
+}
+
+void marshal_VkVideoEncodeH265ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265ProfileEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((StdVideoH265ProfileIdc*)&forMarshaling->stdProfileIdc, sizeof(StdVideoH265ProfileIdc));
+}
+
+void unmarshal_VkVideoEncodeH265ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH265ProfileEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((StdVideoH265ProfileIdc*)&forUnmarshaling->stdProfileIdc, sizeof(StdVideoH265ProfileIdc));
+}
+
+#endif
+#ifdef VK_EXT_video_decode_h264
+void marshal_VkVideoDecodeH264ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264ProfileEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((StdVideoH264ProfileIdc*)&forMarshaling->stdProfileIdc, sizeof(StdVideoH264ProfileIdc));
+    vkStream->write((VkVideoDecodeH264PictureLayoutFlagsEXT*)&forMarshaling->pictureLayout, sizeof(VkVideoDecodeH264PictureLayoutFlagsEXT));
+}
+
+void unmarshal_VkVideoDecodeH264ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH264ProfileEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((StdVideoH264ProfileIdc*)&forUnmarshaling->stdProfileIdc, sizeof(StdVideoH264ProfileIdc));
+    vkStream->read((VkVideoDecodeH264PictureLayoutFlagsEXT*)&forUnmarshaling->pictureLayout, sizeof(VkVideoDecodeH264PictureLayoutFlagsEXT));
+}
+
+void marshal_VkVideoDecodeH264CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264CapabilitiesEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->maxLevel, sizeof(uint32_t));
+    marshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forMarshaling->fieldOffsetGranularity));
+    marshal_VkExtensionProperties(vkStream, rootType, (VkExtensionProperties*)(&forMarshaling->stdExtensionVersion));
+}
+
+void unmarshal_VkVideoDecodeH264CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH264CapabilitiesEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxLevel, sizeof(uint32_t));
+    unmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forUnmarshaling->fieldOffsetGranularity));
+    unmarshal_VkExtensionProperties(vkStream, rootType, (VkExtensionProperties*)(&forUnmarshaling->stdExtensionVersion));
+}
+
+void marshal_VkVideoDecodeH264SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionCreateInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkVideoDecodeH264CreateFlagsEXT*)&forMarshaling->flags, sizeof(VkVideoDecodeH264CreateFlagsEXT));
+    marshal_VkExtensionProperties(vkStream, rootType, (const VkExtensionProperties*)(forMarshaling->pStdExtensionVersion));
+}
+
+void unmarshal_VkVideoDecodeH264SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH264SessionCreateInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkVideoDecodeH264CreateFlagsEXT*)&forUnmarshaling->flags, sizeof(VkVideoDecodeH264CreateFlagsEXT));
+    unmarshal_VkExtensionProperties(vkStream, rootType, (VkExtensionProperties*)(forUnmarshaling->pStdExtensionVersion));
+}
+
+void marshal_VkVideoDecodeH264SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionParametersAddInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->spsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pSpsStd;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pSpsStd)
+    {
+        vkStream->write((const StdVideoH264SequenceParameterSet*)forMarshaling->pSpsStd, forMarshaling->spsStdCount * sizeof(const StdVideoH264SequenceParameterSet));
+    }
+    vkStream->write((uint32_t*)&forMarshaling->ppsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pPpsStd;
+    vkStream->putBe64(cgen_var_1);
+    if (forMarshaling->pPpsStd)
+    {
+        vkStream->write((const StdVideoH264PictureParameterSet*)forMarshaling->pPpsStd, forMarshaling->ppsStdCount * sizeof(const StdVideoH264PictureParameterSet));
+    }
+}
+
+void unmarshal_VkVideoDecodeH264SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH264SessionParametersAddInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->spsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const StdVideoH264SequenceParameterSet* check_pSpsStd;
+    check_pSpsStd = (const StdVideoH264SequenceParameterSet*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pSpsStd)
+    {
+        if (!(check_pSpsStd))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pSpsStd inconsistent between guest and host\n");
+        }
+        vkStream->read((StdVideoH264SequenceParameterSet*)forUnmarshaling->pSpsStd, forUnmarshaling->spsStdCount * sizeof(const StdVideoH264SequenceParameterSet));
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->ppsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const StdVideoH264PictureParameterSet* check_pPpsStd;
+    check_pPpsStd = (const StdVideoH264PictureParameterSet*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pPpsStd)
+    {
+        if (!(check_pPpsStd))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pPpsStd inconsistent between guest and host\n");
+        }
+        vkStream->read((StdVideoH264PictureParameterSet*)forUnmarshaling->pPpsStd, forUnmarshaling->ppsStdCount * sizeof(const StdVideoH264PictureParameterSet));
+    }
+}
+
+void marshal_VkVideoDecodeH264SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionParametersCreateInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->maxSpsStdCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPpsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pParametersAddInfo;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pParametersAddInfo)
+    {
+        marshal_VkVideoDecodeH264SessionParametersAddInfoEXT(vkStream, rootType, (const VkVideoDecodeH264SessionParametersAddInfoEXT*)(forMarshaling->pParametersAddInfo));
+    }
+}
+
+void unmarshal_VkVideoDecodeH264SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH264SessionParametersCreateInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxSpsStdCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPpsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const VkVideoDecodeH264SessionParametersAddInfoEXT* check_pParametersAddInfo;
+    check_pParametersAddInfo = (const VkVideoDecodeH264SessionParametersAddInfoEXT*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pParametersAddInfo)
+    {
+        if (!(check_pParametersAddInfo))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pParametersAddInfo inconsistent between guest and host\n");
+        }
+        unmarshal_VkVideoDecodeH264SessionParametersAddInfoEXT(vkStream, rootType, (VkVideoDecodeH264SessionParametersAddInfoEXT*)(forUnmarshaling->pParametersAddInfo));
+    }
+}
+
+void marshal_VkVideoDecodeH264PictureInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264PictureInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((const StdVideoDecodeH264PictureInfo*)forMarshaling->pStdPictureInfo, sizeof(const StdVideoDecodeH264PictureInfo));
+    vkStream->write((uint32_t*)&forMarshaling->slicesCount, sizeof(uint32_t));
+    vkStream->write((const uint32_t*)forMarshaling->pSlicesDataOffsets, forMarshaling->slicesCount * sizeof(const uint32_t));
+}
+
+void unmarshal_VkVideoDecodeH264PictureInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH264PictureInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((StdVideoDecodeH264PictureInfo*)forUnmarshaling->pStdPictureInfo, sizeof(const StdVideoDecodeH264PictureInfo));
+    vkStream->read((uint32_t*)&forUnmarshaling->slicesCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)forUnmarshaling->pSlicesDataOffsets, forUnmarshaling->slicesCount * sizeof(const uint32_t));
+}
+
+void marshal_VkVideoDecodeH264MvcEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264MvcEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((const StdVideoDecodeH264Mvc*)forMarshaling->pStdMvc, sizeof(const StdVideoDecodeH264Mvc));
+}
+
+void unmarshal_VkVideoDecodeH264MvcEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH264MvcEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((StdVideoDecodeH264Mvc*)forUnmarshaling->pStdMvc, sizeof(const StdVideoDecodeH264Mvc));
+}
+
+void marshal_VkVideoDecodeH264DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264DpbSlotInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((const StdVideoDecodeH264ReferenceInfo*)forMarshaling->pStdReferenceInfo, sizeof(const StdVideoDecodeH264ReferenceInfo));
+}
+
+void unmarshal_VkVideoDecodeH264DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH264DpbSlotInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((StdVideoDecodeH264ReferenceInfo*)forUnmarshaling->pStdReferenceInfo, sizeof(const StdVideoDecodeH264ReferenceInfo));
+}
+
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
 void marshal_VkTextureLODGatherFormatPropertiesAMD(
     VulkanStreamGuest* vkStream,
@@ -15857,6 +19410,50 @@
     vkStream->read((uint64_t*)&forUnmarshaling->externalFormat, sizeof(uint64_t));
 }
 
+void marshal_VkAndroidHardwareBufferFormatProperties2ANDROID(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAndroidHardwareBufferFormatProperties2ANDROID* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
+    vkStream->write((uint64_t*)&forMarshaling->externalFormat, sizeof(uint64_t));
+    vkStream->write((VkFormatFeatureFlags2KHR*)&forMarshaling->formatFeatures, sizeof(VkFormatFeatureFlags2KHR));
+    marshal_VkComponentMapping(vkStream, rootType, (VkComponentMapping*)(&forMarshaling->samplerYcbcrConversionComponents));
+    vkStream->write((VkSamplerYcbcrModelConversion*)&forMarshaling->suggestedYcbcrModel, sizeof(VkSamplerYcbcrModelConversion));
+    vkStream->write((VkSamplerYcbcrRange*)&forMarshaling->suggestedYcbcrRange, sizeof(VkSamplerYcbcrRange));
+    vkStream->write((VkChromaLocation*)&forMarshaling->suggestedXChromaOffset, sizeof(VkChromaLocation));
+    vkStream->write((VkChromaLocation*)&forMarshaling->suggestedYChromaOffset, sizeof(VkChromaLocation));
+}
+
+void unmarshal_VkAndroidHardwareBufferFormatProperties2ANDROID(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkAndroidHardwareBufferFormatProperties2ANDROID* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
+    vkStream->read((uint64_t*)&forUnmarshaling->externalFormat, sizeof(uint64_t));
+    vkStream->read((VkFormatFeatureFlags2KHR*)&forUnmarshaling->formatFeatures, sizeof(VkFormatFeatureFlags2KHR));
+    unmarshal_VkComponentMapping(vkStream, rootType, (VkComponentMapping*)(&forUnmarshaling->samplerYcbcrConversionComponents));
+    vkStream->read((VkSamplerYcbcrModelConversion*)&forUnmarshaling->suggestedYcbcrModel, sizeof(VkSamplerYcbcrModelConversion));
+    vkStream->read((VkSamplerYcbcrRange*)&forUnmarshaling->suggestedYcbcrRange, sizeof(VkSamplerYcbcrRange));
+    vkStream->read((VkChromaLocation*)&forUnmarshaling->suggestedXChromaOffset, sizeof(VkChromaLocation));
+    vkStream->read((VkChromaLocation*)&forUnmarshaling->suggestedYChromaOffset, sizeof(VkChromaLocation));
+}
+
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
 #endif
@@ -16781,6 +20378,88 @@
     vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
 }
 
+void marshal_VkDrmFormatModifierProperties2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDrmFormatModifierProperties2EXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
+    vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
+    vkStream->write((VkFormatFeatureFlags2KHR*)&forMarshaling->drmFormatModifierTilingFeatures, sizeof(VkFormatFeatureFlags2KHR));
+}
+
+void unmarshal_VkDrmFormatModifierProperties2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkDrmFormatModifierProperties2EXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
+    vkStream->read((VkFormatFeatureFlags2KHR*)&forUnmarshaling->drmFormatModifierTilingFeatures, sizeof(VkFormatFeatureFlags2KHR));
+}
+
+void marshal_VkDrmFormatModifierPropertiesList2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDrmFormatModifierPropertiesList2EXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, 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)
+        {
+            for (uint32_t i = 0; i < (uint32_t)forMarshaling->drmFormatModifierCount; ++i)
+            {
+                marshal_VkDrmFormatModifierProperties2EXT(vkStream, rootType, (VkDrmFormatModifierProperties2EXT*)(forMarshaling->pDrmFormatModifierProperties + i));
+            }
+        }
+    }
+}
+
+void unmarshal_VkDrmFormatModifierPropertiesList2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkDrmFormatModifierPropertiesList2EXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    VkDrmFormatModifierProperties2EXT* check_pDrmFormatModifierProperties;
+    check_pDrmFormatModifierProperties = (VkDrmFormatModifierProperties2EXT*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pDrmFormatModifierProperties)
+    {
+        if (!(check_pDrmFormatModifierProperties))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pDrmFormatModifierProperties inconsistent between guest and host\n");
+        }
+        if (forUnmarshaling)
+        {
+            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->drmFormatModifierCount; ++i)
+            {
+                unmarshal_VkDrmFormatModifierProperties2EXT(vkStream, rootType, (VkDrmFormatModifierProperties2EXT*)(forUnmarshaling->pDrmFormatModifierProperties + i));
+            }
+        }
+    }
+}
+
 #endif
 #ifdef VK_EXT_validation_cache
 void marshal_VkValidationCacheCreateInfoEXT(
@@ -18137,6 +21816,284 @@
 }
 
 #endif
+#ifdef VK_EXT_video_decode_h265
+void marshal_VkVideoDecodeH265ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265ProfileEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((StdVideoH265ProfileIdc*)&forMarshaling->stdProfileIdc, sizeof(StdVideoH265ProfileIdc));
+}
+
+void unmarshal_VkVideoDecodeH265ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH265ProfileEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((StdVideoH265ProfileIdc*)&forUnmarshaling->stdProfileIdc, sizeof(StdVideoH265ProfileIdc));
+}
+
+void marshal_VkVideoDecodeH265CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265CapabilitiesEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->maxLevel, sizeof(uint32_t));
+    marshal_VkExtensionProperties(vkStream, rootType, (VkExtensionProperties*)(&forMarshaling->stdExtensionVersion));
+}
+
+void unmarshal_VkVideoDecodeH265CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH265CapabilitiesEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxLevel, sizeof(uint32_t));
+    unmarshal_VkExtensionProperties(vkStream, rootType, (VkExtensionProperties*)(&forUnmarshaling->stdExtensionVersion));
+}
+
+void marshal_VkVideoDecodeH265SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionCreateInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkVideoDecodeH265CreateFlagsEXT*)&forMarshaling->flags, sizeof(VkVideoDecodeH265CreateFlagsEXT));
+    marshal_VkExtensionProperties(vkStream, rootType, (const VkExtensionProperties*)(forMarshaling->pStdExtensionVersion));
+}
+
+void unmarshal_VkVideoDecodeH265SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH265SessionCreateInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkVideoDecodeH265CreateFlagsEXT*)&forUnmarshaling->flags, sizeof(VkVideoDecodeH265CreateFlagsEXT));
+    unmarshal_VkExtensionProperties(vkStream, rootType, (VkExtensionProperties*)(forUnmarshaling->pStdExtensionVersion));
+}
+
+void marshal_VkVideoDecodeH265SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionParametersAddInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->spsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pSpsStd;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pSpsStd)
+    {
+        vkStream->write((const StdVideoH265SequenceParameterSet*)forMarshaling->pSpsStd, forMarshaling->spsStdCount * sizeof(const StdVideoH265SequenceParameterSet));
+    }
+    vkStream->write((uint32_t*)&forMarshaling->ppsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pPpsStd;
+    vkStream->putBe64(cgen_var_1);
+    if (forMarshaling->pPpsStd)
+    {
+        vkStream->write((const StdVideoH265PictureParameterSet*)forMarshaling->pPpsStd, forMarshaling->ppsStdCount * sizeof(const StdVideoH265PictureParameterSet));
+    }
+}
+
+void unmarshal_VkVideoDecodeH265SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH265SessionParametersAddInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->spsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const StdVideoH265SequenceParameterSet* check_pSpsStd;
+    check_pSpsStd = (const StdVideoH265SequenceParameterSet*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pSpsStd)
+    {
+        if (!(check_pSpsStd))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pSpsStd inconsistent between guest and host\n");
+        }
+        vkStream->read((StdVideoH265SequenceParameterSet*)forUnmarshaling->pSpsStd, forUnmarshaling->spsStdCount * sizeof(const StdVideoH265SequenceParameterSet));
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->ppsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const StdVideoH265PictureParameterSet* check_pPpsStd;
+    check_pPpsStd = (const StdVideoH265PictureParameterSet*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pPpsStd)
+    {
+        if (!(check_pPpsStd))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pPpsStd inconsistent between guest and host\n");
+        }
+        vkStream->read((StdVideoH265PictureParameterSet*)forUnmarshaling->pPpsStd, forUnmarshaling->ppsStdCount * sizeof(const StdVideoH265PictureParameterSet));
+    }
+}
+
+void marshal_VkVideoDecodeH265SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionParametersCreateInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->maxSpsStdCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPpsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pParametersAddInfo;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pParametersAddInfo)
+    {
+        marshal_VkVideoDecodeH265SessionParametersAddInfoEXT(vkStream, rootType, (const VkVideoDecodeH265SessionParametersAddInfoEXT*)(forMarshaling->pParametersAddInfo));
+    }
+}
+
+void unmarshal_VkVideoDecodeH265SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH265SessionParametersCreateInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxSpsStdCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPpsStdCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const VkVideoDecodeH265SessionParametersAddInfoEXT* check_pParametersAddInfo;
+    check_pParametersAddInfo = (const VkVideoDecodeH265SessionParametersAddInfoEXT*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pParametersAddInfo)
+    {
+        if (!(check_pParametersAddInfo))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pParametersAddInfo inconsistent between guest and host\n");
+        }
+        unmarshal_VkVideoDecodeH265SessionParametersAddInfoEXT(vkStream, rootType, (VkVideoDecodeH265SessionParametersAddInfoEXT*)(forUnmarshaling->pParametersAddInfo));
+    }
+}
+
+void marshal_VkVideoDecodeH265PictureInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265PictureInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((StdVideoDecodeH265PictureInfo*)forMarshaling->pStdPictureInfo, sizeof(StdVideoDecodeH265PictureInfo));
+    vkStream->write((uint32_t*)&forMarshaling->slicesCount, sizeof(uint32_t));
+    vkStream->write((const uint32_t*)forMarshaling->pSlicesDataOffsets, forMarshaling->slicesCount * sizeof(const uint32_t));
+}
+
+void unmarshal_VkVideoDecodeH265PictureInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH265PictureInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((StdVideoDecodeH265PictureInfo*)forUnmarshaling->pStdPictureInfo, sizeof(StdVideoDecodeH265PictureInfo));
+    vkStream->read((uint32_t*)&forUnmarshaling->slicesCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)forUnmarshaling->pSlicesDataOffsets, forUnmarshaling->slicesCount * sizeof(const uint32_t));
+}
+
+void marshal_VkVideoDecodeH265DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265DpbSlotInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((const StdVideoDecodeH265ReferenceInfo*)forMarshaling->pStdReferenceInfo, sizeof(const StdVideoDecodeH265ReferenceInfo));
+}
+
+void unmarshal_VkVideoDecodeH265DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH265DpbSlotInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((StdVideoDecodeH265ReferenceInfo*)forUnmarshaling->pStdReferenceInfo, sizeof(const StdVideoDecodeH265ReferenceInfo));
+}
+
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
 void marshal_VkDeviceMemoryOverallocationCreateInfoAMD(
     VulkanStreamGuest* vkStream,
@@ -20068,6 +24025,102 @@
 }
 
 #endif
+#ifdef VK_EXT_provoking_vertex
+void marshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceProvokingVertexFeaturesEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->provokingVertexLast, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->transformFeedbackPreservesProvokingVertex, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceProvokingVertexFeaturesEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->provokingVertexLast, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackPreservesProvokingVertex, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceProvokingVertexPropertiesEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->provokingVertexModePerPipeline, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->transformFeedbackPreservesTriangleFanProvokingVertex, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceProvokingVertexPropertiesEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->provokingVertexModePerPipeline, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackPreservesTriangleFanProvokingVertex, sizeof(VkBool32));
+}
+
+void marshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkProvokingVertexModeEXT*)&forMarshaling->provokingVertexMode, sizeof(VkProvokingVertexModeEXT));
+}
+
+void unmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkProvokingVertexModeEXT*)&forUnmarshaling->provokingVertexMode, sizeof(VkProvokingVertexModeEXT));
+}
+
+#endif
 #ifdef VK_EXT_full_screen_exclusive
 void marshal_VkSurfaceFullScreenExclusiveInfoEXT(
     VulkanStreamGuest* vkStream,
@@ -20420,6 +24473,60 @@
 }
 
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+void marshal_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->shaderBufferFloat16Atomics, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderBufferFloat16AtomicAdd, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderBufferFloat16AtomicMinMax, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderBufferFloat32AtomicMinMax, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderBufferFloat64AtomicMinMax, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSharedFloat16Atomics, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSharedFloat16AtomicAdd, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSharedFloat16AtomicMinMax, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSharedFloat32AtomicMinMax, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSharedFloat64AtomicMinMax, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderImageFloat32AtomicMinMax, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->sparseImageFloat32AtomicMinMax, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferFloat16Atomics, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferFloat16AtomicAdd, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferFloat16AtomicMinMax, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferFloat32AtomicMinMax, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferFloat64AtomicMinMax, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedFloat16Atomics, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedFloat16AtomicAdd, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedFloat16AtomicMinMax, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedFloat32AtomicMinMax, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedFloat64AtomicMinMax, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderImageFloat32AtomicMinMax, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->sparseImageFloat32AtomicMinMax, sizeof(VkBool32));
+}
+
+#endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 void marshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
     VulkanStreamGuest* vkStream,
@@ -21014,6 +25121,88 @@
 }
 
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+void marshal_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceInheritedViewportScissorFeaturesNV* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->inheritedViewportScissor2D, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceInheritedViewportScissorFeaturesNV* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->inheritedViewportScissor2D, sizeof(VkBool32));
+}
+
+void marshal_VkCommandBufferInheritanceViewportScissorInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCommandBufferInheritanceViewportScissorInfoNV* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->viewportScissor2D, sizeof(VkBool32));
+    vkStream->write((uint32_t*)&forMarshaling->viewportDepthCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pViewportDepths;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pViewportDepths)
+    {
+        marshal_VkViewport(vkStream, rootType, (const VkViewport*)(forMarshaling->pViewportDepths));
+    }
+}
+
+void unmarshal_VkCommandBufferInheritanceViewportScissorInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkCommandBufferInheritanceViewportScissorInfoNV* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->viewportScissor2D, sizeof(VkBool32));
+    vkStream->read((uint32_t*)&forUnmarshaling->viewportDepthCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const VkViewport* check_pViewportDepths;
+    check_pViewportDepths = (const VkViewport*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pViewportDepths)
+    {
+        if (!(check_pViewportDepths))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pViewportDepths inconsistent between guest and host\n");
+        }
+        unmarshal_VkViewport(vkStream, rootType, (VkViewport*)(forUnmarshaling->pViewportDepths));
+    }
+}
+
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
 void marshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
     VulkanStreamGuest* vkStream,
@@ -21255,6 +25444,8 @@
 }
 
 #endif
+#ifdef VK_EXT_acquire_drm_display
+#endif
 #ifdef VK_EXT_robustness2
 void marshal_VkPhysicalDeviceRobustness2FeaturesEXT(
     VulkanStreamGuest* vkStream,
@@ -21709,6 +25900,336 @@
 }
 
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+void marshal_VkDeviceOrHostAddressConstKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDeviceOrHostAddressConstKHR* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
+}
+
+void unmarshal_VkDeviceOrHostAddressConstKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkDeviceOrHostAddressConstKHR* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkDeviceAddress*)&forUnmarshaling->deviceAddress, sizeof(VkDeviceAddress));
+}
+
+void marshal_VkAccelerationStructureGeometryMotionTrianglesDataNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureGeometryMotionTrianglesDataNV* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    marshal_VkDeviceOrHostAddressConstKHR(vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->vertexData));
+}
+
+void unmarshal_VkAccelerationStructureGeometryMotionTrianglesDataNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkAccelerationStructureGeometryMotionTrianglesDataNV* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    unmarshal_VkDeviceOrHostAddressConstKHR(vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->vertexData));
+}
+
+void marshal_VkAccelerationStructureMotionInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInfoNV* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->maxInstances, sizeof(uint32_t));
+    vkStream->write((VkAccelerationStructureMotionInfoFlagsNV*)&forMarshaling->flags, sizeof(VkAccelerationStructureMotionInfoFlagsNV));
+}
+
+void unmarshal_VkAccelerationStructureMotionInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkAccelerationStructureMotionInfoNV* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxInstances, sizeof(uint32_t));
+    vkStream->read((VkAccelerationStructureMotionInfoFlagsNV*)&forUnmarshaling->flags, sizeof(VkAccelerationStructureMotionInfoFlagsNV));
+}
+
+void marshal_VkAccelerationStructureMatrixMotionInstanceNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureMatrixMotionInstanceNV* forMarshaling)
+{
+    (void)rootType;
+    
+    typedef struct VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields {
+        VkTransformMatrixKHR          transformT0;
+        VkTransformMatrixKHR          transformT1;
+        uint32_t                      dwords[2];
+        uint64_t                      accelerationStructureReference;
+    } VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields;
+    
+    const VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields* forMarshaling_new = (const VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields*)(forMarshaling);
+    marshal_VkTransformMatrixKHR(vkStream, rootType, (VkTransformMatrixKHR*)(&forMarshaling_new->transformT0));
+    marshal_VkTransformMatrixKHR(vkStream, rootType, (VkTransformMatrixKHR*)(&forMarshaling_new->transformT1));
+    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_VkAccelerationStructureMatrixMotionInstanceNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkAccelerationStructureMatrixMotionInstanceNV* forUnmarshaling)
+{
+    (void)rootType;
+    
+    typedef struct VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields {
+        VkTransformMatrixKHR          transformT0;
+        VkTransformMatrixKHR          transformT1;
+        uint32_t                      dwords[2];
+        uint64_t                      accelerationStructureReference;
+    } VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields;
+    
+    VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields* forUnmarshaling_new = (VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields*)(forUnmarshaling);
+    unmarshal_VkTransformMatrixKHR(vkStream, rootType, (VkTransformMatrixKHR*)(&forUnmarshaling_new->transformT0));
+    unmarshal_VkTransformMatrixKHR(vkStream, rootType, (VkTransformMatrixKHR*)(&forUnmarshaling_new->transformT1));
+    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));
+    
+}
+
+void marshal_VkSRTDataNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSRTDataNV* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((float*)&forMarshaling->sx, sizeof(float));
+    vkStream->write((float*)&forMarshaling->a, sizeof(float));
+    vkStream->write((float*)&forMarshaling->b, sizeof(float));
+    vkStream->write((float*)&forMarshaling->pvx, sizeof(float));
+    vkStream->write((float*)&forMarshaling->sy, sizeof(float));
+    vkStream->write((float*)&forMarshaling->c, sizeof(float));
+    vkStream->write((float*)&forMarshaling->pvy, sizeof(float));
+    vkStream->write((float*)&forMarshaling->sz, sizeof(float));
+    vkStream->write((float*)&forMarshaling->pvz, sizeof(float));
+    vkStream->write((float*)&forMarshaling->qx, sizeof(float));
+    vkStream->write((float*)&forMarshaling->qy, sizeof(float));
+    vkStream->write((float*)&forMarshaling->qz, sizeof(float));
+    vkStream->write((float*)&forMarshaling->qw, sizeof(float));
+    vkStream->write((float*)&forMarshaling->tx, sizeof(float));
+    vkStream->write((float*)&forMarshaling->ty, sizeof(float));
+    vkStream->write((float*)&forMarshaling->tz, sizeof(float));
+}
+
+void unmarshal_VkSRTDataNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkSRTDataNV* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((float*)&forUnmarshaling->sx, sizeof(float));
+    vkStream->read((float*)&forUnmarshaling->a, sizeof(float));
+    vkStream->read((float*)&forUnmarshaling->b, sizeof(float));
+    vkStream->read((float*)&forUnmarshaling->pvx, sizeof(float));
+    vkStream->read((float*)&forUnmarshaling->sy, sizeof(float));
+    vkStream->read((float*)&forUnmarshaling->c, sizeof(float));
+    vkStream->read((float*)&forUnmarshaling->pvy, sizeof(float));
+    vkStream->read((float*)&forUnmarshaling->sz, sizeof(float));
+    vkStream->read((float*)&forUnmarshaling->pvz, sizeof(float));
+    vkStream->read((float*)&forUnmarshaling->qx, sizeof(float));
+    vkStream->read((float*)&forUnmarshaling->qy, sizeof(float));
+    vkStream->read((float*)&forUnmarshaling->qz, sizeof(float));
+    vkStream->read((float*)&forUnmarshaling->qw, sizeof(float));
+    vkStream->read((float*)&forUnmarshaling->tx, sizeof(float));
+    vkStream->read((float*)&forUnmarshaling->ty, sizeof(float));
+    vkStream->read((float*)&forUnmarshaling->tz, sizeof(float));
+}
+
+void marshal_VkAccelerationStructureSRTMotionInstanceNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureSRTMotionInstanceNV* forMarshaling)
+{
+    (void)rootType;
+    
+    typedef struct VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields {
+        VkSRTDataNV          transformT0;
+        VkSRTDataNV          transformT1;
+        uint32_t             dwords[2];
+        uint64_t             accelerationStructureReference;
+    } VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields;
+    
+    const VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields* forMarshaling_new = (const VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields*)(forMarshaling);
+    marshal_VkSRTDataNV(vkStream, rootType, (VkSRTDataNV*)(&forMarshaling_new->transformT0));
+    marshal_VkSRTDataNV(vkStream, rootType, (VkSRTDataNV*)(&forMarshaling_new->transformT1));
+    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_VkAccelerationStructureSRTMotionInstanceNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkAccelerationStructureSRTMotionInstanceNV* forUnmarshaling)
+{
+    (void)rootType;
+    
+    typedef struct VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields {
+        VkSRTDataNV          transformT0;
+        VkSRTDataNV          transformT1;
+        uint32_t             dwords[2];
+        uint64_t             accelerationStructureReference;
+    } VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields;
+    
+    VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields* forUnmarshaling_new = (VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields*)(forUnmarshaling);
+    unmarshal_VkSRTDataNV(vkStream, rootType, (VkSRTDataNV*)(&forUnmarshaling_new->transformT0));
+    unmarshal_VkSRTDataNV(vkStream, rootType, (VkSRTDataNV*)(&forUnmarshaling_new->transformT1));
+    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));
+    
+}
+
+void marshal_VkAccelerationStructureMotionInstanceDataNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInstanceDataNV* forMarshaling)
+{
+    (void)rootType;
+    marshal_VkAccelerationStructureInstanceKHR(vkStream, rootType, (VkAccelerationStructureInstanceKHR*)(&forMarshaling->staticInstance));
+}
+
+void unmarshal_VkAccelerationStructureMotionInstanceDataNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkAccelerationStructureMotionInstanceDataNV* forUnmarshaling)
+{
+    (void)rootType;
+    unmarshal_VkAccelerationStructureInstanceKHR(vkStream, rootType, (VkAccelerationStructureInstanceKHR*)(&forUnmarshaling->staticInstance));
+}
+
+void marshal_VkAccelerationStructureMotionInstanceNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInstanceNV* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkAccelerationStructureMotionInstanceTypeNV*)&forMarshaling->type, sizeof(VkAccelerationStructureMotionInstanceTypeNV));
+    vkStream->write((VkAccelerationStructureMotionInstanceFlagsNV*)&forMarshaling->flags, sizeof(VkAccelerationStructureMotionInstanceFlagsNV));
+    marshal_VkAccelerationStructureMotionInstanceDataNV(vkStream, rootType, (VkAccelerationStructureMotionInstanceDataNV*)(&forMarshaling->data));
+}
+
+void unmarshal_VkAccelerationStructureMotionInstanceNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkAccelerationStructureMotionInstanceNV* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkAccelerationStructureMotionInstanceTypeNV*)&forUnmarshaling->type, sizeof(VkAccelerationStructureMotionInstanceTypeNV));
+    vkStream->read((VkAccelerationStructureMotionInstanceFlagsNV*)&forUnmarshaling->flags, sizeof(VkAccelerationStructureMotionInstanceFlagsNV));
+    unmarshal_VkAccelerationStructureMotionInstanceDataNV(vkStream, rootType, (VkAccelerationStructureMotionInstanceDataNV*)(&forUnmarshaling->data));
+}
+
+void marshal_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->rayTracingMotionBlur, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->rayTracingMotionBlurPipelineTraceRaysIndirect, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->rayTracingMotionBlur, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->rayTracingMotionBlurPipelineTraceRaysIndirect, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+void marshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->ycbcr2plane444Formats, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->ycbcr2plane444Formats, sizeof(VkBool32));
+}
+
+#endif
 #ifdef VK_EXT_fragment_density_map2
 void marshal_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
     VulkanStreamGuest* vkStream,
@@ -21875,6 +26396,40 @@
 }
 
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+void marshal_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->formatRgba10x6WithoutYCbCrSampler, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->formatRgba10x6WithoutYCbCrSampler, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_NV_acquire_winrt_display
+#endif
 #ifdef VK_EXT_directfb_surface
 void marshal_VkDirectFBSurfaceCreateInfoEXT(
     VulkanStreamGuest* vkStream,
@@ -21943,6 +26498,1197 @@
 }
 
 #endif
+#ifdef VK_VALVE_mutable_descriptor_type
+void marshal_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->mutableDescriptorType, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->mutableDescriptorType, sizeof(VkBool32));
+}
+
+void marshal_VkMutableDescriptorTypeListVALVE(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMutableDescriptorTypeListVALVE* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((uint32_t*)&forMarshaling->descriptorTypeCount, sizeof(uint32_t));
+    vkStream->write((const VkDescriptorType*)forMarshaling->pDescriptorTypes, forMarshaling->descriptorTypeCount * sizeof(const VkDescriptorType));
+}
+
+void unmarshal_VkMutableDescriptorTypeListVALVE(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkMutableDescriptorTypeListVALVE* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((uint32_t*)&forUnmarshaling->descriptorTypeCount, sizeof(uint32_t));
+    vkStream->read((VkDescriptorType*)forUnmarshaling->pDescriptorTypes, forUnmarshaling->descriptorTypeCount * sizeof(const VkDescriptorType));
+}
+
+void marshal_VkMutableDescriptorTypeCreateInfoVALVE(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMutableDescriptorTypeCreateInfoVALVE* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->mutableDescriptorTypeListCount, sizeof(uint32_t));
+    if (forMarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->mutableDescriptorTypeListCount; ++i)
+        {
+            marshal_VkMutableDescriptorTypeListVALVE(vkStream, rootType, (const VkMutableDescriptorTypeListVALVE*)(forMarshaling->pMutableDescriptorTypeLists + i));
+        }
+    }
+}
+
+void unmarshal_VkMutableDescriptorTypeCreateInfoVALVE(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkMutableDescriptorTypeCreateInfoVALVE* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->mutableDescriptorTypeListCount, sizeof(uint32_t));
+    if (forUnmarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->mutableDescriptorTypeListCount; ++i)
+        {
+            unmarshal_VkMutableDescriptorTypeListVALVE(vkStream, rootType, (VkMutableDescriptorTypeListVALVE*)(forUnmarshaling->pMutableDescriptorTypeLists + i));
+        }
+    }
+}
+
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+void marshal_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->vertexInputDynamicState, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->vertexInputDynamicState, sizeof(VkBool32));
+}
+
+void marshal_VkVertexInputBindingDescription2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVertexInputBindingDescription2EXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->stride, sizeof(uint32_t));
+    vkStream->write((VkVertexInputRate*)&forMarshaling->inputRate, sizeof(VkVertexInputRate));
+    vkStream->write((uint32_t*)&forMarshaling->divisor, sizeof(uint32_t));
+}
+
+void unmarshal_VkVertexInputBindingDescription2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVertexInputBindingDescription2EXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->stride, sizeof(uint32_t));
+    vkStream->read((VkVertexInputRate*)&forUnmarshaling->inputRate, sizeof(VkVertexInputRate));
+    vkStream->read((uint32_t*)&forUnmarshaling->divisor, sizeof(uint32_t));
+}
+
+void marshal_VkVertexInputAttributeDescription2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVertexInputAttributeDescription2EXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->location, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
+    vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
+    vkStream->write((uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
+}
+
+void unmarshal_VkVertexInputAttributeDescription2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVertexInputAttributeDescription2EXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->location, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
+    vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
+    vkStream->read((uint32_t*)&forUnmarshaling->offset, sizeof(uint32_t));
+}
+
+#endif
+#ifdef VK_EXT_physical_device_drm
+void marshal_VkPhysicalDeviceDrmPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceDrmPropertiesEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->hasPrimary, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->hasRender, sizeof(VkBool32));
+    vkStream->write((int64_t*)&forMarshaling->primaryMajor, sizeof(int64_t));
+    vkStream->write((int64_t*)&forMarshaling->primaryMinor, sizeof(int64_t));
+    vkStream->write((int64_t*)&forMarshaling->renderMajor, sizeof(int64_t));
+    vkStream->write((int64_t*)&forMarshaling->renderMinor, sizeof(int64_t));
+}
+
+void unmarshal_VkPhysicalDeviceDrmPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceDrmPropertiesEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->hasPrimary, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->hasRender, sizeof(VkBool32));
+    vkStream->read((int64_t*)&forUnmarshaling->primaryMajor, sizeof(int64_t));
+    vkStream->read((int64_t*)&forUnmarshaling->primaryMinor, sizeof(int64_t));
+    vkStream->read((int64_t*)&forUnmarshaling->renderMajor, sizeof(int64_t));
+    vkStream->read((int64_t*)&forUnmarshaling->renderMinor, sizeof(int64_t));
+}
+
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+void marshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->primitiveTopologyListRestart, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->primitiveTopologyPatchListRestart, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->primitiveTopologyListRestart, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->primitiveTopologyPatchListRestart, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_FUCHSIA_external_memory
+void marshal_VkImportMemoryZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImportMemoryZirconHandleInfoFUCHSIA* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
+    vkStream->write((zx_handle_t*)&forMarshaling->handle, sizeof(zx_handle_t));
+}
+
+void unmarshal_VkImportMemoryZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkImportMemoryZirconHandleInfoFUCHSIA* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
+    vkStream->read((zx_handle_t*)&forUnmarshaling->handle, sizeof(zx_handle_t));
+}
+
+void marshal_VkMemoryZirconHandlePropertiesFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMemoryZirconHandlePropertiesFUCHSIA* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
+}
+
+void unmarshal_VkMemoryZirconHandlePropertiesFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkMemoryZirconHandlePropertiesFUCHSIA* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
+}
+
+void marshal_VkMemoryGetZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMemoryGetZirconHandleInfoFUCHSIA* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, 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((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
+}
+
+void unmarshal_VkMemoryGetZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkMemoryGetZirconHandleInfoFUCHSIA* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (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((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
+}
+
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+void marshal_VkImportSemaphoreZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImportSemaphoreZirconHandleInfoFUCHSIA* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, 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((VkSemaphoreImportFlags*)&forMarshaling->flags, sizeof(VkSemaphoreImportFlags));
+    vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
+    vkStream->write((zx_handle_t*)&forMarshaling->zirconHandle, sizeof(zx_handle_t));
+}
+
+void unmarshal_VkImportSemaphoreZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkImportSemaphoreZirconHandleInfoFUCHSIA* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (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((VkSemaphoreImportFlags*)&forUnmarshaling->flags, sizeof(VkSemaphoreImportFlags));
+    vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
+    vkStream->read((zx_handle_t*)&forUnmarshaling->zirconHandle, sizeof(zx_handle_t));
+}
+
+void marshal_VkSemaphoreGetZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSemaphoreGetZirconHandleInfoFUCHSIA* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, 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((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
+}
+
+void unmarshal_VkSemaphoreGetZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkSemaphoreGetZirconHandleInfoFUCHSIA* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (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((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
+}
+
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+void marshal_VkBufferCollectionCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferCollectionCreateInfoFUCHSIA* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((zx_handle_t*)&forMarshaling->collectionToken, sizeof(zx_handle_t));
+}
+
+void unmarshal_VkBufferCollectionCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkBufferCollectionCreateInfoFUCHSIA* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((zx_handle_t*)&forUnmarshaling->collectionToken, sizeof(zx_handle_t));
+}
+
+void marshal_VkImportMemoryBufferCollectionFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImportMemoryBufferCollectionFUCHSIA* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->collection;
+    vkStream->putBe64(cgen_var_0);
+    vkStream->write((uint32_t*)&forMarshaling->index, sizeof(uint32_t));
+}
+
+void unmarshal_VkImportMemoryBufferCollectionFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkImportMemoryBufferCollectionFUCHSIA* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    forUnmarshaling->collection = (VkBufferCollectionFUCHSIA)vkStream->getBe64();
+    vkStream->read((uint32_t*)&forUnmarshaling->index, sizeof(uint32_t));
+}
+
+void marshal_VkBufferCollectionImageCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferCollectionImageCreateInfoFUCHSIA* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->collection;
+    vkStream->putBe64(cgen_var_0);
+    vkStream->write((uint32_t*)&forMarshaling->index, sizeof(uint32_t));
+}
+
+void unmarshal_VkBufferCollectionImageCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkBufferCollectionImageCreateInfoFUCHSIA* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    forUnmarshaling->collection = (VkBufferCollectionFUCHSIA)vkStream->getBe64();
+    vkStream->read((uint32_t*)&forUnmarshaling->index, sizeof(uint32_t));
+}
+
+void marshal_VkBufferCollectionConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferCollectionConstraintsInfoFUCHSIA* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->minBufferCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxBufferCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->minBufferCountForCamping, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->minBufferCountForDedicatedSlack, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->minBufferCountForSharedSlack, sizeof(uint32_t));
+}
+
+void unmarshal_VkBufferCollectionConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkBufferCollectionConstraintsInfoFUCHSIA* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->minBufferCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxBufferCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->minBufferCountForCamping, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->minBufferCountForDedicatedSlack, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->minBufferCountForSharedSlack, sizeof(uint32_t));
+}
+
+void marshal_VkBufferConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferConstraintsInfoFUCHSIA* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    marshal_VkBufferCreateInfo(vkStream, rootType, (VkBufferCreateInfo*)(&forMarshaling->createInfo));
+    vkStream->write((VkFormatFeatureFlags*)&forMarshaling->requiredFormatFeatures, sizeof(VkFormatFeatureFlags));
+    marshal_VkBufferCollectionConstraintsInfoFUCHSIA(vkStream, rootType, (VkBufferCollectionConstraintsInfoFUCHSIA*)(&forMarshaling->bufferCollectionConstraints));
+}
+
+void unmarshal_VkBufferConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkBufferConstraintsInfoFUCHSIA* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    unmarshal_VkBufferCreateInfo(vkStream, rootType, (VkBufferCreateInfo*)(&forUnmarshaling->createInfo));
+    vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->requiredFormatFeatures, sizeof(VkFormatFeatureFlags));
+    unmarshal_VkBufferCollectionConstraintsInfoFUCHSIA(vkStream, rootType, (VkBufferCollectionConstraintsInfoFUCHSIA*)(&forUnmarshaling->bufferCollectionConstraints));
+}
+
+void marshal_VkBufferCollectionBufferCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferCollectionBufferCreateInfoFUCHSIA* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->collection;
+    vkStream->putBe64(cgen_var_0);
+    vkStream->write((uint32_t*)&forMarshaling->index, sizeof(uint32_t));
+}
+
+void unmarshal_VkBufferCollectionBufferCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkBufferCollectionBufferCreateInfoFUCHSIA* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    forUnmarshaling->collection = (VkBufferCollectionFUCHSIA)vkStream->getBe64();
+    vkStream->read((uint32_t*)&forUnmarshaling->index, sizeof(uint32_t));
+}
+
+void marshal_VkSysmemColorSpaceFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSysmemColorSpaceFUCHSIA* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->colorSpace, sizeof(uint32_t));
+}
+
+void unmarshal_VkSysmemColorSpaceFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkSysmemColorSpaceFUCHSIA* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->colorSpace, sizeof(uint32_t));
+}
+
+void marshal_VkBufferCollectionPropertiesFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferCollectionPropertiesFUCHSIA* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->bufferCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->createInfoIndex, sizeof(uint32_t));
+    vkStream->write((uint64_t*)&forMarshaling->sysmemPixelFormat, sizeof(uint64_t));
+    vkStream->write((VkFormatFeatureFlags*)&forMarshaling->formatFeatures, sizeof(VkFormatFeatureFlags));
+    marshal_VkSysmemColorSpaceFUCHSIA(vkStream, rootType, (VkSysmemColorSpaceFUCHSIA*)(&forMarshaling->sysmemColorSpaceIndex));
+    marshal_VkComponentMapping(vkStream, rootType, (VkComponentMapping*)(&forMarshaling->samplerYcbcrConversionComponents));
+    vkStream->write((VkSamplerYcbcrModelConversion*)&forMarshaling->suggestedYcbcrModel, sizeof(VkSamplerYcbcrModelConversion));
+    vkStream->write((VkSamplerYcbcrRange*)&forMarshaling->suggestedYcbcrRange, sizeof(VkSamplerYcbcrRange));
+    vkStream->write((VkChromaLocation*)&forMarshaling->suggestedXChromaOffset, sizeof(VkChromaLocation));
+    vkStream->write((VkChromaLocation*)&forMarshaling->suggestedYChromaOffset, sizeof(VkChromaLocation));
+}
+
+void unmarshal_VkBufferCollectionPropertiesFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkBufferCollectionPropertiesFUCHSIA* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->bufferCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->createInfoIndex, sizeof(uint32_t));
+    vkStream->read((uint64_t*)&forUnmarshaling->sysmemPixelFormat, sizeof(uint64_t));
+    vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->formatFeatures, sizeof(VkFormatFeatureFlags));
+    unmarshal_VkSysmemColorSpaceFUCHSIA(vkStream, rootType, (VkSysmemColorSpaceFUCHSIA*)(&forUnmarshaling->sysmemColorSpaceIndex));
+    unmarshal_VkComponentMapping(vkStream, rootType, (VkComponentMapping*)(&forUnmarshaling->samplerYcbcrConversionComponents));
+    vkStream->read((VkSamplerYcbcrModelConversion*)&forUnmarshaling->suggestedYcbcrModel, sizeof(VkSamplerYcbcrModelConversion));
+    vkStream->read((VkSamplerYcbcrRange*)&forUnmarshaling->suggestedYcbcrRange, sizeof(VkSamplerYcbcrRange));
+    vkStream->read((VkChromaLocation*)&forUnmarshaling->suggestedXChromaOffset, sizeof(VkChromaLocation));
+    vkStream->read((VkChromaLocation*)&forUnmarshaling->suggestedYChromaOffset, sizeof(VkChromaLocation));
+}
+
+void marshal_VkImageFormatConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImageFormatConstraintsInfoFUCHSIA* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    marshal_VkImageCreateInfo(vkStream, rootType, (VkImageCreateInfo*)(&forMarshaling->imageCreateInfo));
+    vkStream->write((VkFormatFeatureFlags*)&forMarshaling->requiredFormatFeatures, sizeof(VkFormatFeatureFlags));
+    vkStream->write((VkImageFormatConstraintsFlagsFUCHSIA*)&forMarshaling->flags, sizeof(VkImageFormatConstraintsFlagsFUCHSIA));
+    vkStream->write((uint64_t*)&forMarshaling->sysmemPixelFormat, sizeof(uint64_t));
+    vkStream->write((uint32_t*)&forMarshaling->colorSpaceCount, sizeof(uint32_t));
+    marshal_VkSysmemColorSpaceFUCHSIA(vkStream, rootType, (const VkSysmemColorSpaceFUCHSIA*)(forMarshaling->pColorSpaces));
+}
+
+void unmarshal_VkImageFormatConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkImageFormatConstraintsInfoFUCHSIA* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    unmarshal_VkImageCreateInfo(vkStream, rootType, (VkImageCreateInfo*)(&forUnmarshaling->imageCreateInfo));
+    vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->requiredFormatFeatures, sizeof(VkFormatFeatureFlags));
+    vkStream->read((VkImageFormatConstraintsFlagsFUCHSIA*)&forUnmarshaling->flags, sizeof(VkImageFormatConstraintsFlagsFUCHSIA));
+    vkStream->read((uint64_t*)&forUnmarshaling->sysmemPixelFormat, sizeof(uint64_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->colorSpaceCount, sizeof(uint32_t));
+    unmarshal_VkSysmemColorSpaceFUCHSIA(vkStream, rootType, (VkSysmemColorSpaceFUCHSIA*)(forUnmarshaling->pColorSpaces));
+}
+
+void marshal_VkImageConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImageConstraintsInfoFUCHSIA* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->formatConstraintsCount, sizeof(uint32_t));
+    if (forMarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->formatConstraintsCount; ++i)
+        {
+            marshal_VkImageFormatConstraintsInfoFUCHSIA(vkStream, rootType, (const VkImageFormatConstraintsInfoFUCHSIA*)(forMarshaling->pFormatConstraints + i));
+        }
+    }
+    marshal_VkBufferCollectionConstraintsInfoFUCHSIA(vkStream, rootType, (VkBufferCollectionConstraintsInfoFUCHSIA*)(&forMarshaling->bufferCollectionConstraints));
+    vkStream->write((VkImageConstraintsInfoFlagsFUCHSIA*)&forMarshaling->flags, sizeof(VkImageConstraintsInfoFlagsFUCHSIA));
+}
+
+void unmarshal_VkImageConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkImageConstraintsInfoFUCHSIA* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->formatConstraintsCount, sizeof(uint32_t));
+    if (forUnmarshaling)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->formatConstraintsCount; ++i)
+        {
+            unmarshal_VkImageFormatConstraintsInfoFUCHSIA(vkStream, rootType, (VkImageFormatConstraintsInfoFUCHSIA*)(forUnmarshaling->pFormatConstraints + i));
+        }
+    }
+    unmarshal_VkBufferCollectionConstraintsInfoFUCHSIA(vkStream, rootType, (VkBufferCollectionConstraintsInfoFUCHSIA*)(&forUnmarshaling->bufferCollectionConstraints));
+    vkStream->read((VkImageConstraintsInfoFlagsFUCHSIA*)&forUnmarshaling->flags, sizeof(VkImageConstraintsInfoFlagsFUCHSIA));
+}
+
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+void marshal_VkSubpassShadingPipelineCreateInfoHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSubpassShadingPipelineCreateInfoHUAWEI* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    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));
+}
+
+void unmarshal_VkSubpassShadingPipelineCreateInfoHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkSubpassShadingPipelineCreateInfoHUAWEI* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    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));
+}
+
+void marshal_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->subpassShading, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->subpassShading, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->maxSubpassShadingWorkgroupSizeAspectRatio, sizeof(uint32_t));
+}
+
+void unmarshal_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxSubpassShadingWorkgroupSizeAspectRatio, sizeof(uint32_t));
+}
+
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+void marshal_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->invocationMask, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->invocationMask, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_NV_external_memory_rdma
+void marshal_VkMemoryGetRemoteAddressInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMemoryGetRemoteAddressInfoNV* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, 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((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
+}
+
+void unmarshal_VkMemoryGetRemoteAddressInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkMemoryGetRemoteAddressInfoNV* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (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((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
+}
+
+void marshal_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->externalMemoryRDMA, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->externalMemoryRDMA, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+void marshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState2, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState2LogicOp, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState2PatchControlPoints, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState2, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState2LogicOp, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState2PatchControlPoints, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_QNX_screen_surface
+void marshal_VkScreenSurfaceCreateInfoQNX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkScreenSurfaceCreateInfoQNX* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkScreenSurfaceCreateFlagsQNX*)&forMarshaling->flags, sizeof(VkScreenSurfaceCreateFlagsQNX));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->context;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->context)
+    {
+        vkStream->write((_screen_context*)forMarshaling->context, sizeof(_screen_context));
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->window;
+    vkStream->putBe64(cgen_var_1);
+    if (forMarshaling->window)
+    {
+        vkStream->write((_screen_window*)forMarshaling->window, sizeof(_screen_window));
+    }
+}
+
+void unmarshal_VkScreenSurfaceCreateInfoQNX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkScreenSurfaceCreateInfoQNX* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkScreenSurfaceCreateFlagsQNX*)&forUnmarshaling->flags, sizeof(VkScreenSurfaceCreateFlagsQNX));
+    // WARNING PTR CHECK
+    _screen_context* check_context;
+    check_context = (_screen_context*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->context)
+    {
+        if (!(check_context))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->context inconsistent between guest and host\n");
+        }
+        vkStream->read((_screen_context*)forUnmarshaling->context, sizeof(_screen_context));
+    }
+    // WARNING PTR CHECK
+    _screen_window* check_window;
+    check_window = (_screen_window*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->window)
+    {
+        if (!(check_window))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->window inconsistent between guest and host\n");
+        }
+        vkStream->read((_screen_window*)forUnmarshaling->window, sizeof(_screen_window));
+    }
+}
+
+#endif
+#ifdef VK_EXT_color_write_enable
+void marshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceColorWriteEnableFeaturesEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->colorWriteEnable, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceColorWriteEnableFeaturesEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->colorWriteEnable, sizeof(VkBool32));
+}
+
+void marshal_VkPipelineColorWriteCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPipelineColorWriteCreateInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
+    vkStream->write((const VkBool32*)forMarshaling->pColorWriteEnables, forMarshaling->attachmentCount * sizeof(const VkBool32));
+}
+
+void unmarshal_VkPipelineColorWriteCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPipelineColorWriteCreateInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
+    vkStream->read((VkBool32*)forUnmarshaling->pColorWriteEnables, forUnmarshaling->attachmentCount * sizeof(const VkBool32));
+}
+
+#endif
 #ifdef VK_GOOGLE_gfxstream
 void marshal_VkImportColorBufferGOOGLE(
     VulkanStreamGuest* vkStream,
@@ -22046,6 +27792,274 @@
 }
 
 #endif
+#ifdef VK_EXT_global_priority_query
+void marshal_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->globalPriorityQuery, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->globalPriorityQuery, sizeof(VkBool32));
+}
+
+void marshal_VkQueueFamilyGlobalPriorityPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkQueueFamilyGlobalPriorityPropertiesEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->priorityCount, sizeof(uint32_t));
+    vkStream->write((VkQueueGlobalPriorityEXT*)forMarshaling->priorities, VK_MAX_GLOBAL_PRIORITY_SIZE_EXT * sizeof(VkQueueGlobalPriorityEXT));
+}
+
+void unmarshal_VkQueueFamilyGlobalPriorityPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkQueueFamilyGlobalPriorityPropertiesEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->priorityCount, sizeof(uint32_t));
+    vkStream->read((VkQueueGlobalPriorityEXT*)forUnmarshaling->priorities, VK_MAX_GLOBAL_PRIORITY_SIZE_EXT * sizeof(VkQueueGlobalPriorityEXT));
+}
+
+#endif
+#ifdef VK_EXT_multi_draw
+void marshal_VkPhysicalDeviceMultiDrawFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMultiDrawFeaturesEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->multiDraw, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceMultiDrawFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceMultiDrawFeaturesEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->multiDraw, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceMultiDrawPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMultiDrawPropertiesEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->maxMultiDrawCount, sizeof(uint32_t));
+}
+
+void unmarshal_VkPhysicalDeviceMultiDrawPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceMultiDrawPropertiesEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxMultiDrawCount, sizeof(uint32_t));
+}
+
+void marshal_VkMultiDrawInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMultiDrawInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((uint32_t*)&forMarshaling->firstVertex, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->vertexCount, sizeof(uint32_t));
+}
+
+void unmarshal_VkMultiDrawInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkMultiDrawInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((uint32_t*)&forUnmarshaling->firstVertex, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->vertexCount, sizeof(uint32_t));
+}
+
+void marshal_VkMultiDrawIndexedInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMultiDrawIndexedInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((uint32_t*)&forMarshaling->firstIndex, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->indexCount, sizeof(uint32_t));
+    vkStream->write((int32_t*)&forMarshaling->vertexOffset, sizeof(int32_t));
+}
+
+void unmarshal_VkMultiDrawIndexedInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkMultiDrawIndexedInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((uint32_t*)&forUnmarshaling->firstIndex, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->indexCount, sizeof(uint32_t));
+    vkStream->read((int32_t*)&forUnmarshaling->vertexOffset, sizeof(int32_t));
+}
+
+#endif
+#ifdef VK_EXT_load_store_op_none
+#endif
+#ifdef VK_EXT_border_color_swizzle
+void marshal_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->borderColorSwizzle, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->borderColorSwizzleFromImage, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->borderColorSwizzle, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->borderColorSwizzleFromImage, sizeof(VkBool32));
+}
+
+void marshal_VkSamplerBorderColorComponentMappingCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSamplerBorderColorComponentMappingCreateInfoEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    marshal_VkComponentMapping(vkStream, rootType, (VkComponentMapping*)(&forMarshaling->components));
+    vkStream->write((VkBool32*)&forMarshaling->srgb, sizeof(VkBool32));
+}
+
+void unmarshal_VkSamplerBorderColorComponentMappingCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkSamplerBorderColorComponentMappingCreateInfoEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    unmarshal_VkComponentMapping(vkStream, rootType, (VkComponentMapping*)(&forUnmarshaling->components));
+    vkStream->read((VkBool32*)&forUnmarshaling->srgb, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+void marshal_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* forMarshaling)
+{
+    (void)rootType;
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    marshal_extension_struct(vkStream, rootType, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->pageableDeviceLocalMemory, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* forUnmarshaling)
+{
+    (void)rootType;
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forUnmarshaling->sType;
+    }
+    unmarshal_extension_struct(vkStream, rootType, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->pageableDeviceLocalMemory, sizeof(VkBool32));
+}
+
+#endif
 #ifdef VK_KHR_acceleration_structure
 void marshal_VkDeviceOrHostAddressKHR(
     VulkanStreamGuest* vkStream,
@@ -22065,24 +28079,6 @@
     vkStream->read((VkDeviceAddress*)&forUnmarshaling->deviceAddress, sizeof(VkDeviceAddress));
 }
 
-void marshal_VkDeviceOrHostAddressConstKHR(
-    VulkanStreamGuest* vkStream,
-    VkStructureType rootType,
-    const VkDeviceOrHostAddressConstKHR* forMarshaling)
-{
-    (void)rootType;
-    vkStream->write((VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
-}
-
-void unmarshal_VkDeviceOrHostAddressConstKHR(
-    VulkanStreamGuest* vkStream,
-    VkStructureType rootType,
-    VkDeviceOrHostAddressConstKHR* forUnmarshaling)
-{
-    (void)rootType;
-    vkStream->read((VkDeviceAddress*)&forUnmarshaling->deviceAddress, sizeof(VkDeviceAddress));
-}
-
 void marshal_VkAccelerationStructureBuildRangeInfoKHR(
     VulkanStreamGuest* vkStream,
     VkStructureType rootType,
@@ -23577,6 +29573,60 @@
             break;
         }
 #endif
+#ifdef VK_KHR_video_queue
+        case VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR:
+        {
+            marshal_VkVideoQueueFamilyProperties2KHR(vkStream, rootType, reinterpret_cast<const VkVideoQueueFamilyProperties2KHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR:
+        {
+            marshal_VkVideoProfileKHR(vkStream, rootType, reinterpret_cast<const VkVideoProfileKHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR:
+        {
+            marshal_VkVideoProfilesKHR(vkStream, rootType, reinterpret_cast<const VkVideoProfilesKHR*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_KHR_dynamic_rendering
+        case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR:
+        {
+            marshal_VkPipelineRenderingCreateInfoKHR(vkStream, rootType, reinterpret_cast<const VkPipelineRenderingCreateInfoKHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR:
+        {
+            marshal_VkPhysicalDeviceDynamicRenderingFeaturesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceDynamicRenderingFeaturesKHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR:
+        {
+            marshal_VkCommandBufferInheritanceRenderingInfoKHR(vkStream, rootType, reinterpret_cast<const VkCommandBufferInheritanceRenderingInfoKHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
+        {
+            marshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(vkStream, rootType, reinterpret_cast<const VkRenderingFragmentShadingRateAttachmentInfoKHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:
+        {
+            marshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(vkStream, rootType, reinterpret_cast<const VkRenderingFragmentDensityMapAttachmentInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:
+        {
+            marshal_VkAttachmentSampleCountInfoAMD(vkStream, rootType, reinterpret_cast<const VkAttachmentSampleCountInfoAMD*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:
+        {
+            marshal_VkMultiviewPerViewAttributesInfoNVX(vkStream, rootType, reinterpret_cast<const VkMultiviewPerViewAttributesInfoNVX*>(structExtension));
+            break;
+        }
+#endif
 #ifdef VK_KHR_external_memory_win32
         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
         {
@@ -23720,6 +29770,13 @@
             break;
         }
 #endif
+#ifdef VK_KHR_present_wait
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:
+        {
+            marshal_VkPhysicalDevicePresentWaitFeaturesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDevicePresentWaitFeaturesKHR*>(structExtension));
+            break;
+        }
+#endif
 #ifdef VK_KHR_pipeline_executable_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
         {
@@ -23727,6 +29784,94 @@
             break;
         }
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR:
+        {
+            marshal_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR:
+        {
+            marshal_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_KHR_present_id
+        case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:
+        {
+            marshal_VkPresentIdKHR(vkStream, rootType, reinterpret_cast<const VkPresentIdKHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:
+        {
+            marshal_VkPhysicalDevicePresentIdFeaturesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDevicePresentIdFeaturesKHR*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_KHR_video_encode_queue
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:
+        {
+            marshal_VkVideoEncodeRateControlInfoKHR(vkStream, rootType, reinterpret_cast<const VkVideoEncodeRateControlInfoKHR*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_KHR_synchronization2
+        case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR:
+        {
+            marshal_VkMemoryBarrier2KHR(vkStream, rootType, reinterpret_cast<const VkMemoryBarrier2KHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR:
+        {
+            marshal_VkPhysicalDeviceSynchronization2FeaturesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceSynchronization2FeaturesKHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:
+        {
+            marshal_VkQueueFamilyCheckpointProperties2NV(vkStream, rootType, reinterpret_cast<const VkQueueFamilyCheckpointProperties2NV*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR:
+        {
+            marshal_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR:
+        {
+            marshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:
+        {
+            marshal_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_KHR_format_feature_flags2
+        case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR:
+        {
+            marshal_VkFormatProperties3KHR(vkStream, rootType, reinterpret_cast<const VkFormatProperties3KHR*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_KHR_maintenance4
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR:
+        {
+            marshal_VkPhysicalDeviceMaintenance4FeaturesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceMaintenance4FeaturesKHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR:
+        {
+            marshal_VkPhysicalDeviceMaintenance4PropertiesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceMaintenance4PropertiesKHR*>(structExtension));
+            break;
+        }
+#endif
 #ifdef VK_ANDROID_native_buffer
         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
         {
@@ -23782,6 +29927,122 @@
             break;
         }
 #endif
+#ifdef VK_EXT_video_encode_h264
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT:
+        {
+            marshal_VkVideoEncodeH264CapabilitiesEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH264CapabilitiesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT:
+        {
+            marshal_VkVideoEncodeH264SessionCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH264SessionCreateInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            marshal_VkVideoEncodeH264SessionParametersAddInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH264SessionParametersAddInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            marshal_VkVideoEncodeH264SessionParametersCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH264SessionParametersCreateInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT:
+        {
+            marshal_VkVideoEncodeH264VclFrameInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH264VclFrameInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT:
+        {
+            marshal_VkVideoEncodeH264EmitPictureParametersEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH264EmitPictureParametersEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT:
+        {
+            marshal_VkVideoEncodeH264ProfileEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH264ProfileEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_video_encode_h265
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT:
+        {
+            marshal_VkVideoEncodeH265CapabilitiesEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH265CapabilitiesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT:
+        {
+            marshal_VkVideoEncodeH265SessionCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH265SessionCreateInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            marshal_VkVideoEncodeH265SessionParametersAddInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH265SessionParametersAddInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            marshal_VkVideoEncodeH265SessionParametersCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH265SessionParametersCreateInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT:
+        {
+            marshal_VkVideoEncodeH265VclFrameInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH265VclFrameInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT:
+        {
+            marshal_VkVideoEncodeH265EmitPictureParametersEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH265EmitPictureParametersEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT:
+        {
+            marshal_VkVideoEncodeH265ProfileEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH265ProfileEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_video_decode_h264
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT:
+        {
+            marshal_VkVideoDecodeH264ProfileEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH264ProfileEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT:
+        {
+            marshal_VkVideoDecodeH264CapabilitiesEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH264CapabilitiesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT:
+        {
+            marshal_VkVideoDecodeH264SessionCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH264SessionCreateInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            marshal_VkVideoDecodeH264SessionParametersAddInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH264SessionParametersAddInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            marshal_VkVideoDecodeH264SessionParametersCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH264SessionParametersCreateInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT:
+        {
+            marshal_VkVideoDecodeH264PictureInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH264PictureInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT:
+        {
+            marshal_VkVideoDecodeH264MvcEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH264MvcEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT:
+        {
+            marshal_VkVideoDecodeH264DpbSlotInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH264DpbSlotInfoEXT*>(structExtension));
+            break;
+        }
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
@@ -23964,6 +30225,11 @@
             marshal_VkExternalFormatANDROID(vkStream, rootType, reinterpret_cast<const VkExternalFormatANDROID*>(structExtension));
             break;
         }
+        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:
+        {
+            marshal_VkAndroidHardwareBufferFormatProperties2ANDROID(vkStream, rootType, reinterpret_cast<const VkAndroidHardwareBufferFormatProperties2ANDROID*>(structExtension));
+            break;
+        }
 #endif
 #ifdef VK_EXT_inline_uniform_block
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:
@@ -24073,6 +30339,11 @@
             marshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>(structExtension));
             break;
         }
+        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:
+        {
+            marshal_VkDrmFormatModifierPropertiesList2EXT(vkStream, rootType, reinterpret_cast<const VkDrmFormatModifierPropertiesList2EXT*>(structExtension));
+            break;
+        }
 #endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
@@ -24172,6 +30443,43 @@
             break;
         }
 #endif
+#ifdef VK_EXT_video_decode_h265
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT:
+        {
+            marshal_VkVideoDecodeH265ProfileEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH265ProfileEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT:
+        {
+            marshal_VkVideoDecodeH265CapabilitiesEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH265CapabilitiesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT:
+        {
+            marshal_VkVideoDecodeH265SessionCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH265SessionCreateInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            marshal_VkVideoDecodeH265SessionParametersAddInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH265SessionParametersAddInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            marshal_VkVideoDecodeH265SessionParametersCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH265SessionParametersCreateInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT:
+        {
+            marshal_VkVideoDecodeH265PictureInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH265PictureInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT:
+        {
+            marshal_VkVideoDecodeH265DpbSlotInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH265DpbSlotInfoEXT*>(structExtension));
+            break;
+        }
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
         case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
         {
@@ -24494,6 +30802,23 @@
             break;
         }
 #endif
+#ifdef VK_EXT_provoking_vertex
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceProvokingVertexFeaturesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
+        {
+            marshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceProvokingVertexPropertiesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:
+        {
+            marshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(structExtension));
+            break;
+        }
+#endif
 #ifdef VK_EXT_full_screen_exclusive
         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
         {
@@ -24549,6 +30874,13 @@
             break;
         }
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT:
         {
@@ -24573,6 +30905,18 @@
             break;
         }
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:
+        {
+            marshal_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceInheritedViewportScissorFeaturesNV*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:
+        {
+            marshal_VkCommandBufferInheritanceViewportScissorInfoNV(vkStream, rootType, reinterpret_cast<const VkCommandBufferInheritanceViewportScissorInfoNV*>(structExtension));
+            break;
+        }
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
         {
@@ -24686,6 +31030,30 @@
             break;
         }
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:
+        {
+            marshal_VkAccelerationStructureGeometryMotionTrianglesDataNV(vkStream, rootType, reinterpret_cast<const VkAccelerationStructureGeometryMotionTrianglesDataNV*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:
+        {
+            marshal_VkAccelerationStructureMotionInfoNV(vkStream, rootType, reinterpret_cast<const VkAccelerationStructureMotionInfoNV*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:
+        {
+            marshal_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
 #ifdef VK_EXT_fragment_density_map2
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
         {
@@ -24719,6 +31087,120 @@
             break;
         }
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_VALVE_mutable_descriptor_type
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE:
+        {
+            marshal_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE:
+        {
+            marshal_VkMutableDescriptorTypeCreateInfoVALVE(vkStream, rootType, reinterpret_cast<const VkMutableDescriptorTypeCreateInfoVALVE*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_physical_device_drm
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:
+        {
+            marshal_VkPhysicalDeviceDrmPropertiesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceDrmPropertiesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_FUCHSIA_external_memory
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:
+        {
+            marshal_VkImportMemoryZirconHandleInfoFUCHSIA(vkStream, rootType, reinterpret_cast<const VkImportMemoryZirconHandleInfoFUCHSIA*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:
+        {
+            marshal_VkImportMemoryBufferCollectionFUCHSIA(vkStream, rootType, reinterpret_cast<const VkImportMemoryBufferCollectionFUCHSIA*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:
+        {
+            marshal_VkBufferCollectionImageCreateInfoFUCHSIA(vkStream, rootType, reinterpret_cast<const VkBufferCollectionImageCreateInfoFUCHSIA*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:
+        {
+            marshal_VkBufferCollectionBufferCreateInfoFUCHSIA(vkStream, rootType, reinterpret_cast<const VkBufferCollectionBufferCreateInfoFUCHSIA*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+        case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:
+        {
+            marshal_VkSubpassShadingPipelineCreateInfoHUAWEI(vkStream, rootType, reinterpret_cast<const VkSubpassShadingPipelineCreateInfoHUAWEI*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:
+        {
+            marshal_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:
+        {
+            marshal_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:
+        {
+            marshal_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_NV_external_memory_rdma
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:
+        {
+            marshal_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_color_write_enable
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:
+        {
+            marshal_VkPipelineColorWriteCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkPipelineColorWriteCreateInfoEXT*>(structExtension));
+            break;
+        }
+#endif
 #ifdef VK_GOOGLE_gfxstream
         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
         {
@@ -24736,6 +31218,49 @@
             break;
         }
 #endif
+#ifdef VK_EXT_global_priority_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT:
+        {
+            marshal_VkQueueFamilyGlobalPriorityPropertiesEXT(vkStream, rootType, reinterpret_cast<const VkQueueFamilyGlobalPriorityPropertiesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_multi_draw
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceMultiDrawFeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceMultiDrawFeaturesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:
+        {
+            marshal_VkPhysicalDeviceMultiDrawPropertiesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceMultiDrawPropertiesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_border_color_swizzle
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:
+        {
+            marshal_VkSamplerBorderColorComponentMappingCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkSamplerBorderColorComponentMappingCreateInfoEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
 #ifdef VK_KHR_acceleration_structure
         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
         {
@@ -25231,6 +31756,60 @@
             break;
         }
 #endif
+#ifdef VK_KHR_video_queue
+        case VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR:
+        {
+            unmarshal_VkVideoQueueFamilyProperties2KHR(vkStream, rootType, reinterpret_cast<VkVideoQueueFamilyProperties2KHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR:
+        {
+            unmarshal_VkVideoProfileKHR(vkStream, rootType, reinterpret_cast<VkVideoProfileKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR:
+        {
+            unmarshal_VkVideoProfilesKHR(vkStream, rootType, reinterpret_cast<VkVideoProfilesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_dynamic_rendering
+        case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR:
+        {
+            unmarshal_VkPipelineRenderingCreateInfoKHR(vkStream, rootType, reinterpret_cast<VkPipelineRenderingCreateInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR:
+        {
+            unmarshal_VkPhysicalDeviceDynamicRenderingFeaturesKHR(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceDynamicRenderingFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR:
+        {
+            unmarshal_VkCommandBufferInheritanceRenderingInfoKHR(vkStream, rootType, reinterpret_cast<VkCommandBufferInheritanceRenderingInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
+        {
+            unmarshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(vkStream, rootType, reinterpret_cast<VkRenderingFragmentShadingRateAttachmentInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:
+        {
+            unmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(vkStream, rootType, reinterpret_cast<VkRenderingFragmentDensityMapAttachmentInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:
+        {
+            unmarshal_VkAttachmentSampleCountInfoAMD(vkStream, rootType, reinterpret_cast<VkAttachmentSampleCountInfoAMD*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:
+        {
+            unmarshal_VkMultiviewPerViewAttributesInfoNVX(vkStream, rootType, reinterpret_cast<VkMultiviewPerViewAttributesInfoNVX*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_KHR_external_memory_win32
         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
         {
@@ -25374,6 +31953,13 @@
             break;
         }
 #endif
+#ifdef VK_KHR_present_wait
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:
+        {
+            unmarshal_VkPhysicalDevicePresentWaitFeaturesKHR(vkStream, rootType, reinterpret_cast<VkPhysicalDevicePresentWaitFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_KHR_pipeline_executable_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
         {
@@ -25381,6 +31967,94 @@
             break;
         }
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR:
+        {
+            unmarshal_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR:
+        {
+            unmarshal_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_present_id
+        case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:
+        {
+            unmarshal_VkPresentIdKHR(vkStream, rootType, reinterpret_cast<VkPresentIdKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:
+        {
+            unmarshal_VkPhysicalDevicePresentIdFeaturesKHR(vkStream, rootType, reinterpret_cast<VkPhysicalDevicePresentIdFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_video_encode_queue
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:
+        {
+            unmarshal_VkVideoEncodeRateControlInfoKHR(vkStream, rootType, reinterpret_cast<VkVideoEncodeRateControlInfoKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_synchronization2
+        case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR:
+        {
+            unmarshal_VkMemoryBarrier2KHR(vkStream, rootType, reinterpret_cast<VkMemoryBarrier2KHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR:
+        {
+            unmarshal_VkPhysicalDeviceSynchronization2FeaturesKHR(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceSynchronization2FeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:
+        {
+            unmarshal_VkQueueFamilyCheckpointProperties2NV(vkStream, rootType, reinterpret_cast<VkQueueFamilyCheckpointProperties2NV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR:
+        {
+            unmarshal_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR:
+        {
+            unmarshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:
+        {
+            unmarshal_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_format_feature_flags2
+        case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR:
+        {
+            unmarshal_VkFormatProperties3KHR(vkStream, rootType, reinterpret_cast<VkFormatProperties3KHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_maintenance4
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR:
+        {
+            unmarshal_VkPhysicalDeviceMaintenance4FeaturesKHR(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceMaintenance4FeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR:
+        {
+            unmarshal_VkPhysicalDeviceMaintenance4PropertiesKHR(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceMaintenance4PropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_ANDROID_native_buffer
         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
         {
@@ -25436,6 +32110,122 @@
             break;
         }
 #endif
+#ifdef VK_EXT_video_encode_h264
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT:
+        {
+            unmarshal_VkVideoEncodeH264CapabilitiesEXT(vkStream, rootType, reinterpret_cast<VkVideoEncodeH264CapabilitiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT:
+        {
+            unmarshal_VkVideoEncodeH264SessionCreateInfoEXT(vkStream, rootType, reinterpret_cast<VkVideoEncodeH264SessionCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            unmarshal_VkVideoEncodeH264SessionParametersAddInfoEXT(vkStream, rootType, reinterpret_cast<VkVideoEncodeH264SessionParametersAddInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            unmarshal_VkVideoEncodeH264SessionParametersCreateInfoEXT(vkStream, rootType, reinterpret_cast<VkVideoEncodeH264SessionParametersCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT:
+        {
+            unmarshal_VkVideoEncodeH264VclFrameInfoEXT(vkStream, rootType, reinterpret_cast<VkVideoEncodeH264VclFrameInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT:
+        {
+            unmarshal_VkVideoEncodeH264EmitPictureParametersEXT(vkStream, rootType, reinterpret_cast<VkVideoEncodeH264EmitPictureParametersEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT:
+        {
+            unmarshal_VkVideoEncodeH264ProfileEXT(vkStream, rootType, reinterpret_cast<VkVideoEncodeH264ProfileEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_video_encode_h265
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT:
+        {
+            unmarshal_VkVideoEncodeH265CapabilitiesEXT(vkStream, rootType, reinterpret_cast<VkVideoEncodeH265CapabilitiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT:
+        {
+            unmarshal_VkVideoEncodeH265SessionCreateInfoEXT(vkStream, rootType, reinterpret_cast<VkVideoEncodeH265SessionCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            unmarshal_VkVideoEncodeH265SessionParametersAddInfoEXT(vkStream, rootType, reinterpret_cast<VkVideoEncodeH265SessionParametersAddInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            unmarshal_VkVideoEncodeH265SessionParametersCreateInfoEXT(vkStream, rootType, reinterpret_cast<VkVideoEncodeH265SessionParametersCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT:
+        {
+            unmarshal_VkVideoEncodeH265VclFrameInfoEXT(vkStream, rootType, reinterpret_cast<VkVideoEncodeH265VclFrameInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT:
+        {
+            unmarshal_VkVideoEncodeH265EmitPictureParametersEXT(vkStream, rootType, reinterpret_cast<VkVideoEncodeH265EmitPictureParametersEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT:
+        {
+            unmarshal_VkVideoEncodeH265ProfileEXT(vkStream, rootType, reinterpret_cast<VkVideoEncodeH265ProfileEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_video_decode_h264
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT:
+        {
+            unmarshal_VkVideoDecodeH264ProfileEXT(vkStream, rootType, reinterpret_cast<VkVideoDecodeH264ProfileEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT:
+        {
+            unmarshal_VkVideoDecodeH264CapabilitiesEXT(vkStream, rootType, reinterpret_cast<VkVideoDecodeH264CapabilitiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT:
+        {
+            unmarshal_VkVideoDecodeH264SessionCreateInfoEXT(vkStream, rootType, reinterpret_cast<VkVideoDecodeH264SessionCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            unmarshal_VkVideoDecodeH264SessionParametersAddInfoEXT(vkStream, rootType, reinterpret_cast<VkVideoDecodeH264SessionParametersAddInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            unmarshal_VkVideoDecodeH264SessionParametersCreateInfoEXT(vkStream, rootType, reinterpret_cast<VkVideoDecodeH264SessionParametersCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT:
+        {
+            unmarshal_VkVideoDecodeH264PictureInfoEXT(vkStream, rootType, reinterpret_cast<VkVideoDecodeH264PictureInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT:
+        {
+            unmarshal_VkVideoDecodeH264MvcEXT(vkStream, rootType, reinterpret_cast<VkVideoDecodeH264MvcEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT:
+        {
+            unmarshal_VkVideoDecodeH264DpbSlotInfoEXT(vkStream, rootType, reinterpret_cast<VkVideoDecodeH264DpbSlotInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
@@ -25618,6 +32408,11 @@
             unmarshal_VkExternalFormatANDROID(vkStream, rootType, reinterpret_cast<VkExternalFormatANDROID*>(structExtension_out));
             break;
         }
+        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:
+        {
+            unmarshal_VkAndroidHardwareBufferFormatProperties2ANDROID(vkStream, rootType, reinterpret_cast<VkAndroidHardwareBufferFormatProperties2ANDROID*>(structExtension_out));
+            break;
+        }
 #endif
 #ifdef VK_EXT_inline_uniform_block
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:
@@ -25727,6 +32522,11 @@
             unmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(vkStream, rootType, reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>(structExtension_out));
             break;
         }
+        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:
+        {
+            unmarshal_VkDrmFormatModifierPropertiesList2EXT(vkStream, rootType, reinterpret_cast<VkDrmFormatModifierPropertiesList2EXT*>(structExtension_out));
+            break;
+        }
 #endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
@@ -25826,6 +32626,43 @@
             break;
         }
 #endif
+#ifdef VK_EXT_video_decode_h265
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT:
+        {
+            unmarshal_VkVideoDecodeH265ProfileEXT(vkStream, rootType, reinterpret_cast<VkVideoDecodeH265ProfileEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT:
+        {
+            unmarshal_VkVideoDecodeH265CapabilitiesEXT(vkStream, rootType, reinterpret_cast<VkVideoDecodeH265CapabilitiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT:
+        {
+            unmarshal_VkVideoDecodeH265SessionCreateInfoEXT(vkStream, rootType, reinterpret_cast<VkVideoDecodeH265SessionCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            unmarshal_VkVideoDecodeH265SessionParametersAddInfoEXT(vkStream, rootType, reinterpret_cast<VkVideoDecodeH265SessionParametersAddInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            unmarshal_VkVideoDecodeH265SessionParametersCreateInfoEXT(vkStream, rootType, reinterpret_cast<VkVideoDecodeH265SessionParametersCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT:
+        {
+            unmarshal_VkVideoDecodeH265PictureInfoEXT(vkStream, rootType, reinterpret_cast<VkVideoDecodeH265PictureInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT:
+        {
+            unmarshal_VkVideoDecodeH265DpbSlotInfoEXT(vkStream, rootType, reinterpret_cast<VkVideoDecodeH265DpbSlotInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
         case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
         {
@@ -26148,6 +32985,23 @@
             break;
         }
 #endif
+#ifdef VK_EXT_provoking_vertex
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceProvokingVertexFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceProvokingVertexPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:
+        {
+            unmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(vkStream, rootType, reinterpret_cast<VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_full_screen_exclusive
         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
         {
@@ -26203,6 +33057,13 @@
             break;
         }
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT*>(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:
         {
@@ -26227,6 +33088,18 @@
             break;
         }
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:
+        {
+            unmarshal_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceInheritedViewportScissorFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:
+        {
+            unmarshal_VkCommandBufferInheritanceViewportScissorInfoNV(vkStream, rootType, reinterpret_cast<VkCommandBufferInheritanceViewportScissorInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
         {
@@ -26340,6 +33213,30 @@
             break;
         }
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:
+        {
+            unmarshal_VkAccelerationStructureGeometryMotionTrianglesDataNV(vkStream, rootType, reinterpret_cast<VkAccelerationStructureGeometryMotionTrianglesDataNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:
+        {
+            unmarshal_VkAccelerationStructureMotionInfoNV(vkStream, rootType, reinterpret_cast<VkAccelerationStructureMotionInfoNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:
+        {
+            unmarshal_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_fragment_density_map2
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
         {
@@ -26373,6 +33270,120 @@
             break;
         }
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_VALVE_mutable_descriptor_type
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE:
+        {
+            unmarshal_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE:
+        {
+            unmarshal_VkMutableDescriptorTypeCreateInfoVALVE(vkStream, rootType, reinterpret_cast<VkMutableDescriptorTypeCreateInfoVALVE*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_physical_device_drm
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceDrmPropertiesEXT(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceDrmPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(vkStream, rootType, reinterpret_cast<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_FUCHSIA_external_memory
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:
+        {
+            unmarshal_VkImportMemoryZirconHandleInfoFUCHSIA(vkStream, rootType, reinterpret_cast<VkImportMemoryZirconHandleInfoFUCHSIA*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:
+        {
+            unmarshal_VkImportMemoryBufferCollectionFUCHSIA(vkStream, rootType, reinterpret_cast<VkImportMemoryBufferCollectionFUCHSIA*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:
+        {
+            unmarshal_VkBufferCollectionImageCreateInfoFUCHSIA(vkStream, rootType, reinterpret_cast<VkBufferCollectionImageCreateInfoFUCHSIA*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:
+        {
+            unmarshal_VkBufferCollectionBufferCreateInfoFUCHSIA(vkStream, rootType, reinterpret_cast<VkBufferCollectionBufferCreateInfoFUCHSIA*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+        case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:
+        {
+            unmarshal_VkSubpassShadingPipelineCreateInfoHUAWEI(vkStream, rootType, reinterpret_cast<VkSubpassShadingPipelineCreateInfoHUAWEI*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:
+        {
+            unmarshal_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:
+        {
+            unmarshal_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:
+        {
+            unmarshal_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_external_memory_rdma
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:
+        {
+            unmarshal_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_color_write_enable
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:
+        {
+            unmarshal_VkPipelineColorWriteCreateInfoEXT(vkStream, rootType, reinterpret_cast<VkPipelineColorWriteCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_GOOGLE_gfxstream
         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
         {
@@ -26390,6 +33401,49 @@
             break;
         }
 #endif
+#ifdef VK_EXT_global_priority_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT:
+        {
+            unmarshal_VkQueueFamilyGlobalPriorityPropertiesEXT(vkStream, rootType, reinterpret_cast<VkQueueFamilyGlobalPriorityPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_multi_draw
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceMultiDrawFeaturesEXT(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceMultiDrawFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceMultiDrawPropertiesEXT(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceMultiDrawPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_border_color_swizzle
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(vkStream, rootType, reinterpret_cast<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:
+        {
+            unmarshal_VkSamplerBorderColorComponentMappingCreateInfoEXT(vkStream, rootType, reinterpret_cast<VkSamplerBorderColorComponentMappingCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(vkStream, rootType, reinterpret_cast<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_KHR_acceleration_structure
         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
         {
@@ -27887,12 +34941,36 @@
             return "OP_vkQueueFlushCommandsGOOGLE";
         }
 #endif
+#ifdef VK_KHR_dynamic_rendering
+        case OP_vkCmdEndRenderingKHR:
+        {
+            return "OP_vkCmdEndRenderingKHR";
+        }
+#endif
 #ifdef VK_EXT_full_screen_exclusive
         case OP_vkAcquireFullScreenExclusiveModeEXT:
         {
             return "OP_vkAcquireFullScreenExclusiveModeEXT";
         }
 #endif
+#ifdef VK_KHR_synchronization2
+        case OP_vkCmdPipelineBarrier2KHR:
+        {
+            return "OP_vkCmdPipelineBarrier2KHR";
+        }
+#endif
+#ifdef VK_KHR_maintenance4
+        case OP_vkGetDeviceBufferMemoryRequirementsKHR:
+        {
+            return "OP_vkGetDeviceBufferMemoryRequirementsKHR";
+        }
+#endif
+#ifdef VK_EXT_color_write_enable
+        case OP_vkCmdSetColorWriteEnableEXT:
+        {
+            return "OP_vkCmdSetColorWriteEnableEXT";
+        }
+#endif
 #ifdef VK_NV_ray_tracing
         case OP_vkBindAccelerationStructureMemoryNV:
         {
@@ -27965,12 +35043,24 @@
             return "OP_vkCmdDrawMeshTasksNV";
         }
 #endif
+#ifdef VK_NVX_binary_import
+        case OP_vkCreateCuFunctionNVX:
+        {
+            return "OP_vkCreateCuFunctionNVX";
+        }
+#endif
 #ifdef VK_NV_ray_tracing
         case OP_vkCmdWriteAccelerationStructuresPropertiesNV:
         {
             return "OP_vkCmdWriteAccelerationStructuresPropertiesNV";
         }
 #endif
+#ifdef VK_EXT_extended_dynamic_state2
+        case OP_vkCmdSetPatchControlPointsEXT:
+        {
+            return "OP_vkCmdSetPatchControlPointsEXT";
+        }
+#endif
 #ifdef VK_EXT_private_data
         case OP_vkDestroyPrivateDataSlotEXT:
         {
@@ -27995,6 +35085,12 @@
             return "OP_vkCmdCopyAccelerationStructureNV";
         }
 #endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+        case OP_vkCmdSetVertexInputEXT:
+        {
+            return "OP_vkCmdSetVertexInputEXT";
+        }
+#endif
 #ifdef VK_KHR_ray_tracing_pipeline
         case OP_vkCmdTraceRaysIndirectKHR:
         {
@@ -28007,6 +35103,18 @@
             return "OP_vkCmdSetFrontFaceEXT";
         }
 #endif
+#ifdef VK_FUCHSIA_buffer_collection
+        case OP_vkSetBufferCollectionBufferConstraintsFUCHSIA:
+        {
+            return "OP_vkSetBufferCollectionBufferConstraintsFUCHSIA";
+        }
+#endif
+#ifdef VK_FUCHSIA_external_memory
+        case OP_vkGetMemoryZirconHandlePropertiesFUCHSIA:
+        {
+            return "OP_vkGetMemoryZirconHandlePropertiesFUCHSIA";
+        }
+#endif
 #ifdef VK_INTEL_performance_query
         case OP_vkGetPerformanceParameterINTEL:
         {
@@ -28025,6 +35133,12 @@
             return "OP_vkCmdTraceRaysKHR";
         }
 #endif
+#ifdef VK_FUCHSIA_external_memory
+        case OP_vkGetMemoryZirconHandleFUCHSIA:
+        {
+            return "OP_vkGetMemoryZirconHandleFUCHSIA";
+        }
+#endif
 #ifdef VK_NV_shading_rate_image
         case OP_vkCmdSetViewportShadingRatePaletteNV:
         {
@@ -28036,6 +35150,14 @@
         {
             return "OP_vkDestroyDeferredOperationKHR";
         }
+#endif
+#ifdef VK_KHR_video_queue
+        case OP_vkBindVideoSessionMemoryKHR:
+        {
+            return "OP_vkBindVideoSessionMemoryKHR";
+        }
+#endif
+#ifdef VK_KHR_deferred_host_operations
         case OP_vkDeferredOperationJoinKHR:
         {
             return "OP_vkDeferredOperationJoinKHR";
@@ -28059,12 +35181,24 @@
             return "OP_vkGetAccelerationStructureBuildSizesKHR";
         }
 #endif
+#ifdef VK_NVX_binary_import
+        case OP_vkCmdCuLaunchKernelNVX:
+        {
+            return "OP_vkCmdCuLaunchKernelNVX";
+        }
+#endif
 #ifdef VK_NV_ray_tracing
         case OP_vkGetAccelerationStructureMemoryRequirementsNV:
         {
             return "OP_vkGetAccelerationStructureMemoryRequirementsNV";
         }
 #endif
+#ifdef VK_HUAWEI_subpass_shading
+        case OP_vkCmdSubpassShadingHUAWEI:
+        {
+            return "OP_vkCmdSubpassShadingHUAWEI";
+        }
+#endif
 #ifdef VK_EXT_directfb_surface
         case OP_vkCreateDirectFBSurfaceEXT:
         {
@@ -28123,24 +35257,54 @@
             return "OP_vkDestroyAccelerationStructureKHR";
         }
 #endif
+#ifdef VK_EXT_pageable_device_local_memory
+        case OP_vkSetDeviceMemoryPriorityEXT:
+        {
+            return "OP_vkSetDeviceMemoryPriorityEXT";
+        }
+#endif
 #ifdef VK_EXT_buffer_device_address
         case OP_vkGetBufferDeviceAddressEXT:
         {
             return "OP_vkGetBufferDeviceAddressEXT";
         }
 #endif
+#ifdef VK_QNX_screen_surface
+        case OP_vkCreateScreenSurfaceQNX:
+        {
+            return "OP_vkCreateScreenSurfaceQNX";
+        }
+#endif
+#ifdef VK_KHR_synchronization2
+        case OP_vkCmdWriteBufferMarker2AMD:
+        {
+            return "OP_vkCmdWriteBufferMarker2AMD";
+        }
+#endif
 #ifdef VK_VERSION_1_2
         case OP_vkWaitSemaphores:
         {
             return "OP_vkWaitSemaphores";
         }
 #endif
+#ifdef VK_FUCHSIA_buffer_collection
+        case OP_vkDestroyBufferCollectionFUCHSIA:
+        {
+            return "OP_vkDestroyBufferCollectionFUCHSIA";
+        }
+#endif
 #ifdef VK_EXT_private_data
         case OP_vkSetPrivateDataEXT:
         {
             return "OP_vkSetPrivateDataEXT";
         }
 #endif
+#ifdef VK_HUAWEI_subpass_shading
+        case OP_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI:
+        {
+            return "OP_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI";
+        }
+#endif
 #ifdef VK_NV_scissor_exclusive
         case OP_vkCmdSetExclusiveScissorNV:
         {
@@ -28153,6 +35317,18 @@
             return "OP_vkCmdCopyImage2KHR";
         }
 #endif
+#ifdef VK_NVX_binary_import
+        case OP_vkCreateCuModuleNVX:
+        {
+            return "OP_vkCreateCuModuleNVX";
+        }
+#endif
+#ifdef VK_KHR_video_queue
+        case OP_vkCreateVideoSessionKHR:
+        {
+            return "OP_vkCreateVideoSessionKHR";
+        }
+#endif
 #ifdef VK_KHR_timeline_semaphore
         case OP_vkGetSemaphoreCounterValueKHR:
         {
@@ -28200,6 +35376,14 @@
         {
             return "OP_vkCmdSetCoarseSampleOrderNV";
         }
+#endif
+#ifdef VK_KHR_video_queue
+        case OP_vkDestroyVideoSessionParametersKHR:
+        {
+            return "OP_vkDestroyVideoSessionParametersKHR";
+        }
+#endif
+#ifdef VK_NV_shading_rate_image
         case OP_vkCmdBindShadingRateImageNV:
         {
             return "OP_vkCmdBindShadingRateImageNV";
@@ -28211,6 +35395,16 @@
             return "OP_vkAcquireProfilingLockKHR";
         }
 #endif
+#ifdef VK_KHR_video_queue
+        case OP_vkDestroyVideoSessionKHR:
+        {
+            return "OP_vkDestroyVideoSessionKHR";
+        }
+        case OP_vkCmdBeginVideoCodingKHR:
+        {
+            return "OP_vkCmdBeginVideoCodingKHR";
+        }
+#endif
 #ifdef VK_KHR_acceleration_structure
         case OP_vkCopyAccelerationStructureKHR:
         {
@@ -28229,12 +35423,24 @@
             return "OP_vkBuildAccelerationStructuresKHR";
         }
 #endif
+#ifdef VK_FUCHSIA_buffer_collection
+        case OP_vkGetBufferCollectionPropertiesFUCHSIA:
+        {
+            return "OP_vkGetBufferCollectionPropertiesFUCHSIA";
+        }
+#endif
 #ifdef VK_EXT_host_query_reset
         case OP_vkResetQueryPoolEXT:
         {
             return "OP_vkResetQueryPoolEXT";
         }
 #endif
+#ifdef VK_KHR_maintenance4
+        case OP_vkGetDeviceImageMemoryRequirementsKHR:
+        {
+            return "OP_vkGetDeviceImageMemoryRequirementsKHR";
+        }
+#endif
 #ifdef VK_EXT_extended_dynamic_state
         case OP_vkCmdBindVertexBuffers2EXT:
         {
@@ -28252,11 +35458,25 @@
         {
             return "OP_vkCmdNextSubpass2";
         }
+#endif
+#ifdef VK_KHR_synchronization2
+        case OP_vkCmdWaitEvents2KHR:
+        {
+            return "OP_vkCmdWaitEvents2KHR";
+        }
+#endif
+#ifdef VK_VERSION_1_2
         case OP_vkCmdDrawIndexedIndirectCount:
         {
             return "OP_vkCmdDrawIndexedIndirectCount";
         }
 #endif
+#ifdef VK_EXT_extended_dynamic_state2
+        case OP_vkCmdSetRasterizerDiscardEnableEXT:
+        {
+            return "OP_vkCmdSetRasterizerDiscardEnableEXT";
+        }
+#endif
 #ifdef VK_INTEL_performance_query
         case OP_vkAcquirePerformanceConfigurationINTEL:
         {
@@ -28280,6 +35500,20 @@
         {
             return "OP_vkCmdCopyBuffer2KHR";
         }
+#endif
+#ifdef VK_KHR_video_queue
+        case OP_vkGetPhysicalDeviceVideoCapabilitiesKHR:
+        {
+            return "OP_vkGetPhysicalDeviceVideoCapabilitiesKHR";
+        }
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+        case OP_vkGetSemaphoreZirconHandleFUCHSIA:
+        {
+            return "OP_vkGetSemaphoreZirconHandleFUCHSIA";
+        }
+#endif
+#ifdef VK_KHR_copy_commands2
         case OP_vkCmdCopyBufferToImage2KHR:
         {
             return "OP_vkCmdCopyBufferToImage2KHR";
@@ -28291,6 +35525,12 @@
             return "OP_vkGetGeneratedCommandsMemoryRequirementsNV";
         }
 #endif
+#ifdef VK_EXT_acquire_drm_display
+        case OP_vkAcquireDrmDisplayEXT:
+        {
+            return "OP_vkAcquireDrmDisplayEXT";
+        }
+#endif
 #ifdef VK_EXT_image_drm_format_modifier
         case OP_vkGetImageDrmFormatModifierPropertiesEXT:
         {
@@ -28315,6 +35555,12 @@
             return "OP_vkCmdCopyImageToBuffer2KHR";
         }
 #endif
+#ifdef VK_KHR_synchronization2
+        case OP_vkCmdWriteTimestamp2KHR:
+        {
+            return "OP_vkCmdWriteTimestamp2KHR";
+        }
+#endif
 #ifdef VK_NV_ray_tracing
         case OP_vkDestroyAccelerationStructureNV:
         {
@@ -28327,6 +35573,18 @@
             return "OP_vkReleasePerformanceConfigurationINTEL";
         }
 #endif
+#ifdef VK_KHR_video_queue
+        case OP_vkCmdControlVideoCodingKHR:
+        {
+            return "OP_vkCmdControlVideoCodingKHR";
+        }
+#endif
+#ifdef VK_NVX_binary_import
+        case OP_vkDestroyCuFunctionNVX:
+        {
+            return "OP_vkDestroyCuFunctionNVX";
+        }
+#endif
 #ifdef VK_KHR_copy_commands2
         case OP_vkCmdResolveImage2KHR:
         {
@@ -28345,6 +35603,18 @@
             return "OP_vkCopyAccelerationStructureToMemoryKHR";
         }
 #endif
+#ifdef VK_KHR_video_queue
+        case OP_vkGetVideoSessionMemoryRequirementsKHR:
+        {
+            return "OP_vkGetVideoSessionMemoryRequirementsKHR";
+        }
+#endif
+#ifdef VK_NV_external_memory_rdma
+        case OP_vkGetMemoryRemoteAddressNV:
+        {
+            return "OP_vkGetMemoryRemoteAddressNV";
+        }
+#endif
 #ifdef VK_EXT_extended_dynamic_state
         case OP_vkCmdSetViewportWithCountEXT:
         {
@@ -28362,11 +35632,25 @@
         {
             return "OP_vkCmdBuildAccelerationStructuresIndirectKHR";
         }
+#endif
+#ifdef VK_QNX_screen_surface
+        case OP_vkGetPhysicalDeviceScreenPresentationSupportQNX:
+        {
+            return "OP_vkGetPhysicalDeviceScreenPresentationSupportQNX";
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
         case OP_vkCreateAccelerationStructureKHR:
         {
             return "OP_vkCreateAccelerationStructureKHR";
         }
 #endif
+#ifdef VK_EXT_extended_dynamic_state2
+        case OP_vkCmdSetDepthBiasEnableEXT:
+        {
+            return "OP_vkCmdSetDepthBiasEnableEXT";
+        }
+#endif
 #ifdef VK_NV_ray_tracing
         case OP_vkCreateAccelerationStructureNV:
         {
@@ -28397,6 +35681,12 @@
             return "OP_vkCmdSetPrimitiveTopologyEXT";
         }
 #endif
+#ifdef VK_KHR_video_queue
+        case OP_vkUpdateVideoSessionParametersKHR:
+        {
+            return "OP_vkUpdateVideoSessionParametersKHR";
+        }
+#endif
 #ifdef VK_INTEL_performance_query
         case OP_vkCmdSetPerformanceStreamMarkerINTEL:
         {
@@ -28415,6 +35705,24 @@
             return "OP_vkCreateImagePipeSurfaceFUCHSIA";
         }
 #endif
+#ifdef VK_KHR_video_queue
+        case OP_vkGetPhysicalDeviceVideoFormatPropertiesKHR:
+        {
+            return "OP_vkGetPhysicalDeviceVideoFormatPropertiesKHR";
+        }
+#endif
+#ifdef VK_KHR_present_wait
+        case OP_vkWaitForPresentKHR:
+        {
+            return "OP_vkWaitForPresentKHR";
+        }
+#endif
+#ifdef VK_EXT_multi_draw
+        case OP_vkCmdDrawMultiEXT:
+        {
+            return "OP_vkCmdDrawMultiEXT";
+        }
+#endif
 #ifdef VK_KHR_deferred_host_operations
         case OP_vkGetDeferredOperationResultKHR:
         {
@@ -28439,6 +35747,12 @@
             return "OP_vkCmdSetFragmentShadingRateEnumNV";
         }
 #endif
+#ifdef VK_KHR_video_queue
+        case OP_vkCreateVideoSessionParametersKHR:
+        {
+            return "OP_vkCreateVideoSessionParametersKHR";
+        }
+#endif
 #ifdef VK_EXT_extended_dynamic_state
         case OP_vkCmdSetCullModeEXT:
         {
@@ -28457,6 +35771,12 @@
             return "OP_vkGetSemaphoreCounterValue";
         }
 #endif
+#ifdef VK_EXT_extended_dynamic_state2
+        case OP_vkCmdSetLogicOpEXT:
+        {
+            return "OP_vkCmdSetLogicOpEXT";
+        }
+#endif
 #ifdef VK_AMD_display_native_hdr
         case OP_vkSetLocalDimmingAMD:
         {
@@ -28517,6 +35837,12 @@
             return "OP_vkCmdBindPipelineShaderGroupNV";
         }
 #endif
+#ifdef VK_KHR_synchronization2
+        case OP_vkCmdSetEvent2KHR:
+        {
+            return "OP_vkCmdSetEvent2KHR";
+        }
+#endif
 #ifdef VK_VERSION_1_2
         case OP_vkSignalSemaphore:
         {
@@ -28559,6 +35885,12 @@
             return "OP_vkGetPhysicalDeviceFragmentShadingRatesKHR";
         }
 #endif
+#ifdef VK_NVX_binary_import
+        case OP_vkDestroyCuModuleNVX:
+        {
+            return "OP_vkDestroyCuModuleNVX";
+        }
+#endif
 #ifdef VK_NV_mesh_shader
         case OP_vkCmdDrawMeshTasksIndirectNV:
         {
@@ -28571,12 +35903,36 @@
             return "OP_vkGetPipelineExecutableInternalRepresentationsKHR";
         }
 #endif
+#ifdef VK_NV_acquire_winrt_display
+        case OP_vkAcquireWinrtDisplayNV:
+        {
+            return "OP_vkAcquireWinrtDisplayNV";
+        }
+#endif
 #ifdef VK_KHR_deferred_host_operations
         case OP_vkCreateDeferredOperationKHR:
         {
             return "OP_vkCreateDeferredOperationKHR";
         }
 #endif
+#ifdef VK_FUCHSIA_buffer_collection
+        case OP_vkSetBufferCollectionImageConstraintsFUCHSIA:
+        {
+            return "OP_vkSetBufferCollectionImageConstraintsFUCHSIA";
+        }
+#endif
+#ifdef VK_KHR_maintenance4
+        case OP_vkGetDeviceImageSparseMemoryRequirementsKHR:
+        {
+            return "OP_vkGetDeviceImageSparseMemoryRequirementsKHR";
+        }
+#endif
+#ifdef VK_KHR_video_decode_queue
+        case OP_vkCmdDecodeVideoKHR:
+        {
+            return "OP_vkCmdDecodeVideoKHR";
+        }
+#endif
 #ifdef VK_EXT_transform_feedback
         case OP_vkCmdBeginQueryIndexedEXT:
         {
@@ -28589,6 +35945,12 @@
             return "OP_vkCmdSetStencilOpEXT";
         }
 #endif
+#ifdef VK_FUCHSIA_buffer_collection
+        case OP_vkCreateBufferCollectionFUCHSIA:
+        {
+            return "OP_vkCreateBufferCollectionFUCHSIA";
+        }
+#endif
 #ifdef VK_NV_ray_tracing
         case OP_vkCompileDeferredNV:
         {
@@ -28613,6 +35975,12 @@
             return "OP_vkCmdEndQueryIndexedEXT";
         }
 #endif
+#ifdef VK_KHR_video_queue
+        case OP_vkCmdEndVideoCodingKHR:
+        {
+            return "OP_vkCmdEndVideoCodingKHR";
+        }
+#endif
 #ifdef VK_KHR_performance_query
         case OP_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR:
         {
@@ -28625,12 +35993,30 @@
             return "OP_vkGetPhysicalDeviceToolPropertiesEXT";
         }
 #endif
+#ifdef VK_EXT_acquire_drm_display
+        case OP_vkGetDrmDisplayEXT:
+        {
+            return "OP_vkGetDrmDisplayEXT";
+        }
+#endif
 #ifdef VK_VERSION_1_2
         case OP_vkCmdDrawIndirectCount:
         {
             return "OP_vkCmdDrawIndirectCount";
         }
 #endif
+#ifdef VK_KHR_synchronization2
+        case OP_vkCmdResetEvent2KHR:
+        {
+            return "OP_vkCmdResetEvent2KHR";
+        }
+#endif
+#ifdef VK_EXT_multi_draw
+        case OP_vkCmdDrawMultiIndexedEXT:
+        {
+            return "OP_vkCmdDrawMultiIndexedEXT";
+        }
+#endif
 #ifdef VK_EXT_transform_feedback
         case OP_vkCmdDrawIndirectByteCountEXT:
         {
@@ -28685,12 +36071,30 @@
             return "OP_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV";
         }
 #endif
+#ifdef VK_KHR_synchronization2
+        case OP_vkGetQueueCheckpointData2NV:
+        {
+            return "OP_vkGetQueueCheckpointData2NV";
+        }
+#endif
 #ifdef VK_NV_device_generated_commands
         case OP_vkDestroyIndirectCommandsLayoutNV:
         {
             return "OP_vkDestroyIndirectCommandsLayoutNV";
         }
 #endif
+#ifdef VK_KHR_synchronization2
+        case OP_vkQueueSubmit2KHR:
+        {
+            return "OP_vkQueueSubmit2KHR";
+        }
+#endif
+#ifdef VK_NV_acquire_winrt_display
+        case OP_vkGetWinrtDisplayNV:
+        {
+            return "OP_vkGetWinrtDisplayNV";
+        }
+#endif
 #ifdef VK_EXT_transform_feedback
         case OP_vkCmdBeginTransformFeedbackEXT:
         {
@@ -28715,6 +36119,12 @@
             return "OP_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT";
         }
 #endif
+#ifdef VK_KHR_video_encode_queue
+        case OP_vkCmdEncodeVideoKHR:
+        {
+            return "OP_vkCmdEncodeVideoKHR";
+        }
+#endif
 #ifdef VK_INTEL_performance_query
         case OP_vkUninitializePerformanceApiINTEL:
         {
@@ -28727,6 +36137,12 @@
             return "OP_vkCmdPreprocessGeneratedCommandsNV";
         }
 #endif
+#ifdef VK_KHR_dynamic_rendering
+        case OP_vkCmdBeginRenderingKHR:
+        {
+            return "OP_vkCmdBeginRenderingKHR";
+        }
+#endif
 #ifdef VK_EXT_headless_surface
         case OP_vkCreateHeadlessSurfaceEXT:
         {
@@ -28739,6 +36155,24 @@
             return "OP_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR";
         }
 #endif
+#ifdef VK_HUAWEI_invocation_mask
+        case OP_vkCmdBindInvocationMaskHUAWEI:
+        {
+            return "OP_vkCmdBindInvocationMaskHUAWEI";
+        }
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+        case OP_vkImportSemaphoreZirconHandleFUCHSIA:
+        {
+            return "OP_vkImportSemaphoreZirconHandleFUCHSIA";
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+        case OP_vkCmdSetPrimitiveRestartEnableEXT:
+        {
+            return "OP_vkCmdSetPrimitiveRestartEnableEXT";
+        }
+#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 e4831e8..28058c4 100644
--- a/system/vulkan_enc/goldfish_vk_marshaling_guest.h
+++ b/system/vulkan_enc/goldfish_vk_marshaling_guest.h
@@ -184,6 +184,16 @@
     VkStructureType rootType,
     VkMemoryBarrier* forUnmarshaling);
 
+void marshal_VkPipelineCacheHeaderVersionOne(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPipelineCacheHeaderVersionOne* forMarshaling);
+
+void unmarshal_VkPipelineCacheHeaderVersionOne(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPipelineCacheHeaderVersionOne* forUnmarshaling);
+
 void marshal_VkAllocationCallbacks(
     VulkanStreamGuest* vkStream,
     VkStructureType rootType,
@@ -2796,6 +2806,291 @@
 #endif
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
+#ifdef VK_KHR_video_queue
+void marshal_VkVideoQueueFamilyProperties2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoQueueFamilyProperties2KHR* forMarshaling);
+
+void unmarshal_VkVideoQueueFamilyProperties2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoQueueFamilyProperties2KHR* forUnmarshaling);
+
+void marshal_VkVideoProfileKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoProfileKHR* forMarshaling);
+
+void unmarshal_VkVideoProfileKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoProfileKHR* forUnmarshaling);
+
+void marshal_VkVideoProfilesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoProfilesKHR* forMarshaling);
+
+void unmarshal_VkVideoProfilesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoProfilesKHR* forUnmarshaling);
+
+void marshal_VkVideoCapabilitiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoCapabilitiesKHR* forMarshaling);
+
+void unmarshal_VkVideoCapabilitiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoCapabilitiesKHR* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceVideoFormatInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceVideoFormatInfoKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceVideoFormatInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceVideoFormatInfoKHR* forUnmarshaling);
+
+void marshal_VkVideoFormatPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoFormatPropertiesKHR* forMarshaling);
+
+void unmarshal_VkVideoFormatPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoFormatPropertiesKHR* forUnmarshaling);
+
+void marshal_VkVideoPictureResourceKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoPictureResourceKHR* forMarshaling);
+
+void unmarshal_VkVideoPictureResourceKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoPictureResourceKHR* forUnmarshaling);
+
+void marshal_VkVideoReferenceSlotKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoReferenceSlotKHR* forMarshaling);
+
+void unmarshal_VkVideoReferenceSlotKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoReferenceSlotKHR* forUnmarshaling);
+
+void marshal_VkVideoGetMemoryPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoGetMemoryPropertiesKHR* forMarshaling);
+
+void unmarshal_VkVideoGetMemoryPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoGetMemoryPropertiesKHR* forUnmarshaling);
+
+void marshal_VkVideoBindMemoryKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoBindMemoryKHR* forMarshaling);
+
+void unmarshal_VkVideoBindMemoryKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoBindMemoryKHR* forUnmarshaling);
+
+void marshal_VkVideoSessionCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoSessionCreateInfoKHR* forMarshaling);
+
+void unmarshal_VkVideoSessionCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoSessionCreateInfoKHR* forUnmarshaling);
+
+void marshal_VkVideoSessionParametersCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoSessionParametersCreateInfoKHR* forMarshaling);
+
+void unmarshal_VkVideoSessionParametersCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoSessionParametersCreateInfoKHR* forUnmarshaling);
+
+void marshal_VkVideoSessionParametersUpdateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoSessionParametersUpdateInfoKHR* forMarshaling);
+
+void unmarshal_VkVideoSessionParametersUpdateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoSessionParametersUpdateInfoKHR* forUnmarshaling);
+
+void marshal_VkVideoBeginCodingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoBeginCodingInfoKHR* forMarshaling);
+
+void unmarshal_VkVideoBeginCodingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoBeginCodingInfoKHR* forUnmarshaling);
+
+void marshal_VkVideoEndCodingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEndCodingInfoKHR* forMarshaling);
+
+void unmarshal_VkVideoEndCodingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEndCodingInfoKHR* forUnmarshaling);
+
+void marshal_VkVideoCodingControlInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoCodingControlInfoKHR* forMarshaling);
+
+void unmarshal_VkVideoCodingControlInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoCodingControlInfoKHR* forUnmarshaling);
+
+#define OP_vkGetPhysicalDeviceVideoCapabilitiesKHR 248113462
+#define OP_vkGetPhysicalDeviceVideoFormatPropertiesKHR 261873967
+#define OP_vkCreateVideoSessionKHR 227974422
+#define OP_vkDestroyVideoSessionKHR 239043215
+#define OP_vkGetVideoSessionMemoryRequirementsKHR 256181716
+#define OP_vkBindVideoSessionMemoryKHR 215994619
+#define OP_vkCreateVideoSessionParametersKHR 265164680
+#define OP_vkUpdateVideoSessionParametersKHR 261262143
+#define OP_vkDestroyVideoSessionParametersKHR 237919724
+#define OP_vkCmdBeginVideoCodingKHR 239581372
+#define OP_vkCmdEndVideoCodingKHR 279828574
+#define OP_vkCmdControlVideoCodingKHR 252933003
+#endif
+#ifdef VK_KHR_video_decode_queue
+void marshal_VkVideoDecodeInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeInfoKHR* forMarshaling);
+
+void unmarshal_VkVideoDecodeInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeInfoKHR* forUnmarshaling);
+
+#define OP_vkCmdDecodeVideoKHR 275796951
+#endif
+#ifdef VK_KHR_dynamic_rendering
+void marshal_VkRenderingAttachmentInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkRenderingAttachmentInfoKHR* forMarshaling);
+
+void unmarshal_VkRenderingAttachmentInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkRenderingAttachmentInfoKHR* forUnmarshaling);
+
+void marshal_VkRenderingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkRenderingInfoKHR* forMarshaling);
+
+void unmarshal_VkRenderingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkRenderingInfoKHR* forUnmarshaling);
+
+void marshal_VkPipelineRenderingCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPipelineRenderingCreateInfoKHR* forMarshaling);
+
+void unmarshal_VkPipelineRenderingCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPipelineRenderingCreateInfoKHR* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceDynamicRenderingFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceDynamicRenderingFeaturesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceDynamicRenderingFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceDynamicRenderingFeaturesKHR* forUnmarshaling);
+
+void marshal_VkCommandBufferInheritanceRenderingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCommandBufferInheritanceRenderingInfoKHR* forMarshaling);
+
+void unmarshal_VkCommandBufferInheritanceRenderingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkCommandBufferInheritanceRenderingInfoKHR* forUnmarshaling);
+
+#define OP_vkCmdBeginRenderingKHR 298092805
+#define OP_vkCmdEndRenderingKHR 200651584
+void marshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkRenderingFragmentShadingRateAttachmentInfoKHR* forMarshaling);
+
+void unmarshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkRenderingFragmentShadingRateAttachmentInfoKHR* forUnmarshaling);
+
+void marshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkRenderingFragmentDensityMapAttachmentInfoEXT* forMarshaling);
+
+void unmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkRenderingFragmentDensityMapAttachmentInfoEXT* forUnmarshaling);
+
+void marshal_VkAttachmentSampleCountInfoAMD(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAttachmentSampleCountInfoAMD* forMarshaling);
+
+void unmarshal_VkAttachmentSampleCountInfoAMD(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkAttachmentSampleCountInfoAMD* forUnmarshaling);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkAttachmentSampleCountInfoAMD, marshal_VkAttachmentSampleCountInfoNV)
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkAttachmentSampleCountInfoAMD, unmarshal_VkAttachmentSampleCountInfoNV)
+
+void marshal_VkMultiviewPerViewAttributesInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMultiviewPerViewAttributesInfoNVX* forMarshaling);
+
+void unmarshal_VkMultiviewPerViewAttributesInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkMultiviewPerViewAttributesInfoNVX* forUnmarshaling);
+
+#endif
 #ifdef VK_KHR_multiview
 DEFINE_ALIAS_FUNCTION(marshal_VkRenderPassMultiviewCreateInfo, marshal_VkRenderPassMultiviewCreateInfoKHR)
 
@@ -3852,6 +4147,19 @@
 DEFINE_ALIAS_FUNCTION(unmarshal_VkAttachmentDescriptionStencilLayout, unmarshal_VkAttachmentDescriptionStencilLayoutKHR)
 
 #endif
+#ifdef VK_KHR_present_wait
+void marshal_VkPhysicalDevicePresentWaitFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDevicePresentWaitFeaturesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDevicePresentWaitFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDevicePresentWaitFeaturesKHR* forUnmarshaling);
+
+#define OP_vkWaitForPresentKHR 263215580
+#endif
 #ifdef VK_KHR_uniform_buffer_standard_layout
 DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures, marshal_VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR)
 
@@ -3965,6 +4273,28 @@
 #define OP_vkGetPipelineExecutableStatisticsKHR 271191699
 #define OP_vkGetPipelineExecutableInternalRepresentationsKHR 274148497
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+void marshal_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* forUnmarshaling);
+
+#endif
 #ifdef VK_KHR_pipeline_library
 void marshal_VkPipelineLibraryCreateInfoKHR(
     VulkanStreamGuest* vkStream,
@@ -3979,6 +4309,197 @@
 #endif
 #ifdef VK_KHR_shader_non_semantic_info
 #endif
+#ifdef VK_KHR_present_id
+void marshal_VkPresentIdKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPresentIdKHR* forMarshaling);
+
+void unmarshal_VkPresentIdKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPresentIdKHR* forUnmarshaling);
+
+void marshal_VkPhysicalDevicePresentIdFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDevicePresentIdFeaturesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDevicePresentIdFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDevicePresentIdFeaturesKHR* forUnmarshaling);
+
+#endif
+#ifdef VK_KHR_video_encode_queue
+void marshal_VkVideoEncodeInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeInfoKHR* forMarshaling);
+
+void unmarshal_VkVideoEncodeInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeInfoKHR* forUnmarshaling);
+
+void marshal_VkVideoEncodeRateControlInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeRateControlInfoKHR* forMarshaling);
+
+void unmarshal_VkVideoEncodeRateControlInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeRateControlInfoKHR* forUnmarshaling);
+
+#define OP_vkCmdEncodeVideoKHR 295869356
+#endif
+#ifdef VK_KHR_synchronization2
+void marshal_VkMemoryBarrier2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMemoryBarrier2KHR* forMarshaling);
+
+void unmarshal_VkMemoryBarrier2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkMemoryBarrier2KHR* forUnmarshaling);
+
+void marshal_VkBufferMemoryBarrier2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferMemoryBarrier2KHR* forMarshaling);
+
+void unmarshal_VkBufferMemoryBarrier2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkBufferMemoryBarrier2KHR* forUnmarshaling);
+
+void marshal_VkImageMemoryBarrier2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImageMemoryBarrier2KHR* forMarshaling);
+
+void unmarshal_VkImageMemoryBarrier2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkImageMemoryBarrier2KHR* forUnmarshaling);
+
+void marshal_VkDependencyInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDependencyInfoKHR* forMarshaling);
+
+void unmarshal_VkDependencyInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkDependencyInfoKHR* forUnmarshaling);
+
+void marshal_VkSemaphoreSubmitInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSemaphoreSubmitInfoKHR* forMarshaling);
+
+void unmarshal_VkSemaphoreSubmitInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkSemaphoreSubmitInfoKHR* forUnmarshaling);
+
+void marshal_VkCommandBufferSubmitInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCommandBufferSubmitInfoKHR* forMarshaling);
+
+void unmarshal_VkCommandBufferSubmitInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkCommandBufferSubmitInfoKHR* forUnmarshaling);
+
+void marshal_VkSubmitInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSubmitInfo2KHR* forMarshaling);
+
+void unmarshal_VkSubmitInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkSubmitInfo2KHR* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceSynchronization2FeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSynchronization2FeaturesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceSynchronization2FeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceSynchronization2FeaturesKHR* forUnmarshaling);
+
+#define OP_vkCmdSetEvent2KHR 270411360
+#define OP_vkCmdResetEvent2KHR 283215906
+#define OP_vkCmdWaitEvents2KHR 244967758
+#define OP_vkCmdPipelineBarrier2KHR 201310066
+#define OP_vkCmdWriteTimestamp2KHR 252552241
+#define OP_vkQueueSubmit2KHR 293024240
+#define OP_vkCmdWriteBufferMarker2AMD 224701394
+void marshal_VkQueueFamilyCheckpointProperties2NV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkQueueFamilyCheckpointProperties2NV* forMarshaling);
+
+void unmarshal_VkQueueFamilyCheckpointProperties2NV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkQueueFamilyCheckpointProperties2NV* forUnmarshaling);
+
+void marshal_VkCheckpointData2NV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCheckpointData2NV* forMarshaling);
+
+void unmarshal_VkCheckpointData2NV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkCheckpointData2NV* forUnmarshaling);
+
+#define OP_vkGetQueueCheckpointData2NV 292063036
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+void marshal_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* forUnmarshaling);
+
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+void marshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* forUnmarshaling);
+
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+void marshal_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* forUnmarshaling);
+
+#endif
 #ifdef VK_KHR_copy_commands2
 void marshal_VkBufferCopy2KHR(
     VulkanStreamGuest* vkStream,
@@ -4097,6 +4618,63 @@
 #define OP_vkCmdBlitImage2KHR 259838288
 #define OP_vkCmdResolveImage2KHR 254857232
 #endif
+#ifdef VK_KHR_format_feature_flags2
+void marshal_VkFormatProperties3KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkFormatProperties3KHR* forMarshaling);
+
+void unmarshal_VkFormatProperties3KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkFormatProperties3KHR* forUnmarshaling);
+
+#endif
+#ifdef VK_KHR_maintenance4
+void marshal_VkPhysicalDeviceMaintenance4FeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMaintenance4FeaturesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceMaintenance4FeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceMaintenance4FeaturesKHR* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceMaintenance4PropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMaintenance4PropertiesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceMaintenance4PropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceMaintenance4PropertiesKHR* forUnmarshaling);
+
+void marshal_VkDeviceBufferMemoryRequirementsKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDeviceBufferMemoryRequirementsKHR* forMarshaling);
+
+void unmarshal_VkDeviceBufferMemoryRequirementsKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkDeviceBufferMemoryRequirementsKHR* forUnmarshaling);
+
+void marshal_VkDeviceImageMemoryRequirementsKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDeviceImageMemoryRequirementsKHR* forMarshaling);
+
+void unmarshal_VkDeviceImageMemoryRequirementsKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkDeviceImageMemoryRequirementsKHR* forUnmarshaling);
+
+#define OP_vkGetDeviceBufferMemoryRequirementsKHR 201613635
+#define OP_vkGetDeviceImageMemoryRequirementsKHR 243155021
+#define OP_vkGetDeviceImageSparseMemoryRequirementsKHR 275585477
+#endif
 #ifdef VK_ANDROID_native_buffer
 void marshal_VkNativeBufferANDROID(
     VulkanStreamGuest* vkStream,
@@ -4258,6 +4836,43 @@
 #define OP_vkCmdEndQueryIndexedEXT 279821337
 #define OP_vkCmdDrawIndirectByteCountEXT 285235943
 #endif
+#ifdef VK_NVX_binary_import
+void marshal_VkCuModuleCreateInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCuModuleCreateInfoNVX* forMarshaling);
+
+void unmarshal_VkCuModuleCreateInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkCuModuleCreateInfoNVX* forUnmarshaling);
+
+void marshal_VkCuFunctionCreateInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCuFunctionCreateInfoNVX* forMarshaling);
+
+void unmarshal_VkCuFunctionCreateInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkCuFunctionCreateInfoNVX* forUnmarshaling);
+
+void marshal_VkCuLaunchInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCuLaunchInfoNVX* forMarshaling);
+
+void unmarshal_VkCuLaunchInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkCuLaunchInfoNVX* forUnmarshaling);
+
+#define OP_vkCreateCuModuleNVX 227747396
+#define OP_vkCreateCuFunctionNVX 207930440
+#define OP_vkDestroyCuModuleNVX 273754594
+#define OP_vkDestroyCuFunctionNVX 253295828
+#define OP_vkCmdCuLaunchKernelNVX 219961351
+#endif
 #ifdef VK_NVX_image_view_handle
 void marshal_VkImageViewHandleInfoNVX(
     VulkanStreamGuest* vkStream,
@@ -4292,6 +4907,282 @@
 #endif
 #ifdef VK_AMD_shader_ballot
 #endif
+#ifdef VK_EXT_video_encode_h264
+void marshal_VkVideoEncodeH264CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264CapabilitiesEXT* forMarshaling);
+
+void unmarshal_VkVideoEncodeH264CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH264CapabilitiesEXT* forUnmarshaling);
+
+void marshal_VkVideoEncodeH264SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkVideoEncodeH264SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH264SessionCreateInfoEXT* forUnmarshaling);
+
+void marshal_VkVideoEncodeH264SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionParametersAddInfoEXT* forMarshaling);
+
+void unmarshal_VkVideoEncodeH264SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH264SessionParametersAddInfoEXT* forUnmarshaling);
+
+void marshal_VkVideoEncodeH264SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionParametersCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkVideoEncodeH264SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH264SessionParametersCreateInfoEXT* forUnmarshaling);
+
+void marshal_VkVideoEncodeH264DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264DpbSlotInfoEXT* forMarshaling);
+
+void unmarshal_VkVideoEncodeH264DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH264DpbSlotInfoEXT* forUnmarshaling);
+
+void marshal_VkVideoEncodeH264NaluSliceEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264NaluSliceEXT* forMarshaling);
+
+void unmarshal_VkVideoEncodeH264NaluSliceEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH264NaluSliceEXT* forUnmarshaling);
+
+void marshal_VkVideoEncodeH264VclFrameInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264VclFrameInfoEXT* forMarshaling);
+
+void unmarshal_VkVideoEncodeH264VclFrameInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH264VclFrameInfoEXT* forUnmarshaling);
+
+void marshal_VkVideoEncodeH264EmitPictureParametersEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264EmitPictureParametersEXT* forMarshaling);
+
+void unmarshal_VkVideoEncodeH264EmitPictureParametersEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH264EmitPictureParametersEXT* forUnmarshaling);
+
+void marshal_VkVideoEncodeH264ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264ProfileEXT* forMarshaling);
+
+void unmarshal_VkVideoEncodeH264ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH264ProfileEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_video_encode_h265
+void marshal_VkVideoEncodeH265CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265CapabilitiesEXT* forMarshaling);
+
+void unmarshal_VkVideoEncodeH265CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH265CapabilitiesEXT* forUnmarshaling);
+
+void marshal_VkVideoEncodeH265SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkVideoEncodeH265SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH265SessionCreateInfoEXT* forUnmarshaling);
+
+void marshal_VkVideoEncodeH265SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionParametersAddInfoEXT* forMarshaling);
+
+void unmarshal_VkVideoEncodeH265SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH265SessionParametersAddInfoEXT* forUnmarshaling);
+
+void marshal_VkVideoEncodeH265SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionParametersCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkVideoEncodeH265SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH265SessionParametersCreateInfoEXT* forUnmarshaling);
+
+void marshal_VkVideoEncodeH265DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265DpbSlotInfoEXT* forMarshaling);
+
+void unmarshal_VkVideoEncodeH265DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH265DpbSlotInfoEXT* forUnmarshaling);
+
+void marshal_VkVideoEncodeH265ReferenceListsEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265ReferenceListsEXT* forMarshaling);
+
+void unmarshal_VkVideoEncodeH265ReferenceListsEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH265ReferenceListsEXT* forUnmarshaling);
+
+void marshal_VkVideoEncodeH265NaluSliceEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265NaluSliceEXT* forMarshaling);
+
+void unmarshal_VkVideoEncodeH265NaluSliceEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH265NaluSliceEXT* forUnmarshaling);
+
+void marshal_VkVideoEncodeH265VclFrameInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265VclFrameInfoEXT* forMarshaling);
+
+void unmarshal_VkVideoEncodeH265VclFrameInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH265VclFrameInfoEXT* forUnmarshaling);
+
+void marshal_VkVideoEncodeH265EmitPictureParametersEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265EmitPictureParametersEXT* forMarshaling);
+
+void unmarshal_VkVideoEncodeH265EmitPictureParametersEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH265EmitPictureParametersEXT* forUnmarshaling);
+
+void marshal_VkVideoEncodeH265ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265ProfileEXT* forMarshaling);
+
+void unmarshal_VkVideoEncodeH265ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoEncodeH265ProfileEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_video_decode_h264
+void marshal_VkVideoDecodeH264ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264ProfileEXT* forMarshaling);
+
+void unmarshal_VkVideoDecodeH264ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH264ProfileEXT* forUnmarshaling);
+
+void marshal_VkVideoDecodeH264CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264CapabilitiesEXT* forMarshaling);
+
+void unmarshal_VkVideoDecodeH264CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH264CapabilitiesEXT* forUnmarshaling);
+
+void marshal_VkVideoDecodeH264SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkVideoDecodeH264SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH264SessionCreateInfoEXT* forUnmarshaling);
+
+void marshal_VkVideoDecodeH264SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionParametersAddInfoEXT* forMarshaling);
+
+void unmarshal_VkVideoDecodeH264SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH264SessionParametersAddInfoEXT* forUnmarshaling);
+
+void marshal_VkVideoDecodeH264SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionParametersCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkVideoDecodeH264SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH264SessionParametersCreateInfoEXT* forUnmarshaling);
+
+void marshal_VkVideoDecodeH264PictureInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264PictureInfoEXT* forMarshaling);
+
+void unmarshal_VkVideoDecodeH264PictureInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH264PictureInfoEXT* forUnmarshaling);
+
+void marshal_VkVideoDecodeH264MvcEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264MvcEXT* forMarshaling);
+
+void unmarshal_VkVideoDecodeH264MvcEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH264MvcEXT* forUnmarshaling);
+
+void marshal_VkVideoDecodeH264DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264DpbSlotInfoEXT* forMarshaling);
+
+void unmarshal_VkVideoDecodeH264DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH264DpbSlotInfoEXT* forUnmarshaling);
+
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
 void marshal_VkTextureLODGatherFormatPropertiesAMD(
     VulkanStreamGuest* vkStream,
@@ -4952,6 +5843,16 @@
 
 #define OP_vkGetAndroidHardwareBufferPropertiesANDROID 20305
 #define OP_vkGetMemoryAndroidHardwareBufferANDROID 20306
+void marshal_VkAndroidHardwareBufferFormatProperties2ANDROID(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAndroidHardwareBufferFormatProperties2ANDROID* forMarshaling);
+
+void unmarshal_VkAndroidHardwareBufferFormatProperties2ANDROID(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkAndroidHardwareBufferFormatProperties2ANDROID* forUnmarshaling);
+
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
 DEFINE_ALIAS_FUNCTION(marshal_VkSamplerReductionModeCreateInfo, marshal_VkSamplerReductionModeCreateInfoEXT)
@@ -5241,6 +6142,26 @@
     VkImageDrmFormatModifierPropertiesEXT* forUnmarshaling);
 
 #define OP_vkGetImageDrmFormatModifierPropertiesEXT 251301237
+void marshal_VkDrmFormatModifierProperties2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDrmFormatModifierProperties2EXT* forMarshaling);
+
+void unmarshal_VkDrmFormatModifierProperties2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkDrmFormatModifierProperties2EXT* forUnmarshaling);
+
+void marshal_VkDrmFormatModifierPropertiesList2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDrmFormatModifierPropertiesList2EXT* forMarshaling);
+
+void unmarshal_VkDrmFormatModifierPropertiesList2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkDrmFormatModifierPropertiesList2EXT* forUnmarshaling);
+
 #endif
 #ifdef VK_EXT_validation_cache
 void marshal_VkValidationCacheCreateInfoEXT(
@@ -5676,6 +6597,78 @@
     VkPhysicalDeviceShaderCorePropertiesAMD* forUnmarshaling);
 
 #endif
+#ifdef VK_EXT_video_decode_h265
+void marshal_VkVideoDecodeH265ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265ProfileEXT* forMarshaling);
+
+void unmarshal_VkVideoDecodeH265ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH265ProfileEXT* forUnmarshaling);
+
+void marshal_VkVideoDecodeH265CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265CapabilitiesEXT* forMarshaling);
+
+void unmarshal_VkVideoDecodeH265CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH265CapabilitiesEXT* forUnmarshaling);
+
+void marshal_VkVideoDecodeH265SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkVideoDecodeH265SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH265SessionCreateInfoEXT* forUnmarshaling);
+
+void marshal_VkVideoDecodeH265SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionParametersAddInfoEXT* forMarshaling);
+
+void unmarshal_VkVideoDecodeH265SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH265SessionParametersAddInfoEXT* forUnmarshaling);
+
+void marshal_VkVideoDecodeH265SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionParametersCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkVideoDecodeH265SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH265SessionParametersCreateInfoEXT* forUnmarshaling);
+
+void marshal_VkVideoDecodeH265PictureInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265PictureInfoEXT* forMarshaling);
+
+void unmarshal_VkVideoDecodeH265PictureInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH265PictureInfoEXT* forUnmarshaling);
+
+void marshal_VkVideoDecodeH265DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265DpbSlotInfoEXT* forMarshaling);
+
+void unmarshal_VkVideoDecodeH265DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVideoDecodeH265DpbSlotInfoEXT* forUnmarshaling);
+
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
 void marshal_VkDeviceMemoryOverallocationCreateInfoAMD(
     VulkanStreamGuest* vkStream,
@@ -6360,6 +7353,38 @@
     VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* forUnmarshaling);
 
 #endif
+#ifdef VK_EXT_provoking_vertex
+void marshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceProvokingVertexFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceProvokingVertexFeaturesEXT* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceProvokingVertexPropertiesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceProvokingVertexPropertiesEXT* forUnmarshaling);
+
+void marshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* forUnmarshaling);
+
+#endif
 #ifdef VK_EXT_full_screen_exclusive
 void marshal_VkSurfaceFullScreenExclusiveInfoEXT(
     VulkanStreamGuest* vkStream,
@@ -6497,6 +7522,18 @@
 #define OP_vkCmdSetStencilTestEnableEXT 286438749
 #define OP_vkCmdSetStencilOpEXT 277159578
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+void marshal_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* forUnmarshaling);
+
+#endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 void marshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
     VulkanStreamGuest* vkStream,
@@ -6647,6 +7684,28 @@
 #define OP_vkCreateIndirectCommandsLayoutNV 285310710
 #define OP_vkDestroyIndirectCommandsLayoutNV 292584135
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+void marshal_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceInheritedViewportScissorFeaturesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceInheritedViewportScissorFeaturesNV* forUnmarshaling);
+
+void marshal_VkCommandBufferInheritanceViewportScissorInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCommandBufferInheritanceViewportScissorInfoNV* forMarshaling);
+
+void unmarshal_VkCommandBufferInheritanceViewportScissorInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkCommandBufferInheritanceViewportScissorInfoNV* forUnmarshaling);
+
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
 void marshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
     VulkanStreamGuest* vkStream,
@@ -6723,6 +7782,10 @@
     VkDeviceDeviceMemoryReportCreateInfoEXT* forUnmarshaling);
 
 #endif
+#ifdef VK_EXT_acquire_drm_display
+#define OP_vkAcquireDrmDisplayEXT 249820259
+#define OP_vkGetDrmDisplayEXT 282532459
+#endif
 #ifdef VK_EXT_robustness2
 void marshal_VkPhysicalDeviceRobustness2FeaturesEXT(
     VulkanStreamGuest* vkStream,
@@ -6884,6 +7947,110 @@
 
 #define OP_vkCmdSetFragmentShadingRateEnumNV 264649847
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+void marshal_VkDeviceOrHostAddressConstKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDeviceOrHostAddressConstKHR* forMarshaling);
+
+void unmarshal_VkDeviceOrHostAddressConstKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkDeviceOrHostAddressConstKHR* forUnmarshaling);
+
+void marshal_VkAccelerationStructureGeometryMotionTrianglesDataNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureGeometryMotionTrianglesDataNV* forMarshaling);
+
+void unmarshal_VkAccelerationStructureGeometryMotionTrianglesDataNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkAccelerationStructureGeometryMotionTrianglesDataNV* forUnmarshaling);
+
+void marshal_VkAccelerationStructureMotionInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInfoNV* forMarshaling);
+
+void unmarshal_VkAccelerationStructureMotionInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkAccelerationStructureMotionInfoNV* forUnmarshaling);
+
+void marshal_VkAccelerationStructureMatrixMotionInstanceNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureMatrixMotionInstanceNV* forMarshaling);
+
+void unmarshal_VkAccelerationStructureMatrixMotionInstanceNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkAccelerationStructureMatrixMotionInstanceNV* forUnmarshaling);
+
+void marshal_VkSRTDataNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSRTDataNV* forMarshaling);
+
+void unmarshal_VkSRTDataNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkSRTDataNV* forUnmarshaling);
+
+void marshal_VkAccelerationStructureSRTMotionInstanceNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureSRTMotionInstanceNV* forMarshaling);
+
+void unmarshal_VkAccelerationStructureSRTMotionInstanceNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkAccelerationStructureSRTMotionInstanceNV* forUnmarshaling);
+
+void marshal_VkAccelerationStructureMotionInstanceDataNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInstanceDataNV* forMarshaling);
+
+void unmarshal_VkAccelerationStructureMotionInstanceDataNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkAccelerationStructureMotionInstanceDataNV* forUnmarshaling);
+
+void marshal_VkAccelerationStructureMotionInstanceNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInstanceNV* forMarshaling);
+
+void unmarshal_VkAccelerationStructureMotionInstanceNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkAccelerationStructureMotionInstanceNV* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+void marshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* forUnmarshaling);
+
+#endif
 #ifdef VK_EXT_fragment_density_map2
 void marshal_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
     VulkanStreamGuest* vkStream,
@@ -6942,6 +8109,22 @@
     VkPhysicalDevice4444FormatsFeaturesEXT* forUnmarshaling);
 
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+void marshal_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_NV_acquire_winrt_display
+#define OP_vkAcquireWinrtDisplayNV 274295059
+#define OP_vkGetWinrtDisplayNV 294381219
+#endif
 #ifdef VK_EXT_directfb_surface
 void marshal_VkDirectFBSurfaceCreateInfoEXT(
     VulkanStreamGuest* vkStream,
@@ -6956,6 +8139,384 @@
 #define OP_vkCreateDirectFBSurfaceEXT 220792403
 #define OP_vkGetPhysicalDeviceDirectFBPresentationSupportEXT 285441990
 #endif
+#ifdef VK_VALVE_mutable_descriptor_type
+void marshal_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* forUnmarshaling);
+
+void marshal_VkMutableDescriptorTypeListVALVE(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMutableDescriptorTypeListVALVE* forMarshaling);
+
+void unmarshal_VkMutableDescriptorTypeListVALVE(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkMutableDescriptorTypeListVALVE* forUnmarshaling);
+
+void marshal_VkMutableDescriptorTypeCreateInfoVALVE(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMutableDescriptorTypeCreateInfoVALVE* forMarshaling);
+
+void unmarshal_VkMutableDescriptorTypeCreateInfoVALVE(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkMutableDescriptorTypeCreateInfoVALVE* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+void marshal_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* forUnmarshaling);
+
+void marshal_VkVertexInputBindingDescription2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVertexInputBindingDescription2EXT* forMarshaling);
+
+void unmarshal_VkVertexInputBindingDescription2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVertexInputBindingDescription2EXT* forUnmarshaling);
+
+void marshal_VkVertexInputAttributeDescription2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVertexInputAttributeDescription2EXT* forMarshaling);
+
+void unmarshal_VkVertexInputAttributeDescription2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkVertexInputAttributeDescription2EXT* forUnmarshaling);
+
+#define OP_vkCmdSetVertexInputEXT 211522810
+#endif
+#ifdef VK_EXT_physical_device_drm
+void marshal_VkPhysicalDeviceDrmPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceDrmPropertiesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceDrmPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceDrmPropertiesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+void marshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_FUCHSIA_external_memory
+void marshal_VkImportMemoryZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImportMemoryZirconHandleInfoFUCHSIA* forMarshaling);
+
+void unmarshal_VkImportMemoryZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkImportMemoryZirconHandleInfoFUCHSIA* forUnmarshaling);
+
+void marshal_VkMemoryZirconHandlePropertiesFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMemoryZirconHandlePropertiesFUCHSIA* forMarshaling);
+
+void unmarshal_VkMemoryZirconHandlePropertiesFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkMemoryZirconHandlePropertiesFUCHSIA* forUnmarshaling);
+
+void marshal_VkMemoryGetZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMemoryGetZirconHandleInfoFUCHSIA* forMarshaling);
+
+void unmarshal_VkMemoryGetZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkMemoryGetZirconHandleInfoFUCHSIA* forUnmarshaling);
+
+#define OP_vkGetMemoryZirconHandleFUCHSIA 215089868
+#define OP_vkGetMemoryZirconHandlePropertiesFUCHSIA 213247019
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+void marshal_VkImportSemaphoreZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImportSemaphoreZirconHandleInfoFUCHSIA* forMarshaling);
+
+void unmarshal_VkImportSemaphoreZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkImportSemaphoreZirconHandleInfoFUCHSIA* forUnmarshaling);
+
+void marshal_VkSemaphoreGetZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSemaphoreGetZirconHandleInfoFUCHSIA* forMarshaling);
+
+void unmarshal_VkSemaphoreGetZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkSemaphoreGetZirconHandleInfoFUCHSIA* forUnmarshaling);
+
+#define OP_vkImportSemaphoreZirconHandleFUCHSIA 299314530
+#define OP_vkGetSemaphoreZirconHandleFUCHSIA 248728905
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+void marshal_VkBufferCollectionCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferCollectionCreateInfoFUCHSIA* forMarshaling);
+
+void unmarshal_VkBufferCollectionCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkBufferCollectionCreateInfoFUCHSIA* forUnmarshaling);
+
+void marshal_VkImportMemoryBufferCollectionFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImportMemoryBufferCollectionFUCHSIA* forMarshaling);
+
+void unmarshal_VkImportMemoryBufferCollectionFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkImportMemoryBufferCollectionFUCHSIA* forUnmarshaling);
+
+void marshal_VkBufferCollectionImageCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferCollectionImageCreateInfoFUCHSIA* forMarshaling);
+
+void unmarshal_VkBufferCollectionImageCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkBufferCollectionImageCreateInfoFUCHSIA* forUnmarshaling);
+
+void marshal_VkBufferCollectionConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferCollectionConstraintsInfoFUCHSIA* forMarshaling);
+
+void unmarshal_VkBufferCollectionConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkBufferCollectionConstraintsInfoFUCHSIA* forUnmarshaling);
+
+void marshal_VkBufferConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferConstraintsInfoFUCHSIA* forMarshaling);
+
+void unmarshal_VkBufferConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkBufferConstraintsInfoFUCHSIA* forUnmarshaling);
+
+void marshal_VkBufferCollectionBufferCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferCollectionBufferCreateInfoFUCHSIA* forMarshaling);
+
+void unmarshal_VkBufferCollectionBufferCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkBufferCollectionBufferCreateInfoFUCHSIA* forUnmarshaling);
+
+void marshal_VkSysmemColorSpaceFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSysmemColorSpaceFUCHSIA* forMarshaling);
+
+void unmarshal_VkSysmemColorSpaceFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkSysmemColorSpaceFUCHSIA* forUnmarshaling);
+
+void marshal_VkBufferCollectionPropertiesFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferCollectionPropertiesFUCHSIA* forMarshaling);
+
+void unmarshal_VkBufferCollectionPropertiesFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkBufferCollectionPropertiesFUCHSIA* forUnmarshaling);
+
+void marshal_VkImageFormatConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImageFormatConstraintsInfoFUCHSIA* forMarshaling);
+
+void unmarshal_VkImageFormatConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkImageFormatConstraintsInfoFUCHSIA* forUnmarshaling);
+
+void marshal_VkImageConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImageConstraintsInfoFUCHSIA* forMarshaling);
+
+void unmarshal_VkImageConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkImageConstraintsInfoFUCHSIA* forUnmarshaling);
+
+#define OP_vkCreateBufferCollectionFUCHSIA 277502099
+#define OP_vkSetBufferCollectionImageConstraintsFUCHSIA 274938613
+#define OP_vkSetBufferCollectionBufferConstraintsFUCHSIA 212810472
+#define OP_vkDestroyBufferCollectionFUCHSIA 224938328
+#define OP_vkGetBufferCollectionPropertiesFUCHSIA 242149782
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+void marshal_VkSubpassShadingPipelineCreateInfoHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSubpassShadingPipelineCreateInfoHUAWEI* forMarshaling);
+
+void unmarshal_VkSubpassShadingPipelineCreateInfoHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkSubpassShadingPipelineCreateInfoHUAWEI* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* forUnmarshaling);
+
+#define OP_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI 225288634
+#define OP_vkCmdSubpassShadingHUAWEI 220327607
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+void marshal_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* forUnmarshaling);
+
+#define OP_vkCmdBindInvocationMaskHUAWEI 299305130
+#endif
+#ifdef VK_NV_external_memory_rdma
+void marshal_VkMemoryGetRemoteAddressInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMemoryGetRemoteAddressInfoNV* forMarshaling);
+
+void unmarshal_VkMemoryGetRemoteAddressInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkMemoryGetRemoteAddressInfoNV* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* forUnmarshaling);
+
+#define OP_vkGetMemoryRemoteAddressNV 256917597
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+void marshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* forUnmarshaling);
+
+#define OP_vkCmdSetPatchControlPointsEXT 208680354
+#define OP_vkCmdSetRasterizerDiscardEnableEXT 245221405
+#define OP_vkCmdSetDepthBiasEnableEXT 259472348
+#define OP_vkCmdSetLogicOpEXT 267481927
+#define OP_vkCmdSetPrimitiveRestartEnableEXT 299567883
+#endif
+#ifdef VK_QNX_screen_surface
+void marshal_VkScreenSurfaceCreateInfoQNX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkScreenSurfaceCreateInfoQNX* forMarshaling);
+
+void unmarshal_VkScreenSurfaceCreateInfoQNX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkScreenSurfaceCreateInfoQNX* forUnmarshaling);
+
+#define OP_vkCreateScreenSurfaceQNX 224377168
+#define OP_vkGetPhysicalDeviceScreenPresentationSupportQNX 258528902
+#endif
+#ifdef VK_EXT_color_write_enable
+void marshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceColorWriteEnableFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceColorWriteEnableFeaturesEXT* forUnmarshaling);
+
+void marshal_VkPipelineColorWriteCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPipelineColorWriteCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkPipelineColorWriteCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPipelineColorWriteCreateInfoEXT* forUnmarshaling);
+
+#define OP_vkCmdSetColorWriteEnableEXT 202223297
+#endif
 #ifdef VK_GOOGLE_gfxstream
 void marshal_VkImportColorBufferGOOGLE(
     VulkanStreamGuest* vkStream,
@@ -7009,6 +8570,109 @@
 #define OP_vkCollectDescriptorPoolIdsGOOGLE 213659202
 #define OP_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE 243985229
 #endif
+#ifdef VK_EXT_global_priority_query
+void marshal_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* forUnmarshaling);
+
+void marshal_VkQueueFamilyGlobalPriorityPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkQueueFamilyGlobalPriorityPropertiesEXT* forMarshaling);
+
+void unmarshal_VkQueueFamilyGlobalPriorityPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkQueueFamilyGlobalPriorityPropertiesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_multi_draw
+void marshal_VkPhysicalDeviceMultiDrawFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMultiDrawFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceMultiDrawFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceMultiDrawFeaturesEXT* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceMultiDrawPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMultiDrawPropertiesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceMultiDrawPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceMultiDrawPropertiesEXT* forUnmarshaling);
+
+void marshal_VkMultiDrawInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMultiDrawInfoEXT* forMarshaling);
+
+void unmarshal_VkMultiDrawInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkMultiDrawInfoEXT* forUnmarshaling);
+
+void marshal_VkMultiDrawIndexedInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMultiDrawIndexedInfoEXT* forMarshaling);
+
+void unmarshal_VkMultiDrawIndexedInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkMultiDrawIndexedInfoEXT* forUnmarshaling);
+
+#define OP_vkCmdDrawMultiEXT 263629455
+#define OP_vkCmdDrawMultiIndexedEXT 284764463
+#endif
+#ifdef VK_EXT_load_store_op_none
+#endif
+#ifdef VK_EXT_border_color_swizzle
+void marshal_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* forUnmarshaling);
+
+void marshal_VkSamplerBorderColorComponentMappingCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSamplerBorderColorComponentMappingCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkSamplerBorderColorComponentMappingCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkSamplerBorderColorComponentMappingCreateInfoEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+void marshal_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* forUnmarshaling);
+
+#define OP_vkSetDeviceMemoryPriorityEXT 223991870
+#endif
 #ifdef VK_KHR_acceleration_structure
 void marshal_VkDeviceOrHostAddressKHR(
     VulkanStreamGuest* vkStream,
@@ -7020,16 +8684,6 @@
     VkStructureType rootType,
     VkDeviceOrHostAddressKHR* forUnmarshaling);
 
-void marshal_VkDeviceOrHostAddressConstKHR(
-    VulkanStreamGuest* vkStream,
-    VkStructureType rootType,
-    const VkDeviceOrHostAddressConstKHR* forMarshaling);
-
-void unmarshal_VkDeviceOrHostAddressConstKHR(
-    VulkanStreamGuest* vkStream,
-    VkStructureType rootType,
-    VkDeviceOrHostAddressConstKHR* forUnmarshaling);
-
 void marshal_VkAccelerationStructureBuildRangeInfoKHR(
     VulkanStreamGuest* vkStream,
     VkStructureType rootType,
diff --git a/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp b/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp
index c09d716..3627a05 100644
--- a/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp
@@ -314,6 +314,26 @@
     *ptr += sizeof(VkAccessFlags);
 }
 
+void reservedmarshal_VkPipelineCacheHeaderVersionOne(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPipelineCacheHeaderVersionOne* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->headerSize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkPipelineCacheHeaderVersion*)&forMarshaling->headerVersion, sizeof(VkPipelineCacheHeaderVersion));
+    *ptr += sizeof(VkPipelineCacheHeaderVersion);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->vendorID, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->deviceID, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint8_t*)forMarshaling->pipelineCacheUUID, VK_UUID_SIZE * sizeof(uint8_t));
+    *ptr += VK_UUID_SIZE * sizeof(uint8_t);
+}
+
 void reservedmarshal_VkAllocationCallbacks(
     VulkanStreamGuest* vkStream,
     VkStructureType rootType,
@@ -7043,6 +7063,682 @@
 #endif
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
+#ifdef VK_KHR_video_queue
+void reservedmarshal_VkVideoQueueFamilyProperties2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoQueueFamilyProperties2KHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkVideoCodecOperationFlagsKHR*)&forMarshaling->videoCodecOperations, sizeof(VkVideoCodecOperationFlagsKHR));
+    *ptr += sizeof(VkVideoCodecOperationFlagsKHR);
+}
+
+void reservedmarshal_VkVideoProfileKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoProfileKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkVideoCodecOperationFlagBitsKHR*)&forMarshaling->videoCodecOperation, sizeof(VkVideoCodecOperationFlagBitsKHR));
+    *ptr += sizeof(VkVideoCodecOperationFlagBitsKHR);
+    memcpy(*ptr, (VkVideoChromaSubsamplingFlagsKHR*)&forMarshaling->chromaSubsampling, sizeof(VkVideoChromaSubsamplingFlagsKHR));
+    *ptr += sizeof(VkVideoChromaSubsamplingFlagsKHR);
+    memcpy(*ptr, (VkVideoComponentBitDepthFlagsKHR*)&forMarshaling->lumaBitDepth, sizeof(VkVideoComponentBitDepthFlagsKHR));
+    *ptr += sizeof(VkVideoComponentBitDepthFlagsKHR);
+    memcpy(*ptr, (VkVideoComponentBitDepthFlagsKHR*)&forMarshaling->chromaBitDepth, sizeof(VkVideoComponentBitDepthFlagsKHR));
+    *ptr += sizeof(VkVideoComponentBitDepthFlagsKHR);
+}
+
+void reservedmarshal_VkVideoProfilesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoProfilesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->profileCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    reservedmarshal_VkVideoProfileKHR(vkStream, rootType, (const VkVideoProfileKHR*)(forMarshaling->pProfiles), ptr);
+}
+
+void reservedmarshal_VkVideoCapabilitiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoCapabilitiesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkVideoCapabilityFlagsKHR*)&forMarshaling->capabilityFlags, sizeof(VkVideoCapabilityFlagsKHR));
+    *ptr += sizeof(VkVideoCapabilityFlagsKHR);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->minBitstreamBufferOffsetAlignment, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->minBitstreamBufferSizeAlignment, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    reservedmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->videoPictureExtentGranularity), ptr);
+    reservedmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->minExtent), ptr);
+    reservedmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->maxExtent), ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxReferencePicturesSlotsCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxReferencePicturesActiveCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkPhysicalDeviceVideoFormatInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceVideoFormatInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkImageUsageFlags*)&forMarshaling->imageUsage, sizeof(VkImageUsageFlags));
+    *ptr += sizeof(VkImageUsageFlags);
+    reservedmarshal_VkVideoProfilesKHR(vkStream, rootType, (const VkVideoProfilesKHR*)(forMarshaling->pVideoProfiles), ptr);
+}
+
+void reservedmarshal_VkVideoFormatPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoFormatPropertiesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkFormat*)&forMarshaling->format, sizeof(VkFormat));
+    *ptr += sizeof(VkFormat);
+}
+
+void reservedmarshal_VkVideoPictureResourceKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoPictureResourceKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    reservedmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forMarshaling->codedOffset), ptr);
+    reservedmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->codedExtent), ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImageView((*&forMarshaling->imageViewBinding));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+}
+
+void reservedmarshal_VkVideoReferenceSlotKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoReferenceSlotKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (int8_t*)&forMarshaling->slotIndex, sizeof(int8_t));
+    *ptr += sizeof(int8_t);
+    reservedmarshal_VkVideoPictureResourceKHR(vkStream, rootType, (const VkVideoPictureResourceKHR*)(forMarshaling->pPictureResource), ptr);
+}
+
+void reservedmarshal_VkVideoGetMemoryPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoGetMemoryPropertiesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->memoryBindIndex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    reservedmarshal_VkMemoryRequirements2(vkStream, rootType, (VkMemoryRequirements2*)(forMarshaling->pMemoryRequirements), ptr);
+}
+
+void reservedmarshal_VkVideoBindMemoryKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoBindMemoryKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->memoryBindIndex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    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, (VkDeviceSize*)&forMarshaling->memorySize, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+}
+
+void reservedmarshal_VkVideoSessionCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoSessionCreateInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkVideoSessionCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkVideoSessionCreateFlagsKHR));
+    *ptr += sizeof(VkVideoSessionCreateFlagsKHR);
+    reservedmarshal_VkVideoProfileKHR(vkStream, rootType, (const VkVideoProfileKHR*)(forMarshaling->pVideoProfile), ptr);
+    memcpy(*ptr, (VkFormat*)&forMarshaling->pictureFormat, sizeof(VkFormat));
+    *ptr += sizeof(VkFormat);
+    reservedmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->maxCodedExtent), ptr);
+    memcpy(*ptr, (VkFormat*)&forMarshaling->referencePicturesFormat, sizeof(VkFormat));
+    *ptr += sizeof(VkFormat);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxReferencePicturesSlotsCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxReferencePicturesActiveCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkVideoSessionParametersCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoSessionParametersCreateInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->videoSessionParametersTemplate;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    uint64_t cgen_var_1 = (uint64_t)forMarshaling->videoSession;
+    memcpy((*ptr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+}
+
+void reservedmarshal_VkVideoSessionParametersUpdateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoSessionParametersUpdateInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->updateSequenceCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkVideoBeginCodingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoBeginCodingInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkVideoBeginCodingFlagsKHR*)&forMarshaling->flags, sizeof(VkVideoBeginCodingFlagsKHR));
+    *ptr += sizeof(VkVideoBeginCodingFlagsKHR);
+    memcpy(*ptr, (VkVideoCodingQualityPresetFlagsKHR*)&forMarshaling->codecQualityPreset, sizeof(VkVideoCodingQualityPresetFlagsKHR));
+    *ptr += sizeof(VkVideoCodingQualityPresetFlagsKHR);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->videoSession;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    uint64_t cgen_var_1 = (uint64_t)forMarshaling->videoSessionParameters;
+    memcpy((*ptr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->referenceSlotCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->referenceSlotCount; ++i)
+    {
+        reservedmarshal_VkVideoReferenceSlotKHR(vkStream, rootType, (const VkVideoReferenceSlotKHR*)(forMarshaling->pReferenceSlots + i), ptr);
+    }
+}
+
+void reservedmarshal_VkVideoEndCodingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEndCodingInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkVideoEndCodingFlagsKHR*)&forMarshaling->flags, sizeof(VkVideoEndCodingFlagsKHR));
+    *ptr += sizeof(VkVideoEndCodingFlagsKHR);
+}
+
+void reservedmarshal_VkVideoCodingControlInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoCodingControlInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkVideoCodingControlFlagsKHR*)&forMarshaling->flags, sizeof(VkVideoCodingControlFlagsKHR));
+    *ptr += sizeof(VkVideoCodingControlFlagsKHR);
+}
+
+#endif
+#ifdef VK_KHR_video_decode_queue
+void reservedmarshal_VkVideoDecodeInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkVideoDecodeFlagsKHR*)&forMarshaling->flags, sizeof(VkVideoDecodeFlagsKHR));
+    *ptr += sizeof(VkVideoDecodeFlagsKHR);
+    reservedmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forMarshaling->codedOffset), ptr);
+    reservedmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->codedExtent), 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;
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->srcBufferOffset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->srcBufferRange, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    reservedmarshal_VkVideoPictureResourceKHR(vkStream, rootType, (VkVideoPictureResourceKHR*)(&forMarshaling->dstPictureResource), ptr);
+    reservedmarshal_VkVideoReferenceSlotKHR(vkStream, rootType, (const VkVideoReferenceSlotKHR*)(forMarshaling->pSetupReferenceSlot), ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->referenceSlotCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->referenceSlotCount; ++i)
+    {
+        reservedmarshal_VkVideoReferenceSlotKHR(vkStream, rootType, (const VkVideoReferenceSlotKHR*)(forMarshaling->pReferenceSlots + i), ptr);
+    }
+}
+
+#endif
+#ifdef VK_KHR_dynamic_rendering
+void reservedmarshal_VkRenderingAttachmentInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkRenderingAttachmentInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, 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, (VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
+    memcpy(*ptr, (VkResolveModeFlagBits*)&forMarshaling->resolveMode, sizeof(VkResolveModeFlagBits));
+    *ptr += sizeof(VkResolveModeFlagBits);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkImageView((*&forMarshaling->resolveImageView));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkImageLayout*)&forMarshaling->resolveImageLayout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
+    memcpy(*ptr, (VkAttachmentLoadOp*)&forMarshaling->loadOp, sizeof(VkAttachmentLoadOp));
+    *ptr += sizeof(VkAttachmentLoadOp);
+    memcpy(*ptr, (VkAttachmentStoreOp*)&forMarshaling->storeOp, sizeof(VkAttachmentStoreOp));
+    *ptr += sizeof(VkAttachmentStoreOp);
+    reservedmarshal_VkClearValue(vkStream, rootType, (VkClearValue*)(&forMarshaling->clearValue), ptr);
+}
+
+void reservedmarshal_VkRenderingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkRenderingInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkRenderingFlagsKHR*)&forMarshaling->flags, sizeof(VkRenderingFlagsKHR));
+    *ptr += sizeof(VkRenderingFlagsKHR);
+    reservedmarshal_VkRect2D(vkStream, rootType, (VkRect2D*)(&forMarshaling->renderArea), ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    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_VkRenderingAttachmentInfoKHR(vkStream, rootType, (const VkRenderingAttachmentInfoKHR*)(forMarshaling->pColorAttachments + i), ptr);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDepthAttachment;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pDepthAttachment)
+    {
+        reservedmarshal_VkRenderingAttachmentInfoKHR(vkStream, rootType, (const VkRenderingAttachmentInfoKHR*)(forMarshaling->pDepthAttachment), ptr);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pStencilAttachment;
+    memcpy((*ptr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pStencilAttachment)
+    {
+        reservedmarshal_VkRenderingAttachmentInfoKHR(vkStream, rootType, (const VkRenderingAttachmentInfoKHR*)(forMarshaling->pStencilAttachment), ptr);
+    }
+}
+
+void reservedmarshal_VkPipelineRenderingCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPipelineRenderingCreateInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const VkFormat*)forMarshaling->pColorAttachmentFormats, forMarshaling->colorAttachmentCount * sizeof(const VkFormat));
+    *ptr += forMarshaling->colorAttachmentCount * sizeof(const VkFormat);
+    memcpy(*ptr, (VkFormat*)&forMarshaling->depthAttachmentFormat, sizeof(VkFormat));
+    *ptr += sizeof(VkFormat);
+    memcpy(*ptr, (VkFormat*)&forMarshaling->stencilAttachmentFormat, sizeof(VkFormat));
+    *ptr += sizeof(VkFormat);
+}
+
+void reservedmarshal_VkPhysicalDeviceDynamicRenderingFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceDynamicRenderingFeaturesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->dynamicRendering, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkCommandBufferInheritanceRenderingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCommandBufferInheritanceRenderingInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkRenderingFlagsKHR*)&forMarshaling->flags, sizeof(VkRenderingFlagsKHR));
+    *ptr += sizeof(VkRenderingFlagsKHR);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const VkFormat*)forMarshaling->pColorAttachmentFormats, forMarshaling->colorAttachmentCount * sizeof(const VkFormat));
+    *ptr += forMarshaling->colorAttachmentCount * sizeof(const VkFormat);
+    memcpy(*ptr, (VkFormat*)&forMarshaling->depthAttachmentFormat, sizeof(VkFormat));
+    *ptr += sizeof(VkFormat);
+    memcpy(*ptr, (VkFormat*)&forMarshaling->stencilAttachmentFormat, sizeof(VkFormat));
+    *ptr += sizeof(VkFormat);
+    memcpy(*ptr, (VkSampleCountFlagBits*)&forMarshaling->rasterizationSamples, sizeof(VkSampleCountFlagBits));
+    *ptr += sizeof(VkSampleCountFlagBits);
+}
+
+void reservedmarshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkRenderingFragmentShadingRateAttachmentInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, 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, (VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
+    reservedmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->shadingRateAttachmentTexelSize), ptr);
+}
+
+void reservedmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkRenderingFragmentDensityMapAttachmentInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, 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, (VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
+}
+
+void reservedmarshal_VkAttachmentSampleCountInfoAMD(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAttachmentSampleCountInfoAMD* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pColorAttachmentSamples;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pColorAttachmentSamples)
+    {
+        memcpy(*ptr, (const VkSampleCountFlagBits*)forMarshaling->pColorAttachmentSamples, forMarshaling->colorAttachmentCount * sizeof(const VkSampleCountFlagBits));
+        *ptr += forMarshaling->colorAttachmentCount * sizeof(const VkSampleCountFlagBits);
+    }
+    memcpy(*ptr, (VkSampleCountFlagBits*)&forMarshaling->depthStencilAttachmentSamples, sizeof(VkSampleCountFlagBits));
+    *ptr += sizeof(VkSampleCountFlagBits);
+}
+
+void reservedmarshal_VkMultiviewPerViewAttributesInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMultiviewPerViewAttributesInfoNVX* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->perViewAttributes, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->perViewAttributesPositionXOnly, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_KHR_multiview
 #endif
 #ifdef VK_KHR_get_physical_device_properties2
@@ -8214,7 +8910,15 @@
         rootType = forMarshaling->sType;
     }
     reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
-    reservedmarshal_VkAttachmentReference2(vkStream, rootType, (const VkAttachmentReference2*)(forMarshaling->pFragmentShadingRateAttachment), ptr);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pFragmentShadingRateAttachment;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pFragmentShadingRateAttachment)
+    {
+        reservedmarshal_VkAttachmentReference2(vkStream, rootType, (const VkAttachmentReference2*)(forMarshaling->pFragmentShadingRateAttachment), ptr);
+    }
     reservedmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->shadingRateAttachmentTexelSize), ptr);
 }
 
@@ -8355,6 +9059,27 @@
 #endif
 #ifdef VK_KHR_separate_depth_stencil_layouts
 #endif
+#ifdef VK_KHR_present_wait
+void reservedmarshal_VkPhysicalDevicePresentWaitFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDevicePresentWaitFeaturesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->presentWait, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_KHR_uniform_buffer_standard_layout
 #endif
 #ifdef VK_KHR_buffer_device_address
@@ -8524,6 +9249,104 @@
 }
 
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+void reservedmarshal_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderIntegerDotProduct, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct8BitUnsignedAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct8BitSignedAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct8BitMixedSignednessAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedUnsignedAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedSignedAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct4x8BitPackedMixedSignednessAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct16BitUnsignedAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct16BitSignedAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct16BitMixedSignednessAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct32BitUnsignedAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct32BitSignedAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct32BitMixedSignednessAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct64BitUnsignedAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct64BitSignedAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProduct64BitMixedSignednessAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating8BitSignedAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating16BitSignedAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating32BitSignedAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating64BitSignedAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_KHR_pipeline_library
 void reservedmarshal_VkPipelineLibraryCreateInfoKHR(
     VulkanStreamGuest* vkStream,
@@ -8560,6 +9383,489 @@
 #endif
 #ifdef VK_KHR_shader_non_semantic_info
 #endif
+#ifdef VK_KHR_present_id
+void reservedmarshal_VkPresentIdKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPresentIdKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pPresentIds;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pPresentIds)
+    {
+        memcpy(*ptr, (const uint64_t*)forMarshaling->pPresentIds, forMarshaling->swapchainCount * sizeof(const uint64_t));
+        *ptr += forMarshaling->swapchainCount * sizeof(const uint64_t);
+    }
+}
+
+void reservedmarshal_VkPhysicalDevicePresentIdFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDevicePresentIdFeaturesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->presentId, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_KHR_video_encode_queue
+void reservedmarshal_VkVideoEncodeInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkVideoEncodeFlagsKHR*)&forMarshaling->flags, sizeof(VkVideoEncodeFlagsKHR));
+    *ptr += sizeof(VkVideoEncodeFlagsKHR);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->qualityLevel, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    reservedmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->codedExtent), ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->dstBitstreamBuffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->dstBitstreamBufferOffset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->dstBitstreamBufferMaxRange, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    reservedmarshal_VkVideoPictureResourceKHR(vkStream, rootType, (VkVideoPictureResourceKHR*)(&forMarshaling->srcPictureResource), ptr);
+    reservedmarshal_VkVideoReferenceSlotKHR(vkStream, rootType, (const VkVideoReferenceSlotKHR*)(forMarshaling->pSetupReferenceSlot), ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->referenceSlotCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->referenceSlotCount; ++i)
+    {
+        reservedmarshal_VkVideoReferenceSlotKHR(vkStream, rootType, (const VkVideoReferenceSlotKHR*)(forMarshaling->pReferenceSlots + i), ptr);
+    }
+}
+
+void reservedmarshal_VkVideoEncodeRateControlInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeRateControlInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkVideoEncodeRateControlFlagsKHR*)&forMarshaling->flags, sizeof(VkVideoEncodeRateControlFlagsKHR));
+    *ptr += sizeof(VkVideoEncodeRateControlFlagsKHR);
+    memcpy(*ptr, (VkVideoEncodeRateControlModeFlagBitsKHR*)&forMarshaling->rateControlMode, sizeof(VkVideoEncodeRateControlModeFlagBitsKHR));
+    *ptr += sizeof(VkVideoEncodeRateControlModeFlagBitsKHR);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->averageBitrate, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint16_t*)&forMarshaling->peakToAverageBitrateRatio, sizeof(uint16_t));
+    *ptr += sizeof(uint16_t);
+    memcpy(*ptr, (uint16_t*)&forMarshaling->frameRateNumerator, sizeof(uint16_t));
+    *ptr += sizeof(uint16_t);
+    memcpy(*ptr, (uint16_t*)&forMarshaling->frameRateDenominator, sizeof(uint16_t));
+    *ptr += sizeof(uint16_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->virtualBufferSizeInMs, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+#endif
+#ifdef VK_KHR_synchronization2
+void reservedmarshal_VkMemoryBarrier2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMemoryBarrier2KHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkPipelineStageFlags2KHR*)&forMarshaling->srcStageMask, sizeof(VkPipelineStageFlags2KHR));
+    *ptr += sizeof(VkPipelineStageFlags2KHR);
+    memcpy(*ptr, (VkAccessFlags2KHR*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags2KHR));
+    *ptr += sizeof(VkAccessFlags2KHR);
+    memcpy(*ptr, (VkPipelineStageFlags2KHR*)&forMarshaling->dstStageMask, sizeof(VkPipelineStageFlags2KHR));
+    *ptr += sizeof(VkPipelineStageFlags2KHR);
+    memcpy(*ptr, (VkAccessFlags2KHR*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags2KHR));
+    *ptr += sizeof(VkAccessFlags2KHR);
+}
+
+void reservedmarshal_VkBufferMemoryBarrier2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferMemoryBarrier2KHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkPipelineStageFlags2KHR*)&forMarshaling->srcStageMask, sizeof(VkPipelineStageFlags2KHR));
+    *ptr += sizeof(VkPipelineStageFlags2KHR);
+    memcpy(*ptr, (VkAccessFlags2KHR*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags2KHR));
+    *ptr += sizeof(VkAccessFlags2KHR);
+    memcpy(*ptr, (VkPipelineStageFlags2KHR*)&forMarshaling->dstStageMask, sizeof(VkPipelineStageFlags2KHR));
+    *ptr += sizeof(VkPipelineStageFlags2KHR);
+    memcpy(*ptr, (VkAccessFlags2KHR*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags2KHR));
+    *ptr += sizeof(VkAccessFlags2KHR);
+    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_VkImageMemoryBarrier2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImageMemoryBarrier2KHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkPipelineStageFlags2KHR*)&forMarshaling->srcStageMask, sizeof(VkPipelineStageFlags2KHR));
+    *ptr += sizeof(VkPipelineStageFlags2KHR);
+    memcpy(*ptr, (VkAccessFlags2KHR*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags2KHR));
+    *ptr += sizeof(VkAccessFlags2KHR);
+    memcpy(*ptr, (VkPipelineStageFlags2KHR*)&forMarshaling->dstStageMask, sizeof(VkPipelineStageFlags2KHR));
+    *ptr += sizeof(VkPipelineStageFlags2KHR);
+    memcpy(*ptr, (VkAccessFlags2KHR*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags2KHR));
+    *ptr += sizeof(VkAccessFlags2KHR);
+    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, rootType, (VkImageSubresourceRange*)(&forMarshaling->subresourceRange), ptr);
+}
+
+void reservedmarshal_VkDependencyInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDependencyInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkDependencyFlags*)&forMarshaling->dependencyFlags, sizeof(VkDependencyFlags));
+    *ptr += sizeof(VkDependencyFlags);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->memoryBarrierCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->memoryBarrierCount; ++i)
+    {
+        reservedmarshal_VkMemoryBarrier2KHR(vkStream, rootType, (const VkMemoryBarrier2KHR*)(forMarshaling->pMemoryBarriers + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->bufferMemoryBarrierCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->bufferMemoryBarrierCount; ++i)
+    {
+        reservedmarshal_VkBufferMemoryBarrier2KHR(vkStream, rootType, (const VkBufferMemoryBarrier2KHR*)(forMarshaling->pBufferMemoryBarriers + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->imageMemoryBarrierCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageMemoryBarrierCount; ++i)
+    {
+        reservedmarshal_VkImageMemoryBarrier2KHR(vkStream, rootType, (const VkImageMemoryBarrier2KHR*)(forMarshaling->pImageMemoryBarriers + i), ptr);
+    }
+}
+
+void reservedmarshal_VkSemaphoreSubmitInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSemaphoreSubmitInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, 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);
+    memcpy(*ptr, (VkPipelineStageFlags2KHR*)&forMarshaling->stageMask, sizeof(VkPipelineStageFlags2KHR));
+    *ptr += sizeof(VkPipelineStageFlags2KHR);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->deviceIndex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkCommandBufferSubmitInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCommandBufferSubmitInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&forMarshaling->commandBuffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkSubmitInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSubmitInfo2KHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkSubmitFlagsKHR*)&forMarshaling->flags, sizeof(VkSubmitFlagsKHR));
+    *ptr += sizeof(VkSubmitFlagsKHR);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->waitSemaphoreInfoCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->waitSemaphoreInfoCount; ++i)
+    {
+        reservedmarshal_VkSemaphoreSubmitInfoKHR(vkStream, rootType, (const VkSemaphoreSubmitInfoKHR*)(forMarshaling->pWaitSemaphoreInfos + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->commandBufferInfoCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->commandBufferInfoCount; ++i)
+    {
+        reservedmarshal_VkCommandBufferSubmitInfoKHR(vkStream, rootType, (const VkCommandBufferSubmitInfoKHR*)(forMarshaling->pCommandBufferInfos + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->signalSemaphoreInfoCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->signalSemaphoreInfoCount; ++i)
+    {
+        reservedmarshal_VkSemaphoreSubmitInfoKHR(vkStream, rootType, (const VkSemaphoreSubmitInfoKHR*)(forMarshaling->pSignalSemaphoreInfos + i), ptr);
+    }
+}
+
+void reservedmarshal_VkPhysicalDeviceSynchronization2FeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSynchronization2FeaturesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->synchronization2, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkQueueFamilyCheckpointProperties2NV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkQueueFamilyCheckpointProperties2NV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkPipelineStageFlags2KHR*)&forMarshaling->checkpointExecutionStageMask, sizeof(VkPipelineStageFlags2KHR));
+    *ptr += sizeof(VkPipelineStageFlags2KHR);
+}
+
+void reservedmarshal_VkCheckpointData2NV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCheckpointData2NV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkPipelineStageFlags2KHR*)&forMarshaling->stage, sizeof(VkPipelineStageFlags2KHR));
+    *ptr += sizeof(VkPipelineStageFlags2KHR);
+    // WARNING PTR CHECK
+    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)
+    {
+        memcpy(*ptr, (void*)forMarshaling->pCheckpointMarker, sizeof(uint8_t));
+        *ptr += sizeof(uint8_t);
+    }
+}
+
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+void reservedmarshal_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSubgroupUniformControlFlow, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+void reservedmarshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderZeroInitializeWorkgroupMemory, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+void reservedmarshal_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->workgroupMemoryExplicitLayout, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->workgroupMemoryExplicitLayoutScalarBlockLayout, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->workgroupMemoryExplicitLayout8BitAccess, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->workgroupMemoryExplicitLayout16BitAccess, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_KHR_copy_commands2
 void reservedmarshal_VkBufferCopy2KHR(
     VulkanStreamGuest* vkStream,
@@ -8886,6 +10192,109 @@
 }
 
 #endif
+#ifdef VK_KHR_format_feature_flags2
+void reservedmarshal_VkFormatProperties3KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkFormatProperties3KHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkFormatFeatureFlags2KHR*)&forMarshaling->linearTilingFeatures, sizeof(VkFormatFeatureFlags2KHR));
+    *ptr += sizeof(VkFormatFeatureFlags2KHR);
+    memcpy(*ptr, (VkFormatFeatureFlags2KHR*)&forMarshaling->optimalTilingFeatures, sizeof(VkFormatFeatureFlags2KHR));
+    *ptr += sizeof(VkFormatFeatureFlags2KHR);
+    memcpy(*ptr, (VkFormatFeatureFlags2KHR*)&forMarshaling->bufferFeatures, sizeof(VkFormatFeatureFlags2KHR));
+    *ptr += sizeof(VkFormatFeatureFlags2KHR);
+}
+
+#endif
+#ifdef VK_KHR_maintenance4
+void reservedmarshal_VkPhysicalDeviceMaintenance4FeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMaintenance4FeaturesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->maintenance4, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceMaintenance4PropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMaintenance4PropertiesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->maxBufferSize, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+}
+
+void reservedmarshal_VkDeviceBufferMemoryRequirementsKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDeviceBufferMemoryRequirementsKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    reservedmarshal_VkBufferCreateInfo(vkStream, rootType, (const VkBufferCreateInfo*)(forMarshaling->pCreateInfo), ptr);
+}
+
+void reservedmarshal_VkDeviceImageMemoryRequirementsKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDeviceImageMemoryRequirementsKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    reservedmarshal_VkImageCreateInfo(vkStream, rootType, (const VkImageCreateInfo*)(forMarshaling->pCreateInfo), ptr);
+    memcpy(*ptr, (VkImageAspectFlagBits*)&forMarshaling->planeAspect, sizeof(VkImageAspectFlagBits));
+    *ptr += sizeof(VkImageAspectFlagBits);
+}
+
+#endif
 #ifdef VK_ANDROID_native_buffer
 void reservedmarshal_VkNativeBufferANDROID(
     VulkanStreamGuest* vkStream,
@@ -9226,6 +10635,103 @@
 }
 
 #endif
+#ifdef VK_NVX_binary_import
+void reservedmarshal_VkCuModuleCreateInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCuModuleCreateInfoNVX* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    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));
+    *ptr += forMarshaling->dataSize * sizeof(const uint8_t);
+}
+
+void reservedmarshal_VkCuFunctionCreateInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCuFunctionCreateInfoNVX* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->module;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    {
+        uint32_t l = forMarshaling->pName ? strlen(forMarshaling->pName): 0;
+        memcpy(*ptr, (uint32_t*)&l, sizeof(uint32_t));
+        android::base::Stream::toBe32((uint8_t*)*ptr);
+        *ptr += sizeof(uint32_t);
+        memcpy(*ptr, (char*)forMarshaling->pName, l);
+        *ptr += l;
+    }
+}
+
+void reservedmarshal_VkCuLaunchInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCuLaunchInfoNVX* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->function;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->gridDimX, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->gridDimY, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->gridDimZ, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->blockDimX, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->blockDimY, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->blockDimZ, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->sharedMemBytes, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    uint64_t cgen_var_1 = (uint64_t)forMarshaling->paramCount;
+    memcpy((*ptr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    uint64_t cgen_var_2 = (uint64_t)forMarshaling->extraCount;
+    memcpy((*ptr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+}
+
+#endif
 #ifdef VK_NVX_image_view_handle
 void reservedmarshal_VkImageViewHandleInfoNVX(
     VulkanStreamGuest* vkStream,
@@ -9284,6 +10790,779 @@
 #endif
 #ifdef VK_AMD_shader_ballot
 #endif
+#ifdef VK_EXT_video_encode_h264
+void reservedmarshal_VkVideoEncodeH264CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264CapabilitiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkVideoEncodeH264CapabilityFlagsEXT*)&forMarshaling->flags, sizeof(VkVideoEncodeH264CapabilityFlagsEXT));
+    *ptr += sizeof(VkVideoEncodeH264CapabilityFlagsEXT);
+    memcpy(*ptr, (VkVideoEncodeH264InputModeFlagsEXT*)&forMarshaling->inputModeFlags, sizeof(VkVideoEncodeH264InputModeFlagsEXT));
+    *ptr += sizeof(VkVideoEncodeH264InputModeFlagsEXT);
+    memcpy(*ptr, (VkVideoEncodeH264OutputModeFlagsEXT*)&forMarshaling->outputModeFlags, sizeof(VkVideoEncodeH264OutputModeFlagsEXT));
+    *ptr += sizeof(VkVideoEncodeH264OutputModeFlagsEXT);
+    reservedmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->minPictureSizeInMbs), ptr);
+    reservedmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->maxPictureSizeInMbs), ptr);
+    reservedmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->inputImageDataAlignment), ptr);
+    memcpy(*ptr, (uint8_t*)&forMarshaling->maxNumL0ReferenceForP, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    memcpy(*ptr, (uint8_t*)&forMarshaling->maxNumL0ReferenceForB, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    memcpy(*ptr, (uint8_t*)&forMarshaling->maxNumL1Reference, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    memcpy(*ptr, (uint8_t*)&forMarshaling->qualityLevelCount, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    reservedmarshal_VkExtensionProperties(vkStream, rootType, (VkExtensionProperties*)(&forMarshaling->stdExtensionVersion), ptr);
+}
+
+void reservedmarshal_VkVideoEncodeH264SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkVideoEncodeH264CreateFlagsEXT*)&forMarshaling->flags, sizeof(VkVideoEncodeH264CreateFlagsEXT));
+    *ptr += sizeof(VkVideoEncodeH264CreateFlagsEXT);
+    reservedmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->maxPictureSizeInMbs), ptr);
+    reservedmarshal_VkExtensionProperties(vkStream, rootType, (const VkExtensionProperties*)(forMarshaling->pStdExtensionVersion), ptr);
+}
+
+void reservedmarshal_VkVideoEncodeH264SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionParametersAddInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->spsStdCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pSpsStd;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pSpsStd)
+    {
+        memcpy(*ptr, (const StdVideoH264SequenceParameterSet*)forMarshaling->pSpsStd, forMarshaling->spsStdCount * sizeof(const StdVideoH264SequenceParameterSet));
+        *ptr += forMarshaling->spsStdCount * sizeof(const StdVideoH264SequenceParameterSet);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->ppsStdCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pPpsStd;
+    memcpy((*ptr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pPpsStd)
+    {
+        memcpy(*ptr, (const StdVideoH264PictureParameterSet*)forMarshaling->pPpsStd, forMarshaling->ppsStdCount * sizeof(const StdVideoH264PictureParameterSet));
+        *ptr += forMarshaling->ppsStdCount * sizeof(const StdVideoH264PictureParameterSet);
+    }
+}
+
+void reservedmarshal_VkVideoEncodeH264SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionParametersCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxSpsStdCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPpsStdCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pParametersAddInfo;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pParametersAddInfo)
+    {
+        reservedmarshal_VkVideoEncodeH264SessionParametersAddInfoEXT(vkStream, rootType, (const VkVideoEncodeH264SessionParametersAddInfoEXT*)(forMarshaling->pParametersAddInfo), ptr);
+    }
+}
+
+void reservedmarshal_VkVideoEncodeH264DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264DpbSlotInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (int8_t*)&forMarshaling->slotIndex, sizeof(int8_t));
+    *ptr += sizeof(int8_t);
+    memcpy(*ptr, (const StdVideoEncodeH264PictureInfo*)forMarshaling->pStdPictureInfo, sizeof(const StdVideoEncodeH264PictureInfo));
+    *ptr += sizeof(const StdVideoEncodeH264PictureInfo);
+}
+
+void reservedmarshal_VkVideoEncodeH264NaluSliceEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264NaluSliceEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (const StdVideoEncodeH264SliceHeader*)forMarshaling->pSliceHeaderStd, sizeof(const StdVideoEncodeH264SliceHeader));
+    *ptr += sizeof(const StdVideoEncodeH264SliceHeader);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->mbCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint8_t*)&forMarshaling->refFinalList0EntryCount, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->refFinalList0EntryCount; ++i)
+    {
+        reservedmarshal_VkVideoEncodeH264DpbSlotInfoEXT(vkStream, rootType, (const VkVideoEncodeH264DpbSlotInfoEXT*)(forMarshaling->pRefFinalList0Entries + i), ptr);
+    }
+    memcpy(*ptr, (uint8_t*)&forMarshaling->refFinalList1EntryCount, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->refFinalList1EntryCount; ++i)
+    {
+        reservedmarshal_VkVideoEncodeH264DpbSlotInfoEXT(vkStream, rootType, (const VkVideoEncodeH264DpbSlotInfoEXT*)(forMarshaling->pRefFinalList1Entries + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->precedingNaluBytes, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint8_t*)&forMarshaling->minQp, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    memcpy(*ptr, (uint8_t*)&forMarshaling->maxQp, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+}
+
+void reservedmarshal_VkVideoEncodeH264VclFrameInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264VclFrameInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint8_t*)&forMarshaling->refDefaultFinalList0EntryCount, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->refDefaultFinalList0EntryCount; ++i)
+    {
+        reservedmarshal_VkVideoEncodeH264DpbSlotInfoEXT(vkStream, rootType, (const VkVideoEncodeH264DpbSlotInfoEXT*)(forMarshaling->pRefDefaultFinalList0Entries + i), ptr);
+    }
+    memcpy(*ptr, (uint8_t*)&forMarshaling->refDefaultFinalList1EntryCount, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->refDefaultFinalList1EntryCount; ++i)
+    {
+        reservedmarshal_VkVideoEncodeH264DpbSlotInfoEXT(vkStream, rootType, (const VkVideoEncodeH264DpbSlotInfoEXT*)(forMarshaling->pRefDefaultFinalList1Entries + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->naluSliceEntryCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->naluSliceEntryCount; ++i)
+    {
+        reservedmarshal_VkVideoEncodeH264NaluSliceEXT(vkStream, rootType, (const VkVideoEncodeH264NaluSliceEXT*)(forMarshaling->pNaluSliceEntries + i), ptr);
+    }
+    reservedmarshal_VkVideoEncodeH264DpbSlotInfoEXT(vkStream, rootType, (const VkVideoEncodeH264DpbSlotInfoEXT*)(forMarshaling->pCurrentPictureInfo), ptr);
+}
+
+void reservedmarshal_VkVideoEncodeH264EmitPictureParametersEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264EmitPictureParametersEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint8_t*)&forMarshaling->spsId, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->emitSpsEnable, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->ppsIdEntryCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const uint8_t*)forMarshaling->ppsIdEntries, forMarshaling->ppsIdEntryCount * sizeof(const uint8_t));
+    *ptr += forMarshaling->ppsIdEntryCount * sizeof(const uint8_t);
+}
+
+void reservedmarshal_VkVideoEncodeH264ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264ProfileEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (StdVideoH264ProfileIdc*)&forMarshaling->stdProfileIdc, sizeof(StdVideoH264ProfileIdc));
+    *ptr += sizeof(StdVideoH264ProfileIdc);
+}
+
+#endif
+#ifdef VK_EXT_video_encode_h265
+void reservedmarshal_VkVideoEncodeH265CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265CapabilitiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkVideoEncodeH265CapabilityFlagsEXT*)&forMarshaling->flags, sizeof(VkVideoEncodeH265CapabilityFlagsEXT));
+    *ptr += sizeof(VkVideoEncodeH265CapabilityFlagsEXT);
+    memcpy(*ptr, (VkVideoEncodeH265InputModeFlagsEXT*)&forMarshaling->inputModeFlags, sizeof(VkVideoEncodeH265InputModeFlagsEXT));
+    *ptr += sizeof(VkVideoEncodeH265InputModeFlagsEXT);
+    memcpy(*ptr, (VkVideoEncodeH265OutputModeFlagsEXT*)&forMarshaling->outputModeFlags, sizeof(VkVideoEncodeH265OutputModeFlagsEXT));
+    *ptr += sizeof(VkVideoEncodeH265OutputModeFlagsEXT);
+    memcpy(*ptr, (VkVideoEncodeH265CtbSizeFlagsEXT*)&forMarshaling->ctbSizes, sizeof(VkVideoEncodeH265CtbSizeFlagsEXT));
+    *ptr += sizeof(VkVideoEncodeH265CtbSizeFlagsEXT);
+    reservedmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->inputImageDataAlignment), ptr);
+    memcpy(*ptr, (uint8_t*)&forMarshaling->maxNumL0ReferenceForP, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    memcpy(*ptr, (uint8_t*)&forMarshaling->maxNumL0ReferenceForB, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    memcpy(*ptr, (uint8_t*)&forMarshaling->maxNumL1Reference, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    memcpy(*ptr, (uint8_t*)&forMarshaling->maxNumSubLayers, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    memcpy(*ptr, (uint8_t*)&forMarshaling->qualityLevelCount, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    reservedmarshal_VkExtensionProperties(vkStream, rootType, (VkExtensionProperties*)(&forMarshaling->stdExtensionVersion), ptr);
+}
+
+void reservedmarshal_VkVideoEncodeH265SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkVideoEncodeH265CreateFlagsEXT*)&forMarshaling->flags, sizeof(VkVideoEncodeH265CreateFlagsEXT));
+    *ptr += sizeof(VkVideoEncodeH265CreateFlagsEXT);
+    reservedmarshal_VkExtensionProperties(vkStream, rootType, (const VkExtensionProperties*)(forMarshaling->pStdExtensionVersion), ptr);
+}
+
+void reservedmarshal_VkVideoEncodeH265SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionParametersAddInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->vpsStdCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pVpsStd;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pVpsStd)
+    {
+        memcpy(*ptr, (const StdVideoH265VideoParameterSet*)forMarshaling->pVpsStd, forMarshaling->vpsStdCount * sizeof(const StdVideoH265VideoParameterSet));
+        *ptr += forMarshaling->vpsStdCount * sizeof(const StdVideoH265VideoParameterSet);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->spsStdCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pSpsStd;
+    memcpy((*ptr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pSpsStd)
+    {
+        memcpy(*ptr, (const StdVideoH265SequenceParameterSet*)forMarshaling->pSpsStd, forMarshaling->spsStdCount * sizeof(const StdVideoH265SequenceParameterSet));
+        *ptr += forMarshaling->spsStdCount * sizeof(const StdVideoH265SequenceParameterSet);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->ppsStdCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pPpsStd;
+    memcpy((*ptr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pPpsStd)
+    {
+        memcpy(*ptr, (const StdVideoH265PictureParameterSet*)forMarshaling->pPpsStd, forMarshaling->ppsStdCount * sizeof(const StdVideoH265PictureParameterSet));
+        *ptr += forMarshaling->ppsStdCount * sizeof(const StdVideoH265PictureParameterSet);
+    }
+}
+
+void reservedmarshal_VkVideoEncodeH265SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionParametersCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxVpsStdCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxSpsStdCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPpsStdCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pParametersAddInfo;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pParametersAddInfo)
+    {
+        reservedmarshal_VkVideoEncodeH265SessionParametersAddInfoEXT(vkStream, rootType, (const VkVideoEncodeH265SessionParametersAddInfoEXT*)(forMarshaling->pParametersAddInfo), ptr);
+    }
+}
+
+void reservedmarshal_VkVideoEncodeH265DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265DpbSlotInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (int8_t*)&forMarshaling->slotIndex, sizeof(int8_t));
+    *ptr += sizeof(int8_t);
+    memcpy(*ptr, (const StdVideoEncodeH265ReferenceInfo*)forMarshaling->pStdReferenceInfo, sizeof(const StdVideoEncodeH265ReferenceInfo));
+    *ptr += sizeof(const StdVideoEncodeH265ReferenceInfo);
+}
+
+void reservedmarshal_VkVideoEncodeH265ReferenceListsEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265ReferenceListsEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint8_t*)&forMarshaling->referenceList0EntryCount, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->referenceList0EntryCount; ++i)
+    {
+        reservedmarshal_VkVideoEncodeH265DpbSlotInfoEXT(vkStream, rootType, (const VkVideoEncodeH265DpbSlotInfoEXT*)(forMarshaling->pReferenceList0Entries + i), ptr);
+    }
+    memcpy(*ptr, (uint8_t*)&forMarshaling->referenceList1EntryCount, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->referenceList1EntryCount; ++i)
+    {
+        reservedmarshal_VkVideoEncodeH265DpbSlotInfoEXT(vkStream, rootType, (const VkVideoEncodeH265DpbSlotInfoEXT*)(forMarshaling->pReferenceList1Entries + i), ptr);
+    }
+    memcpy(*ptr, (const StdVideoEncodeH265ReferenceModifications*)forMarshaling->pReferenceModifications, sizeof(const StdVideoEncodeH265ReferenceModifications));
+    *ptr += sizeof(const StdVideoEncodeH265ReferenceModifications);
+}
+
+void reservedmarshal_VkVideoEncodeH265NaluSliceEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265NaluSliceEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->ctbCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pReferenceFinalLists;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pReferenceFinalLists)
+    {
+        reservedmarshal_VkVideoEncodeH265ReferenceListsEXT(vkStream, rootType, (const VkVideoEncodeH265ReferenceListsEXT*)(forMarshaling->pReferenceFinalLists), ptr);
+    }
+    memcpy(*ptr, (const StdVideoEncodeH265SliceHeader*)forMarshaling->pSliceHeaderStd, sizeof(const StdVideoEncodeH265SliceHeader));
+    *ptr += sizeof(const StdVideoEncodeH265SliceHeader);
+}
+
+void reservedmarshal_VkVideoEncodeH265VclFrameInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265VclFrameInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pReferenceFinalLists;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pReferenceFinalLists)
+    {
+        reservedmarshal_VkVideoEncodeH265ReferenceListsEXT(vkStream, rootType, (const VkVideoEncodeH265ReferenceListsEXT*)(forMarshaling->pReferenceFinalLists), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->naluSliceEntryCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->naluSliceEntryCount; ++i)
+    {
+        reservedmarshal_VkVideoEncodeH265NaluSliceEXT(vkStream, rootType, (const VkVideoEncodeH265NaluSliceEXT*)(forMarshaling->pNaluSliceEntries + i), ptr);
+    }
+    memcpy(*ptr, (const StdVideoEncodeH265PictureInfo*)forMarshaling->pCurrentPictureInfo, sizeof(const StdVideoEncodeH265PictureInfo));
+    *ptr += sizeof(const StdVideoEncodeH265PictureInfo);
+}
+
+void reservedmarshal_VkVideoEncodeH265EmitPictureParametersEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265EmitPictureParametersEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint8_t*)&forMarshaling->vpsId, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    memcpy(*ptr, (uint8_t*)&forMarshaling->spsId, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->emitVpsEnable, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->emitSpsEnable, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->ppsIdEntryCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const uint8_t*)forMarshaling->ppsIdEntries, forMarshaling->ppsIdEntryCount * sizeof(const uint8_t));
+    *ptr += forMarshaling->ppsIdEntryCount * sizeof(const uint8_t);
+}
+
+void reservedmarshal_VkVideoEncodeH265ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265ProfileEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (StdVideoH265ProfileIdc*)&forMarshaling->stdProfileIdc, sizeof(StdVideoH265ProfileIdc));
+    *ptr += sizeof(StdVideoH265ProfileIdc);
+}
+
+#endif
+#ifdef VK_EXT_video_decode_h264
+void reservedmarshal_VkVideoDecodeH264ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264ProfileEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (StdVideoH264ProfileIdc*)&forMarshaling->stdProfileIdc, sizeof(StdVideoH264ProfileIdc));
+    *ptr += sizeof(StdVideoH264ProfileIdc);
+    memcpy(*ptr, (VkVideoDecodeH264PictureLayoutFlagsEXT*)&forMarshaling->pictureLayout, sizeof(VkVideoDecodeH264PictureLayoutFlagsEXT));
+    *ptr += sizeof(VkVideoDecodeH264PictureLayoutFlagsEXT);
+}
+
+void reservedmarshal_VkVideoDecodeH264CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264CapabilitiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxLevel, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    reservedmarshal_VkOffset2D(vkStream, rootType, (VkOffset2D*)(&forMarshaling->fieldOffsetGranularity), ptr);
+    reservedmarshal_VkExtensionProperties(vkStream, rootType, (VkExtensionProperties*)(&forMarshaling->stdExtensionVersion), ptr);
+}
+
+void reservedmarshal_VkVideoDecodeH264SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkVideoDecodeH264CreateFlagsEXT*)&forMarshaling->flags, sizeof(VkVideoDecodeH264CreateFlagsEXT));
+    *ptr += sizeof(VkVideoDecodeH264CreateFlagsEXT);
+    reservedmarshal_VkExtensionProperties(vkStream, rootType, (const VkExtensionProperties*)(forMarshaling->pStdExtensionVersion), ptr);
+}
+
+void reservedmarshal_VkVideoDecodeH264SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionParametersAddInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->spsStdCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pSpsStd;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pSpsStd)
+    {
+        memcpy(*ptr, (const StdVideoH264SequenceParameterSet*)forMarshaling->pSpsStd, forMarshaling->spsStdCount * sizeof(const StdVideoH264SequenceParameterSet));
+        *ptr += forMarshaling->spsStdCount * sizeof(const StdVideoH264SequenceParameterSet);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->ppsStdCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pPpsStd;
+    memcpy((*ptr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pPpsStd)
+    {
+        memcpy(*ptr, (const StdVideoH264PictureParameterSet*)forMarshaling->pPpsStd, forMarshaling->ppsStdCount * sizeof(const StdVideoH264PictureParameterSet));
+        *ptr += forMarshaling->ppsStdCount * sizeof(const StdVideoH264PictureParameterSet);
+    }
+}
+
+void reservedmarshal_VkVideoDecodeH264SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionParametersCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxSpsStdCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPpsStdCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pParametersAddInfo;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pParametersAddInfo)
+    {
+        reservedmarshal_VkVideoDecodeH264SessionParametersAddInfoEXT(vkStream, rootType, (const VkVideoDecodeH264SessionParametersAddInfoEXT*)(forMarshaling->pParametersAddInfo), ptr);
+    }
+}
+
+void reservedmarshal_VkVideoDecodeH264PictureInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264PictureInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (const StdVideoDecodeH264PictureInfo*)forMarshaling->pStdPictureInfo, sizeof(const StdVideoDecodeH264PictureInfo));
+    *ptr += sizeof(const StdVideoDecodeH264PictureInfo);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->slicesCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const uint32_t*)forMarshaling->pSlicesDataOffsets, forMarshaling->slicesCount * sizeof(const uint32_t));
+    *ptr += forMarshaling->slicesCount * sizeof(const uint32_t);
+}
+
+void reservedmarshal_VkVideoDecodeH264MvcEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264MvcEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (const StdVideoDecodeH264Mvc*)forMarshaling->pStdMvc, sizeof(const StdVideoDecodeH264Mvc));
+    *ptr += sizeof(const StdVideoDecodeH264Mvc);
+}
+
+void reservedmarshal_VkVideoDecodeH264DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264DpbSlotInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (const StdVideoDecodeH264ReferenceInfo*)forMarshaling->pStdReferenceInfo, sizeof(const StdVideoDecodeH264ReferenceInfo));
+    *ptr += sizeof(const StdVideoDecodeH264ReferenceInfo);
+}
+
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
 void reservedmarshal_VkTextureLODGatherFormatPropertiesAMD(
     VulkanStreamGuest* vkStream,
@@ -10734,6 +13013,38 @@
     *ptr += sizeof(uint64_t);
 }
 
+void reservedmarshal_VkAndroidHardwareBufferFormatProperties2ANDROID(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAndroidHardwareBufferFormatProperties2ANDROID* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkFormat*)&forMarshaling->format, sizeof(VkFormat));
+    *ptr += sizeof(VkFormat);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->externalFormat, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+    memcpy(*ptr, (VkFormatFeatureFlags2KHR*)&forMarshaling->formatFeatures, sizeof(VkFormatFeatureFlags2KHR));
+    *ptr += sizeof(VkFormatFeatureFlags2KHR);
+    reservedmarshal_VkComponentMapping(vkStream, rootType, (VkComponentMapping*)(&forMarshaling->samplerYcbcrConversionComponents), ptr);
+    memcpy(*ptr, (VkSamplerYcbcrModelConversion*)&forMarshaling->suggestedYcbcrModel, sizeof(VkSamplerYcbcrModelConversion));
+    *ptr += sizeof(VkSamplerYcbcrModelConversion);
+    memcpy(*ptr, (VkSamplerYcbcrRange*)&forMarshaling->suggestedYcbcrRange, sizeof(VkSamplerYcbcrRange));
+    *ptr += sizeof(VkSamplerYcbcrRange);
+    memcpy(*ptr, (VkChromaLocation*)&forMarshaling->suggestedXChromaOffset, sizeof(VkChromaLocation));
+    *ptr += sizeof(VkChromaLocation);
+    memcpy(*ptr, (VkChromaLocation*)&forMarshaling->suggestedYChromaOffset, sizeof(VkChromaLocation));
+    *ptr += sizeof(VkChromaLocation);
+}
+
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
 #endif
@@ -11323,6 +13634,53 @@
     *ptr += sizeof(uint64_t);
 }
 
+void reservedmarshal_VkDrmFormatModifierProperties2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDrmFormatModifierProperties2EXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    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, (VkFormatFeatureFlags2KHR*)&forMarshaling->drmFormatModifierTilingFeatures, sizeof(VkFormatFeatureFlags2KHR));
+    *ptr += sizeof(VkFormatFeatureFlags2KHR);
+}
+
+void reservedmarshal_VkDrmFormatModifierPropertiesList2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDrmFormatModifierPropertiesList2EXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, 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_VkDrmFormatModifierProperties2EXT(vkStream, rootType, (VkDrmFormatModifierProperties2EXT*)(forMarshaling->pDrmFormatModifierProperties + i), ptr);
+        }
+    }
+}
+
 #endif
 #ifdef VK_EXT_validation_cache
 void reservedmarshal_VkValidationCacheCreateInfoEXT(
@@ -12207,6 +14565,180 @@
 }
 
 #endif
+#ifdef VK_EXT_video_decode_h265
+void reservedmarshal_VkVideoDecodeH265ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265ProfileEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (StdVideoH265ProfileIdc*)&forMarshaling->stdProfileIdc, sizeof(StdVideoH265ProfileIdc));
+    *ptr += sizeof(StdVideoH265ProfileIdc);
+}
+
+void reservedmarshal_VkVideoDecodeH265CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265CapabilitiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxLevel, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    reservedmarshal_VkExtensionProperties(vkStream, rootType, (VkExtensionProperties*)(&forMarshaling->stdExtensionVersion), ptr);
+}
+
+void reservedmarshal_VkVideoDecodeH265SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkVideoDecodeH265CreateFlagsEXT*)&forMarshaling->flags, sizeof(VkVideoDecodeH265CreateFlagsEXT));
+    *ptr += sizeof(VkVideoDecodeH265CreateFlagsEXT);
+    reservedmarshal_VkExtensionProperties(vkStream, rootType, (const VkExtensionProperties*)(forMarshaling->pStdExtensionVersion), ptr);
+}
+
+void reservedmarshal_VkVideoDecodeH265SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionParametersAddInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->spsStdCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pSpsStd;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pSpsStd)
+    {
+        memcpy(*ptr, (const StdVideoH265SequenceParameterSet*)forMarshaling->pSpsStd, forMarshaling->spsStdCount * sizeof(const StdVideoH265SequenceParameterSet));
+        *ptr += forMarshaling->spsStdCount * sizeof(const StdVideoH265SequenceParameterSet);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->ppsStdCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pPpsStd;
+    memcpy((*ptr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pPpsStd)
+    {
+        memcpy(*ptr, (const StdVideoH265PictureParameterSet*)forMarshaling->pPpsStd, forMarshaling->ppsStdCount * sizeof(const StdVideoH265PictureParameterSet));
+        *ptr += forMarshaling->ppsStdCount * sizeof(const StdVideoH265PictureParameterSet);
+    }
+}
+
+void reservedmarshal_VkVideoDecodeH265SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionParametersCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxSpsStdCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPpsStdCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pParametersAddInfo;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pParametersAddInfo)
+    {
+        reservedmarshal_VkVideoDecodeH265SessionParametersAddInfoEXT(vkStream, rootType, (const VkVideoDecodeH265SessionParametersAddInfoEXT*)(forMarshaling->pParametersAddInfo), ptr);
+    }
+}
+
+void reservedmarshal_VkVideoDecodeH265PictureInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265PictureInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (StdVideoDecodeH265PictureInfo*)forMarshaling->pStdPictureInfo, sizeof(StdVideoDecodeH265PictureInfo));
+    *ptr += sizeof(StdVideoDecodeH265PictureInfo);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->slicesCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const uint32_t*)forMarshaling->pSlicesDataOffsets, forMarshaling->slicesCount * sizeof(const uint32_t));
+    *ptr += forMarshaling->slicesCount * sizeof(const uint32_t);
+}
+
+void reservedmarshal_VkVideoDecodeH265DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265DpbSlotInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (const StdVideoDecodeH265ReferenceInfo*)forMarshaling->pStdReferenceInfo, sizeof(const StdVideoDecodeH265ReferenceInfo));
+    *ptr += sizeof(const StdVideoDecodeH265ReferenceInfo);
+}
+
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
 void reservedmarshal_VkDeviceMemoryOverallocationCreateInfoAMD(
     VulkanStreamGuest* vkStream,
@@ -13473,6 +16005,69 @@
 }
 
 #endif
+#ifdef VK_EXT_provoking_vertex
+void reservedmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceProvokingVertexFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->provokingVertexLast, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->transformFeedbackPreservesProvokingVertex, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceProvokingVertexPropertiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->provokingVertexModePerPipeline, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->transformFeedbackPreservesTriangleFanProvokingVertex, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkProvokingVertexModeEXT*)&forMarshaling->provokingVertexMode, sizeof(VkProvokingVertexModeEXT));
+    *ptr += sizeof(VkProvokingVertexModeEXT);
+}
+
+#endif
 #ifdef VK_EXT_full_screen_exclusive
 void reservedmarshal_VkSurfaceFullScreenExclusiveInfoEXT(
     VulkanStreamGuest* vkStream,
@@ -13715,6 +16310,49 @@
 }
 
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+void reservedmarshal_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderBufferFloat16Atomics, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderBufferFloat16AtomicAdd, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderBufferFloat16AtomicMinMax, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderBufferFloat32AtomicMinMax, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderBufferFloat64AtomicMinMax, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSharedFloat16Atomics, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSharedFloat16AtomicAdd, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSharedFloat16AtomicMinMax, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSharedFloat32AtomicMinMax, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSharedFloat64AtomicMinMax, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderImageFloat32AtomicMinMax, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->sparseImageFloat32AtomicMinMax, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 void reservedmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
     VulkanStreamGuest* vkStream,
@@ -14103,6 +16741,57 @@
 }
 
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+void reservedmarshal_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceInheritedViewportScissorFeaturesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->inheritedViewportScissor2D, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkCommandBufferInheritanceViewportScissorInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCommandBufferInheritanceViewportScissorInfoNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->viewportScissor2D, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->viewportDepthCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pViewportDepths;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pViewportDepths)
+    {
+        reservedmarshal_VkViewport(vkStream, rootType, (const VkViewport*)(forMarshaling->pViewportDepths), ptr);
+    }
+}
+
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
 void reservedmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
     VulkanStreamGuest* vkStream,
@@ -14267,6 +16956,8 @@
 }
 
 #endif
+#ifdef VK_EXT_acquire_drm_display
+#endif
 #ifdef VK_EXT_robustness2
 void reservedmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(
     VulkanStreamGuest* vkStream,
@@ -14566,6 +17257,223 @@
 }
 
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+void reservedmarshal_VkDeviceOrHostAddressConstKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDeviceOrHostAddressConstKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
+    *ptr += sizeof(VkDeviceAddress);
+}
+
+void reservedmarshal_VkAccelerationStructureGeometryMotionTrianglesDataNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureGeometryMotionTrianglesDataNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    reservedmarshal_VkDeviceOrHostAddressConstKHR(vkStream, rootType, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->vertexData), ptr);
+}
+
+void reservedmarshal_VkAccelerationStructureMotionInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInfoNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxInstances, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkAccelerationStructureMotionInfoFlagsNV*)&forMarshaling->flags, sizeof(VkAccelerationStructureMotionInfoFlagsNV));
+    *ptr += sizeof(VkAccelerationStructureMotionInfoFlagsNV);
+}
+
+void reservedmarshal_VkAccelerationStructureMatrixMotionInstanceNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureMatrixMotionInstanceNV* forMarshaling,
+    uint8_t** ptr)
+{
+    
+    typedef struct VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields {
+        VkTransformMatrixKHR          transformT0;
+        VkTransformMatrixKHR          transformT1;
+        uint32_t                      dwords[2];
+        uint64_t                      accelerationStructureReference;
+    } VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields;
+    
+    (void)vkStream;
+    const VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields* forMarshaling_new = (const VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields*)(forMarshaling);
+    reservedmarshal_VkTransformMatrixKHR(vkStream, rootType, (VkTransformMatrixKHR*)(&forMarshaling_new->transformT0), ptr);
+    reservedmarshal_VkTransformMatrixKHR(vkStream, rootType, (VkTransformMatrixKHR*)(&forMarshaling_new->transformT1), 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);
+    
+}
+
+void reservedmarshal_VkSRTDataNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSRTDataNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (float*)&forMarshaling->sx, sizeof(float));
+    *ptr += sizeof(float);
+    memcpy(*ptr, (float*)&forMarshaling->a, sizeof(float));
+    *ptr += sizeof(float);
+    memcpy(*ptr, (float*)&forMarshaling->b, sizeof(float));
+    *ptr += sizeof(float);
+    memcpy(*ptr, (float*)&forMarshaling->pvx, sizeof(float));
+    *ptr += sizeof(float);
+    memcpy(*ptr, (float*)&forMarshaling->sy, sizeof(float));
+    *ptr += sizeof(float);
+    memcpy(*ptr, (float*)&forMarshaling->c, sizeof(float));
+    *ptr += sizeof(float);
+    memcpy(*ptr, (float*)&forMarshaling->pvy, sizeof(float));
+    *ptr += sizeof(float);
+    memcpy(*ptr, (float*)&forMarshaling->sz, sizeof(float));
+    *ptr += sizeof(float);
+    memcpy(*ptr, (float*)&forMarshaling->pvz, sizeof(float));
+    *ptr += sizeof(float);
+    memcpy(*ptr, (float*)&forMarshaling->qx, sizeof(float));
+    *ptr += sizeof(float);
+    memcpy(*ptr, (float*)&forMarshaling->qy, sizeof(float));
+    *ptr += sizeof(float);
+    memcpy(*ptr, (float*)&forMarshaling->qz, sizeof(float));
+    *ptr += sizeof(float);
+    memcpy(*ptr, (float*)&forMarshaling->qw, sizeof(float));
+    *ptr += sizeof(float);
+    memcpy(*ptr, (float*)&forMarshaling->tx, sizeof(float));
+    *ptr += sizeof(float);
+    memcpy(*ptr, (float*)&forMarshaling->ty, sizeof(float));
+    *ptr += sizeof(float);
+    memcpy(*ptr, (float*)&forMarshaling->tz, sizeof(float));
+    *ptr += sizeof(float);
+}
+
+void reservedmarshal_VkAccelerationStructureSRTMotionInstanceNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureSRTMotionInstanceNV* forMarshaling,
+    uint8_t** ptr)
+{
+    
+    typedef struct VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields {
+        VkSRTDataNV          transformT0;
+        VkSRTDataNV          transformT1;
+        uint32_t             dwords[2];
+        uint64_t             accelerationStructureReference;
+    } VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields;
+    
+    (void)vkStream;
+    const VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields* forMarshaling_new = (const VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields*)(forMarshaling);
+    reservedmarshal_VkSRTDataNV(vkStream, rootType, (VkSRTDataNV*)(&forMarshaling_new->transformT0), ptr);
+    reservedmarshal_VkSRTDataNV(vkStream, rootType, (VkSRTDataNV*)(&forMarshaling_new->transformT1), 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);
+    
+}
+
+void reservedmarshal_VkAccelerationStructureMotionInstanceDataNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInstanceDataNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    reservedmarshal_VkAccelerationStructureInstanceKHR(vkStream, rootType, (VkAccelerationStructureInstanceKHR*)(&forMarshaling->staticInstance), ptr);
+}
+
+void reservedmarshal_VkAccelerationStructureMotionInstanceNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInstanceNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkAccelerationStructureMotionInstanceTypeNV*)&forMarshaling->type, sizeof(VkAccelerationStructureMotionInstanceTypeNV));
+    *ptr += sizeof(VkAccelerationStructureMotionInstanceTypeNV);
+    memcpy(*ptr, (VkAccelerationStructureMotionInstanceFlagsNV*)&forMarshaling->flags, sizeof(VkAccelerationStructureMotionInstanceFlagsNV));
+    *ptr += sizeof(VkAccelerationStructureMotionInstanceFlagsNV);
+    reservedmarshal_VkAccelerationStructureMotionInstanceDataNV(vkStream, rootType, (VkAccelerationStructureMotionInstanceDataNV*)(&forMarshaling->data), ptr);
+}
+
+void reservedmarshal_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->rayTracingMotionBlur, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->rayTracingMotionBlurPipelineTraceRaysIndirect, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+void reservedmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->ycbcr2plane444Formats, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_EXT_fragment_density_map2
 void reservedmarshal_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
     VulkanStreamGuest* vkStream,
@@ -14677,6 +17585,29 @@
 }
 
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+void reservedmarshal_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->formatRgba10x6WithoutYCbCrSampler, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_NV_acquire_winrt_display
+#endif
 #ifdef VK_EXT_directfb_surface
 void reservedmarshal_VkDirectFBSurfaceCreateInfoEXT(
     VulkanStreamGuest* vkStream,
@@ -14718,6 +17649,789 @@
 }
 
 #endif
+#ifdef VK_VALVE_mutable_descriptor_type
+void reservedmarshal_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->mutableDescriptorType, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkMutableDescriptorTypeListVALVE(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMutableDescriptorTypeListVALVE* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->descriptorTypeCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const VkDescriptorType*)forMarshaling->pDescriptorTypes, forMarshaling->descriptorTypeCount * sizeof(const VkDescriptorType));
+    *ptr += forMarshaling->descriptorTypeCount * sizeof(const VkDescriptorType);
+}
+
+void reservedmarshal_VkMutableDescriptorTypeCreateInfoVALVE(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMutableDescriptorTypeCreateInfoVALVE* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->mutableDescriptorTypeListCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->mutableDescriptorTypeListCount; ++i)
+    {
+        reservedmarshal_VkMutableDescriptorTypeListVALVE(vkStream, rootType, (const VkMutableDescriptorTypeListVALVE*)(forMarshaling->pMutableDescriptorTypeLists + i), ptr);
+    }
+}
+
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+void reservedmarshal_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->vertexInputDynamicState, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkVertexInputBindingDescription2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVertexInputBindingDescription2EXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->stride, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkVertexInputRate*)&forMarshaling->inputRate, sizeof(VkVertexInputRate));
+    *ptr += sizeof(VkVertexInputRate);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->divisor, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkVertexInputAttributeDescription2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVertexInputAttributeDescription2EXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->location, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkFormat*)&forMarshaling->format, sizeof(VkFormat));
+    *ptr += sizeof(VkFormat);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+#endif
+#ifdef VK_EXT_physical_device_drm
+void reservedmarshal_VkPhysicalDeviceDrmPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceDrmPropertiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->hasPrimary, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->hasRender, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (int64_t*)&forMarshaling->primaryMajor, sizeof(int64_t));
+    *ptr += sizeof(int64_t);
+    memcpy(*ptr, (int64_t*)&forMarshaling->primaryMinor, sizeof(int64_t));
+    *ptr += sizeof(int64_t);
+    memcpy(*ptr, (int64_t*)&forMarshaling->renderMajor, sizeof(int64_t));
+    *ptr += sizeof(int64_t);
+    memcpy(*ptr, (int64_t*)&forMarshaling->renderMinor, sizeof(int64_t));
+    *ptr += sizeof(int64_t);
+}
+
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+void reservedmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->primitiveTopologyListRestart, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->primitiveTopologyPatchListRestart, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_FUCHSIA_external_memory
+void reservedmarshal_VkImportMemoryZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImportMemoryZirconHandleInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
+    *ptr += sizeof(VkExternalMemoryHandleTypeFlagBits);
+    memcpy(*ptr, (zx_handle_t*)&forMarshaling->handle, sizeof(zx_handle_t));
+    *ptr += sizeof(zx_handle_t);
+}
+
+void reservedmarshal_VkMemoryZirconHandlePropertiesFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMemoryZirconHandlePropertiesFUCHSIA* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkMemoryGetZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMemoryGetZirconHandleInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, 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, (VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
+    *ptr += sizeof(VkExternalMemoryHandleTypeFlagBits);
+}
+
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+void reservedmarshal_VkImportSemaphoreZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImportSemaphoreZirconHandleInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, 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, (VkSemaphoreImportFlags*)&forMarshaling->flags, sizeof(VkSemaphoreImportFlags));
+    *ptr += sizeof(VkSemaphoreImportFlags);
+    memcpy(*ptr, (VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
+    *ptr += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
+    memcpy(*ptr, (zx_handle_t*)&forMarshaling->zirconHandle, sizeof(zx_handle_t));
+    *ptr += sizeof(zx_handle_t);
+}
+
+void reservedmarshal_VkSemaphoreGetZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSemaphoreGetZirconHandleInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, 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, (VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
+    *ptr += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
+}
+
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+void reservedmarshal_VkBufferCollectionCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferCollectionCreateInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (zx_handle_t*)&forMarshaling->collectionToken, sizeof(zx_handle_t));
+    *ptr += sizeof(zx_handle_t);
+}
+
+void reservedmarshal_VkImportMemoryBufferCollectionFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImportMemoryBufferCollectionFUCHSIA* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->collection;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->index, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkBufferCollectionImageCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferCollectionImageCreateInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->collection;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->index, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkBufferCollectionConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferCollectionConstraintsInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->minBufferCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxBufferCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->minBufferCountForCamping, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->minBufferCountForDedicatedSlack, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->minBufferCountForSharedSlack, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkBufferConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferConstraintsInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    reservedmarshal_VkBufferCreateInfo(vkStream, rootType, (VkBufferCreateInfo*)(&forMarshaling->createInfo), ptr);
+    memcpy(*ptr, (VkFormatFeatureFlags*)&forMarshaling->requiredFormatFeatures, sizeof(VkFormatFeatureFlags));
+    *ptr += sizeof(VkFormatFeatureFlags);
+    reservedmarshal_VkBufferCollectionConstraintsInfoFUCHSIA(vkStream, rootType, (VkBufferCollectionConstraintsInfoFUCHSIA*)(&forMarshaling->bufferCollectionConstraints), ptr);
+}
+
+void reservedmarshal_VkBufferCollectionBufferCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferCollectionBufferCreateInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->collection;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->index, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkSysmemColorSpaceFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSysmemColorSpaceFUCHSIA* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->colorSpace, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkBufferCollectionPropertiesFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferCollectionPropertiesFUCHSIA* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->memoryTypeBits, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->bufferCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->createInfoIndex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->sysmemPixelFormat, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+    memcpy(*ptr, (VkFormatFeatureFlags*)&forMarshaling->formatFeatures, sizeof(VkFormatFeatureFlags));
+    *ptr += sizeof(VkFormatFeatureFlags);
+    reservedmarshal_VkSysmemColorSpaceFUCHSIA(vkStream, rootType, (VkSysmemColorSpaceFUCHSIA*)(&forMarshaling->sysmemColorSpaceIndex), ptr);
+    reservedmarshal_VkComponentMapping(vkStream, rootType, (VkComponentMapping*)(&forMarshaling->samplerYcbcrConversionComponents), ptr);
+    memcpy(*ptr, (VkSamplerYcbcrModelConversion*)&forMarshaling->suggestedYcbcrModel, sizeof(VkSamplerYcbcrModelConversion));
+    *ptr += sizeof(VkSamplerYcbcrModelConversion);
+    memcpy(*ptr, (VkSamplerYcbcrRange*)&forMarshaling->suggestedYcbcrRange, sizeof(VkSamplerYcbcrRange));
+    *ptr += sizeof(VkSamplerYcbcrRange);
+    memcpy(*ptr, (VkChromaLocation*)&forMarshaling->suggestedXChromaOffset, sizeof(VkChromaLocation));
+    *ptr += sizeof(VkChromaLocation);
+    memcpy(*ptr, (VkChromaLocation*)&forMarshaling->suggestedYChromaOffset, sizeof(VkChromaLocation));
+    *ptr += sizeof(VkChromaLocation);
+}
+
+void reservedmarshal_VkImageFormatConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImageFormatConstraintsInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    reservedmarshal_VkImageCreateInfo(vkStream, rootType, (VkImageCreateInfo*)(&forMarshaling->imageCreateInfo), ptr);
+    memcpy(*ptr, (VkFormatFeatureFlags*)&forMarshaling->requiredFormatFeatures, sizeof(VkFormatFeatureFlags));
+    *ptr += sizeof(VkFormatFeatureFlags);
+    memcpy(*ptr, (VkImageFormatConstraintsFlagsFUCHSIA*)&forMarshaling->flags, sizeof(VkImageFormatConstraintsFlagsFUCHSIA));
+    *ptr += sizeof(VkImageFormatConstraintsFlagsFUCHSIA);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->sysmemPixelFormat, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->colorSpaceCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    reservedmarshal_VkSysmemColorSpaceFUCHSIA(vkStream, rootType, (const VkSysmemColorSpaceFUCHSIA*)(forMarshaling->pColorSpaces), ptr);
+}
+
+void reservedmarshal_VkImageConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImageConstraintsInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->formatConstraintsCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->formatConstraintsCount; ++i)
+    {
+        reservedmarshal_VkImageFormatConstraintsInfoFUCHSIA(vkStream, rootType, (const VkImageFormatConstraintsInfoFUCHSIA*)(forMarshaling->pFormatConstraints + i), ptr);
+    }
+    reservedmarshal_VkBufferCollectionConstraintsInfoFUCHSIA(vkStream, rootType, (VkBufferCollectionConstraintsInfoFUCHSIA*)(&forMarshaling->bufferCollectionConstraints), ptr);
+    memcpy(*ptr, (VkImageConstraintsInfoFlagsFUCHSIA*)&forMarshaling->flags, sizeof(VkImageConstraintsInfoFlagsFUCHSIA));
+    *ptr += sizeof(VkImageConstraintsInfoFlagsFUCHSIA);
+}
+
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+void reservedmarshal_VkSubpassShadingPipelineCreateInfoHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSubpassShadingPipelineCreateInfoHUAWEI* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    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);
+}
+
+void reservedmarshal_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->subpassShading, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxSubpassShadingWorkgroupSizeAspectRatio, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+void reservedmarshal_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->invocationMask, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_NV_external_memory_rdma
+void reservedmarshal_VkMemoryGetRemoteAddressInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMemoryGetRemoteAddressInfoNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, 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, (VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
+    *ptr += sizeof(VkExternalMemoryHandleTypeFlagBits);
+}
+
+void reservedmarshal_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->externalMemoryRDMA, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+void reservedmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->extendedDynamicState2, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->extendedDynamicState2LogicOp, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->extendedDynamicState2PatchControlPoints, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_QNX_screen_surface
+void reservedmarshal_VkScreenSurfaceCreateInfoQNX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkScreenSurfaceCreateInfoQNX* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkScreenSurfaceCreateFlagsQNX*)&forMarshaling->flags, sizeof(VkScreenSurfaceCreateFlagsQNX));
+    *ptr += sizeof(VkScreenSurfaceCreateFlagsQNX);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->context;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->context)
+    {
+        memcpy(*ptr, (_screen_context*)forMarshaling->context, sizeof(_screen_context));
+        *ptr += sizeof(_screen_context);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->window;
+    memcpy((*ptr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->window)
+    {
+        memcpy(*ptr, (_screen_window*)forMarshaling->window, sizeof(_screen_window));
+        *ptr += sizeof(_screen_window);
+    }
+}
+
+#endif
+#ifdef VK_EXT_color_write_enable
+void reservedmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceColorWriteEnableFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->colorWriteEnable, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPipelineColorWriteCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPipelineColorWriteCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const VkBool32*)forMarshaling->pColorWriteEnables, forMarshaling->attachmentCount * sizeof(const VkBool32));
+    *ptr += forMarshaling->attachmentCount * sizeof(const VkBool32);
+}
+
+#endif
 #ifdef VK_GOOGLE_gfxstream
 void reservedmarshal_VkImportColorBufferGOOGLE(
     VulkanStreamGuest* vkStream,
@@ -14785,6 +18499,184 @@
 }
 
 #endif
+#ifdef VK_EXT_global_priority_query
+void reservedmarshal_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->globalPriorityQuery, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkQueueFamilyGlobalPriorityPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkQueueFamilyGlobalPriorityPropertiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->priorityCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkQueueGlobalPriorityEXT*)forMarshaling->priorities, VK_MAX_GLOBAL_PRIORITY_SIZE_EXT * sizeof(VkQueueGlobalPriorityEXT));
+    *ptr += VK_MAX_GLOBAL_PRIORITY_SIZE_EXT * sizeof(VkQueueGlobalPriorityEXT);
+}
+
+#endif
+#ifdef VK_EXT_multi_draw
+void reservedmarshal_VkPhysicalDeviceMultiDrawFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMultiDrawFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->multiDraw, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceMultiDrawPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMultiDrawPropertiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxMultiDrawCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkMultiDrawInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMultiDrawInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->firstVertex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->vertexCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkMultiDrawIndexedInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMultiDrawIndexedInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->firstIndex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->indexCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (int32_t*)&forMarshaling->vertexOffset, sizeof(int32_t));
+    *ptr += sizeof(int32_t);
+}
+
+#endif
+#ifdef VK_EXT_load_store_op_none
+#endif
+#ifdef VK_EXT_border_color_swizzle
+void reservedmarshal_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->borderColorSwizzle, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->borderColorSwizzleFromImage, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkSamplerBorderColorComponentMappingCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSamplerBorderColorComponentMappingCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    reservedmarshal_VkComponentMapping(vkStream, rootType, (VkComponentMapping*)(&forMarshaling->components), ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->srgb, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+void reservedmarshal_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    (void)rootType;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    if (rootType == VK_STRUCTURE_TYPE_MAX_ENUM)
+    {
+        rootType = forMarshaling->sType;
+    }
+    reservedmarshal_extension_struct(vkStream, rootType, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->pageableDeviceLocalMemory, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_KHR_acceleration_structure
 void reservedmarshal_VkDeviceOrHostAddressKHR(
     VulkanStreamGuest* vkStream,
@@ -14798,18 +18690,6 @@
     *ptr += sizeof(VkDeviceAddress);
 }
 
-void reservedmarshal_VkDeviceOrHostAddressConstKHR(
-    VulkanStreamGuest* vkStream,
-    VkStructureType rootType,
-    const VkDeviceOrHostAddressConstKHR* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    (void)rootType;
-    memcpy(*ptr, (VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
-    *ptr += sizeof(VkDeviceAddress);
-}
-
 void reservedmarshal_VkAccelerationStructureBuildRangeInfoKHR(
     VulkanStreamGuest* vkStream,
     VkStructureType rootType,
@@ -15939,6 +19819,60 @@
             break;
         }
 #endif
+#ifdef VK_KHR_video_queue
+        case VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR:
+        {
+            reservedmarshal_VkVideoQueueFamilyProperties2KHR(vkStream, rootType, reinterpret_cast<const VkVideoQueueFamilyProperties2KHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR:
+        {
+            reservedmarshal_VkVideoProfileKHR(vkStream, rootType, reinterpret_cast<const VkVideoProfileKHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR:
+        {
+            reservedmarshal_VkVideoProfilesKHR(vkStream, rootType, reinterpret_cast<const VkVideoProfilesKHR*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_KHR_dynamic_rendering
+        case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR:
+        {
+            reservedmarshal_VkPipelineRenderingCreateInfoKHR(vkStream, rootType, reinterpret_cast<const VkPipelineRenderingCreateInfoKHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR:
+        {
+            reservedmarshal_VkPhysicalDeviceDynamicRenderingFeaturesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceDynamicRenderingFeaturesKHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR:
+        {
+            reservedmarshal_VkCommandBufferInheritanceRenderingInfoKHR(vkStream, rootType, reinterpret_cast<const VkCommandBufferInheritanceRenderingInfoKHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
+        {
+            reservedmarshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(vkStream, rootType, reinterpret_cast<const VkRenderingFragmentShadingRateAttachmentInfoKHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:
+        {
+            reservedmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(vkStream, rootType, reinterpret_cast<const VkRenderingFragmentDensityMapAttachmentInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:
+        {
+            reservedmarshal_VkAttachmentSampleCountInfoAMD(vkStream, rootType, reinterpret_cast<const VkAttachmentSampleCountInfoAMD*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:
+        {
+            reservedmarshal_VkMultiviewPerViewAttributesInfoNVX(vkStream, rootType, reinterpret_cast<const VkMultiviewPerViewAttributesInfoNVX*>(structExtension), ptr);
+            break;
+        }
+#endif
 #ifdef VK_KHR_external_memory_win32
         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
         {
@@ -16082,6 +20016,13 @@
             break;
         }
 #endif
+#ifdef VK_KHR_present_wait
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:
+        {
+            reservedmarshal_VkPhysicalDevicePresentWaitFeaturesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDevicePresentWaitFeaturesKHR*>(structExtension), ptr);
+            break;
+        }
+#endif
 #ifdef VK_KHR_pipeline_executable_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
         {
@@ -16089,6 +20030,94 @@
             break;
         }
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR:
+        {
+            reservedmarshal_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR:
+        {
+            reservedmarshal_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_KHR_present_id
+        case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:
+        {
+            reservedmarshal_VkPresentIdKHR(vkStream, rootType, reinterpret_cast<const VkPresentIdKHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:
+        {
+            reservedmarshal_VkPhysicalDevicePresentIdFeaturesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDevicePresentIdFeaturesKHR*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_KHR_video_encode_queue
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:
+        {
+            reservedmarshal_VkVideoEncodeRateControlInfoKHR(vkStream, rootType, reinterpret_cast<const VkVideoEncodeRateControlInfoKHR*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_KHR_synchronization2
+        case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR:
+        {
+            reservedmarshal_VkMemoryBarrier2KHR(vkStream, rootType, reinterpret_cast<const VkMemoryBarrier2KHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR:
+        {
+            reservedmarshal_VkPhysicalDeviceSynchronization2FeaturesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceSynchronization2FeaturesKHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:
+        {
+            reservedmarshal_VkQueueFamilyCheckpointProperties2NV(vkStream, rootType, reinterpret_cast<const VkQueueFamilyCheckpointProperties2NV*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR:
+        {
+            reservedmarshal_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR:
+        {
+            reservedmarshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:
+        {
+            reservedmarshal_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_KHR_format_feature_flags2
+        case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR:
+        {
+            reservedmarshal_VkFormatProperties3KHR(vkStream, rootType, reinterpret_cast<const VkFormatProperties3KHR*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_KHR_maintenance4
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR:
+        {
+            reservedmarshal_VkPhysicalDeviceMaintenance4FeaturesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceMaintenance4FeaturesKHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR:
+        {
+            reservedmarshal_VkPhysicalDeviceMaintenance4PropertiesKHR(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceMaintenance4PropertiesKHR*>(structExtension), ptr);
+            break;
+        }
+#endif
 #ifdef VK_ANDROID_native_buffer
         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
         {
@@ -16144,6 +20173,122 @@
             break;
         }
 #endif
+#ifdef VK_EXT_video_encode_h264
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT:
+        {
+            reservedmarshal_VkVideoEncodeH264CapabilitiesEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH264CapabilitiesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkVideoEncodeH264SessionCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH264SessionCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            reservedmarshal_VkVideoEncodeH264SessionParametersAddInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH264SessionParametersAddInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkVideoEncodeH264SessionParametersCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH264SessionParametersCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT:
+        {
+            reservedmarshal_VkVideoEncodeH264VclFrameInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH264VclFrameInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT:
+        {
+            reservedmarshal_VkVideoEncodeH264EmitPictureParametersEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH264EmitPictureParametersEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT:
+        {
+            reservedmarshal_VkVideoEncodeH264ProfileEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH264ProfileEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_video_encode_h265
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT:
+        {
+            reservedmarshal_VkVideoEncodeH265CapabilitiesEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH265CapabilitiesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkVideoEncodeH265SessionCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH265SessionCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            reservedmarshal_VkVideoEncodeH265SessionParametersAddInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH265SessionParametersAddInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkVideoEncodeH265SessionParametersCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH265SessionParametersCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT:
+        {
+            reservedmarshal_VkVideoEncodeH265VclFrameInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH265VclFrameInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT:
+        {
+            reservedmarshal_VkVideoEncodeH265EmitPictureParametersEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH265EmitPictureParametersEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT:
+        {
+            reservedmarshal_VkVideoEncodeH265ProfileEXT(vkStream, rootType, reinterpret_cast<const VkVideoEncodeH265ProfileEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_video_decode_h264
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT:
+        {
+            reservedmarshal_VkVideoDecodeH264ProfileEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH264ProfileEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT:
+        {
+            reservedmarshal_VkVideoDecodeH264CapabilitiesEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH264CapabilitiesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkVideoDecodeH264SessionCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH264SessionCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            reservedmarshal_VkVideoDecodeH264SessionParametersAddInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH264SessionParametersAddInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkVideoDecodeH264SessionParametersCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH264SessionParametersCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT:
+        {
+            reservedmarshal_VkVideoDecodeH264PictureInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH264PictureInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT:
+        {
+            reservedmarshal_VkVideoDecodeH264MvcEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH264MvcEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT:
+        {
+            reservedmarshal_VkVideoDecodeH264DpbSlotInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH264DpbSlotInfoEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
@@ -16326,6 +20471,11 @@
             reservedmarshal_VkExternalFormatANDROID(vkStream, rootType, reinterpret_cast<const VkExternalFormatANDROID*>(structExtension), ptr);
             break;
         }
+        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:
+        {
+            reservedmarshal_VkAndroidHardwareBufferFormatProperties2ANDROID(vkStream, rootType, reinterpret_cast<const VkAndroidHardwareBufferFormatProperties2ANDROID*>(structExtension), ptr);
+            break;
+        }
 #endif
 #ifdef VK_EXT_inline_uniform_block
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:
@@ -16435,6 +20585,11 @@
             reservedmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>(structExtension), ptr);
             break;
         }
+        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:
+        {
+            reservedmarshal_VkDrmFormatModifierPropertiesList2EXT(vkStream, rootType, reinterpret_cast<const VkDrmFormatModifierPropertiesList2EXT*>(structExtension), ptr);
+            break;
+        }
 #endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
@@ -16534,6 +20689,43 @@
             break;
         }
 #endif
+#ifdef VK_EXT_video_decode_h265
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT:
+        {
+            reservedmarshal_VkVideoDecodeH265ProfileEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH265ProfileEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT:
+        {
+            reservedmarshal_VkVideoDecodeH265CapabilitiesEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH265CapabilitiesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkVideoDecodeH265SessionCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH265SessionCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            reservedmarshal_VkVideoDecodeH265SessionParametersAddInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH265SessionParametersAddInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkVideoDecodeH265SessionParametersCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH265SessionParametersCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT:
+        {
+            reservedmarshal_VkVideoDecodeH265PictureInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH265PictureInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT:
+        {
+            reservedmarshal_VkVideoDecodeH265DpbSlotInfoEXT(vkStream, rootType, reinterpret_cast<const VkVideoDecodeH265DpbSlotInfoEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
         case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
         {
@@ -16856,6 +21048,23 @@
             break;
         }
 #endif
+#ifdef VK_EXT_provoking_vertex
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceProvokingVertexFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceProvokingVertexPropertiesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
 #ifdef VK_EXT_full_screen_exclusive
         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
         {
@@ -16911,6 +21120,13 @@
             break;
         }
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT*>(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:
         {
@@ -16935,6 +21151,18 @@
             break;
         }
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceInheritedViewportScissorFeaturesNV*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:
+        {
+            reservedmarshal_VkCommandBufferInheritanceViewportScissorInfoNV(vkStream, rootType, reinterpret_cast<const VkCommandBufferInheritanceViewportScissorInfoNV*>(structExtension), ptr);
+            break;
+        }
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
         {
@@ -17048,6 +21276,30 @@
             break;
         }
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:
+        {
+            reservedmarshal_VkAccelerationStructureGeometryMotionTrianglesDataNV(vkStream, rootType, reinterpret_cast<const VkAccelerationStructureGeometryMotionTrianglesDataNV*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:
+        {
+            reservedmarshal_VkAccelerationStructureMotionInfoNV(vkStream, rootType, reinterpret_cast<const VkAccelerationStructureMotionInfoNV*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
 #ifdef VK_EXT_fragment_density_map2
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
         {
@@ -17081,6 +21333,120 @@
             break;
         }
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_VALVE_mutable_descriptor_type
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE:
+        {
+            reservedmarshal_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE:
+        {
+            reservedmarshal_VkMutableDescriptorTypeCreateInfoVALVE(vkStream, rootType, reinterpret_cast<const VkMutableDescriptorTypeCreateInfoVALVE*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_physical_device_drm
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceDrmPropertiesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceDrmPropertiesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_FUCHSIA_external_memory
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:
+        {
+            reservedmarshal_VkImportMemoryZirconHandleInfoFUCHSIA(vkStream, rootType, reinterpret_cast<const VkImportMemoryZirconHandleInfoFUCHSIA*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:
+        {
+            reservedmarshal_VkImportMemoryBufferCollectionFUCHSIA(vkStream, rootType, reinterpret_cast<const VkImportMemoryBufferCollectionFUCHSIA*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:
+        {
+            reservedmarshal_VkBufferCollectionImageCreateInfoFUCHSIA(vkStream, rootType, reinterpret_cast<const VkBufferCollectionImageCreateInfoFUCHSIA*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:
+        {
+            reservedmarshal_VkBufferCollectionBufferCreateInfoFUCHSIA(vkStream, rootType, reinterpret_cast<const VkBufferCollectionBufferCreateInfoFUCHSIA*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+        case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:
+        {
+            reservedmarshal_VkSubpassShadingPipelineCreateInfoHUAWEI(vkStream, rootType, reinterpret_cast<const VkSubpassShadingPipelineCreateInfoHUAWEI*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:
+        {
+            reservedmarshal_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:
+        {
+            reservedmarshal_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:
+        {
+            reservedmarshal_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_NV_external_memory_rdma
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_color_write_enable
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkPipelineColorWriteCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkPipelineColorWriteCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
 #ifdef VK_GOOGLE_gfxstream
         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
         {
@@ -17098,6 +21464,49 @@
             break;
         }
 #endif
+#ifdef VK_EXT_global_priority_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT:
+        {
+            reservedmarshal_VkQueueFamilyGlobalPriorityPropertiesEXT(vkStream, rootType, reinterpret_cast<const VkQueueFamilyGlobalPriorityPropertiesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_multi_draw
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceMultiDrawFeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceMultiDrawFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceMultiDrawPropertiesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceMultiDrawPropertiesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_border_color_swizzle
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkSamplerBorderColorComponentMappingCreateInfoEXT(vkStream, rootType, reinterpret_cast<const VkSamplerBorderColorComponentMappingCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(vkStream, rootType, reinterpret_cast<const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
 #ifdef VK_KHR_acceleration_structure
         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
         {
diff --git a/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.h b/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.h
index 9395165..6b09067 100644
--- a/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.h
+++ b/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.h
@@ -128,6 +128,12 @@
     const VkMemoryBarrier* forMarshaling,
     uint8_t** ptr);
 
+void reservedmarshal_VkPipelineCacheHeaderVersionOne(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPipelineCacheHeaderVersionOne* forMarshaling,
+    uint8_t** ptr);
+
 void reservedmarshal_VkAllocationCallbacks(
     VulkanStreamGuest* vkStream,
     VkStructureType rootType,
@@ -1579,6 +1585,170 @@
 #endif
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
+#ifdef VK_KHR_video_queue
+void reservedmarshal_VkVideoQueueFamilyProperties2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoQueueFamilyProperties2KHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoProfileKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoProfileKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoProfilesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoProfilesKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoCapabilitiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoCapabilitiesKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceVideoFormatInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceVideoFormatInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoFormatPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoFormatPropertiesKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoPictureResourceKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoPictureResourceKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoReferenceSlotKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoReferenceSlotKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoGetMemoryPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoGetMemoryPropertiesKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoBindMemoryKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoBindMemoryKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoSessionCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoSessionCreateInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoSessionParametersCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoSessionParametersCreateInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoSessionParametersUpdateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoSessionParametersUpdateInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoBeginCodingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoBeginCodingInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoEndCodingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEndCodingInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoCodingControlInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoCodingControlInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_KHR_video_decode_queue
+void reservedmarshal_VkVideoDecodeInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_KHR_dynamic_rendering
+void reservedmarshal_VkRenderingAttachmentInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkRenderingAttachmentInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkRenderingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkRenderingInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPipelineRenderingCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPipelineRenderingCreateInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceDynamicRenderingFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceDynamicRenderingFeaturesKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkCommandBufferInheritanceRenderingInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCommandBufferInheritanceRenderingInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkRenderingFragmentShadingRateAttachmentInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkRenderingFragmentDensityMapAttachmentInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkRenderingFragmentDensityMapAttachmentInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAttachmentSampleCountInfoAMD(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAttachmentSampleCountInfoAMD* forMarshaling,
+    uint8_t** ptr);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkAttachmentSampleCountInfoAMD, reservedmarshal_VkAttachmentSampleCountInfoNV)
+
+void reservedmarshal_VkMultiviewPerViewAttributesInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMultiviewPerViewAttributesInfoNVX* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_KHR_multiview
 DEFINE_ALIAS_FUNCTION(reservedmarshal_VkRenderPassMultiviewCreateInfo, reservedmarshal_VkRenderPassMultiviewCreateInfoKHR)
 
@@ -2183,6 +2353,14 @@
 DEFINE_ALIAS_FUNCTION(reservedmarshal_VkAttachmentDescriptionStencilLayout, reservedmarshal_VkAttachmentDescriptionStencilLayoutKHR)
 
 #endif
+#ifdef VK_KHR_present_wait
+void reservedmarshal_VkPhysicalDevicePresentWaitFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDevicePresentWaitFeaturesKHR* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_KHR_uniform_buffer_standard_layout
 DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures, reservedmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR)
 
@@ -2245,6 +2423,20 @@
     uint8_t** ptr);
 
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+void reservedmarshal_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_KHR_pipeline_library
 void reservedmarshal_VkPipelineLibraryCreateInfoKHR(
     VulkanStreamGuest* vkStream,
@@ -2255,6 +2447,120 @@
 #endif
 #ifdef VK_KHR_shader_non_semantic_info
 #endif
+#ifdef VK_KHR_present_id
+void reservedmarshal_VkPresentIdKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPresentIdKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDevicePresentIdFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDevicePresentIdFeaturesKHR* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_KHR_video_encode_queue
+void reservedmarshal_VkVideoEncodeInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoEncodeRateControlInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeRateControlInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_KHR_synchronization2
+void reservedmarshal_VkMemoryBarrier2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMemoryBarrier2KHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkBufferMemoryBarrier2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferMemoryBarrier2KHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkImageMemoryBarrier2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImageMemoryBarrier2KHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkDependencyInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDependencyInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkSemaphoreSubmitInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSemaphoreSubmitInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkCommandBufferSubmitInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCommandBufferSubmitInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkSubmitInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSubmitInfo2KHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceSynchronization2FeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSynchronization2FeaturesKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkQueueFamilyCheckpointProperties2NV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkQueueFamilyCheckpointProperties2NV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkCheckpointData2NV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCheckpointData2NV* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+void reservedmarshal_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+void reservedmarshal_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+void reservedmarshal_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_KHR_copy_commands2
 void reservedmarshal_VkBufferCopy2KHR(
     VulkanStreamGuest* vkStream,
@@ -2323,6 +2629,40 @@
     uint8_t** ptr);
 
 #endif
+#ifdef VK_KHR_format_feature_flags2
+void reservedmarshal_VkFormatProperties3KHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkFormatProperties3KHR* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_KHR_maintenance4
+void reservedmarshal_VkPhysicalDeviceMaintenance4FeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMaintenance4FeaturesKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceMaintenance4PropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMaintenance4PropertiesKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkDeviceBufferMemoryRequirementsKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDeviceBufferMemoryRequirementsKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkDeviceImageMemoryRequirementsKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDeviceImageMemoryRequirementsKHR* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_ANDROID_native_buffer
 void reservedmarshal_VkNativeBufferANDROID(
     VulkanStreamGuest* vkStream,
@@ -2419,6 +2759,26 @@
     uint8_t** ptr);
 
 #endif
+#ifdef VK_NVX_binary_import
+void reservedmarshal_VkCuModuleCreateInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCuModuleCreateInfoNVX* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkCuFunctionCreateInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCuFunctionCreateInfoNVX* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkCuLaunchInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCuLaunchInfoNVX* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_NVX_image_view_handle
 void reservedmarshal_VkImageViewHandleInfoNVX(
     VulkanStreamGuest* vkStream,
@@ -2441,6 +2801,174 @@
 #endif
 #ifdef VK_AMD_shader_ballot
 #endif
+#ifdef VK_EXT_video_encode_h264
+void reservedmarshal_VkVideoEncodeH264CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264CapabilitiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoEncodeH264SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoEncodeH264SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionParametersAddInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoEncodeH264SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264SessionParametersCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoEncodeH264DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264DpbSlotInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoEncodeH264NaluSliceEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264NaluSliceEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoEncodeH264VclFrameInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264VclFrameInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoEncodeH264EmitPictureParametersEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264EmitPictureParametersEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoEncodeH264ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH264ProfileEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_video_encode_h265
+void reservedmarshal_VkVideoEncodeH265CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265CapabilitiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoEncodeH265SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoEncodeH265SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionParametersAddInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoEncodeH265SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265SessionParametersCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoEncodeH265DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265DpbSlotInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoEncodeH265ReferenceListsEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265ReferenceListsEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoEncodeH265NaluSliceEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265NaluSliceEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoEncodeH265VclFrameInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265VclFrameInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoEncodeH265EmitPictureParametersEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265EmitPictureParametersEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoEncodeH265ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoEncodeH265ProfileEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_video_decode_h264
+void reservedmarshal_VkVideoDecodeH264ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264ProfileEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoDecodeH264CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264CapabilitiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoDecodeH264SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoDecodeH264SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionParametersAddInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoDecodeH264SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264SessionParametersCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoDecodeH264PictureInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264PictureInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoDecodeH264MvcEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264MvcEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoDecodeH264DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH264DpbSlotInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
 void reservedmarshal_VkTextureLODGatherFormatPropertiesAMD(
     VulkanStreamGuest* vkStream,
@@ -2844,6 +3372,12 @@
     const VkExternalFormatANDROID* forMarshaling,
     uint8_t** ptr);
 
+void reservedmarshal_VkAndroidHardwareBufferFormatProperties2ANDROID(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAndroidHardwareBufferFormatProperties2ANDROID* forMarshaling,
+    uint8_t** ptr);
+
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
 DEFINE_ALIAS_FUNCTION(reservedmarshal_VkSamplerReductionModeCreateInfo, reservedmarshal_VkSamplerReductionModeCreateInfoEXT)
@@ -3026,6 +3560,18 @@
     const VkImageDrmFormatModifierPropertiesEXT* forMarshaling,
     uint8_t** ptr);
 
+void reservedmarshal_VkDrmFormatModifierProperties2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDrmFormatModifierProperties2EXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkDrmFormatModifierPropertiesList2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDrmFormatModifierPropertiesList2EXT* forMarshaling,
+    uint8_t** ptr);
+
 #endif
 #ifdef VK_EXT_validation_cache
 void reservedmarshal_VkValidationCacheCreateInfoEXT(
@@ -3281,6 +3827,50 @@
     uint8_t** ptr);
 
 #endif
+#ifdef VK_EXT_video_decode_h265
+void reservedmarshal_VkVideoDecodeH265ProfileEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265ProfileEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoDecodeH265CapabilitiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265CapabilitiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoDecodeH265SessionCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoDecodeH265SessionParametersAddInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionParametersAddInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoDecodeH265SessionParametersCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265SessionParametersCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoDecodeH265PictureInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265PictureInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVideoDecodeH265DpbSlotInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVideoDecodeH265DpbSlotInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
 void reservedmarshal_VkDeviceMemoryOverallocationCreateInfoAMD(
     VulkanStreamGuest* vkStream,
@@ -3705,6 +4295,26 @@
     uint8_t** ptr);
 
 #endif
+#ifdef VK_EXT_provoking_vertex
+void reservedmarshal_VkPhysicalDeviceProvokingVertexFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceProvokingVertexFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceProvokingVertexPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceProvokingVertexPropertiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_EXT_full_screen_exclusive
 void reservedmarshal_VkSurfaceFullScreenExclusiveInfoEXT(
     VulkanStreamGuest* vkStream,
@@ -3781,6 +4391,14 @@
     uint8_t** ptr);
 
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+void reservedmarshal_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 void reservedmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
     VulkanStreamGuest* vkStream,
@@ -3869,6 +4487,20 @@
     uint8_t** ptr);
 
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+void reservedmarshal_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceInheritedViewportScissorFeaturesNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkCommandBufferInheritanceViewportScissorInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkCommandBufferInheritanceViewportScissorInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
 void reservedmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
     VulkanStreamGuest* vkStream,
@@ -3917,6 +4549,8 @@
     uint8_t** ptr);
 
 #endif
+#ifdef VK_EXT_acquire_drm_display
+#endif
 #ifdef VK_EXT_robustness2
 void reservedmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(
     VulkanStreamGuest* vkStream,
@@ -4017,6 +4651,70 @@
     uint8_t** ptr);
 
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+void reservedmarshal_VkDeviceOrHostAddressConstKHR(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkDeviceOrHostAddressConstKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAccelerationStructureGeometryMotionTrianglesDataNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureGeometryMotionTrianglesDataNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAccelerationStructureMotionInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAccelerationStructureMatrixMotionInstanceNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureMatrixMotionInstanceNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkSRTDataNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSRTDataNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAccelerationStructureSRTMotionInstanceNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureSRTMotionInstanceNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAccelerationStructureMotionInstanceDataNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInstanceDataNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAccelerationStructureMotionInstanceNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkAccelerationStructureMotionInstanceNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+void reservedmarshal_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_EXT_fragment_density_map2
 void reservedmarshal_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
     VulkanStreamGuest* vkStream,
@@ -4055,6 +4753,16 @@
     uint8_t** ptr);
 
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+void reservedmarshal_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_NV_acquire_winrt_display
+#endif
 #ifdef VK_EXT_directfb_surface
 void reservedmarshal_VkDirectFBSurfaceCreateInfoEXT(
     VulkanStreamGuest* vkStream,
@@ -4063,6 +4771,230 @@
     uint8_t** ptr);
 
 #endif
+#ifdef VK_VALVE_mutable_descriptor_type
+void reservedmarshal_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkMutableDescriptorTypeListVALVE(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMutableDescriptorTypeListVALVE* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkMutableDescriptorTypeCreateInfoVALVE(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMutableDescriptorTypeCreateInfoVALVE* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+void reservedmarshal_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVertexInputBindingDescription2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVertexInputBindingDescription2EXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkVertexInputAttributeDescription2EXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkVertexInputAttributeDescription2EXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_physical_device_drm
+void reservedmarshal_VkPhysicalDeviceDrmPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceDrmPropertiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+void reservedmarshal_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_FUCHSIA_external_memory
+void reservedmarshal_VkImportMemoryZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImportMemoryZirconHandleInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkMemoryZirconHandlePropertiesFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMemoryZirconHandlePropertiesFUCHSIA* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkMemoryGetZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMemoryGetZirconHandleInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+void reservedmarshal_VkImportSemaphoreZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImportSemaphoreZirconHandleInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkSemaphoreGetZirconHandleInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSemaphoreGetZirconHandleInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+void reservedmarshal_VkBufferCollectionCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferCollectionCreateInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkImportMemoryBufferCollectionFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImportMemoryBufferCollectionFUCHSIA* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkBufferCollectionImageCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferCollectionImageCreateInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkBufferCollectionConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferCollectionConstraintsInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkBufferConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferConstraintsInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkBufferCollectionBufferCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferCollectionBufferCreateInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkSysmemColorSpaceFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSysmemColorSpaceFUCHSIA* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkBufferCollectionPropertiesFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkBufferCollectionPropertiesFUCHSIA* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkImageFormatConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImageFormatConstraintsInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkImageConstraintsInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkImageConstraintsInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+void reservedmarshal_VkSubpassShadingPipelineCreateInfoHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSubpassShadingPipelineCreateInfoHUAWEI* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+void reservedmarshal_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_NV_external_memory_rdma
+void reservedmarshal_VkMemoryGetRemoteAddressInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMemoryGetRemoteAddressInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+void reservedmarshal_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_QNX_screen_surface
+void reservedmarshal_VkScreenSurfaceCreateInfoQNX(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkScreenSurfaceCreateInfoQNX* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_color_write_enable
+void reservedmarshal_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceColorWriteEnableFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPipelineColorWriteCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPipelineColorWriteCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_GOOGLE_gfxstream
 void reservedmarshal_VkImportColorBufferGOOGLE(
     VulkanStreamGuest* vkStream,
@@ -4083,6 +5015,70 @@
     uint8_t** ptr);
 
 #endif
+#ifdef VK_EXT_global_priority_query
+void reservedmarshal_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkQueueFamilyGlobalPriorityPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkQueueFamilyGlobalPriorityPropertiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_multi_draw
+void reservedmarshal_VkPhysicalDeviceMultiDrawFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMultiDrawFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceMultiDrawPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceMultiDrawPropertiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkMultiDrawInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMultiDrawInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkMultiDrawIndexedInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkMultiDrawIndexedInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_load_store_op_none
+#endif
+#ifdef VK_EXT_border_color_swizzle
+void reservedmarshal_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkSamplerBorderColorComponentMappingCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkSamplerBorderColorComponentMappingCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+void reservedmarshal_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkStructureType rootType,
+    const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_KHR_acceleration_structure
 void reservedmarshal_VkDeviceOrHostAddressKHR(
     VulkanStreamGuest* vkStream,
@@ -4090,12 +5086,6 @@
     const VkDeviceOrHostAddressKHR* forMarshaling,
     uint8_t** ptr);
 
-void reservedmarshal_VkDeviceOrHostAddressConstKHR(
-    VulkanStreamGuest* vkStream,
-    VkStructureType rootType,
-    const VkDeviceOrHostAddressConstKHR* forMarshaling,
-    uint8_t** ptr);
-
 void reservedmarshal_VkAccelerationStructureBuildRangeInfoKHR(
     VulkanStreamGuest* vkStream,
     VkStructureType rootType,
diff --git a/system/vulkan_enc/goldfish_vk_transform_guest.cpp b/system/vulkan_enc/goldfish_vk_transform_guest.cpp
index bcc896b..b86ee88 100644
--- a/system/vulkan_enc/goldfish_vk_transform_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_transform_guest.cpp
@@ -312,6 +312,22 @@
     }
 }
 
+void transform_tohost_VkPipelineCacheHeaderVersionOne(
+    ResourceTracker* resourceTracker,
+    VkPipelineCacheHeaderVersionOne* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkPipelineCacheHeaderVersionOne(
+    ResourceTracker* resourceTracker,
+    VkPipelineCacheHeaderVersionOne* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
 void transform_tohost_VkAllocationCallbacks(
     ResourceTracker* resourceTracker,
     VkAllocationCallbacks* toTransform)
@@ -6587,6 +6603,784 @@
 #endif
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
+#ifdef VK_KHR_video_queue
+void transform_tohost_VkVideoQueueFamilyProperties2KHR(
+    ResourceTracker* resourceTracker,
+    VkVideoQueueFamilyProperties2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoQueueFamilyProperties2KHR(
+    ResourceTracker* resourceTracker,
+    VkVideoQueueFamilyProperties2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVideoProfileKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoProfileKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoProfileKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoProfileKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVideoProfilesKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoProfilesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pProfiles)
+    {
+        transform_tohost_VkVideoProfileKHR(resourceTracker, (VkVideoProfileKHR*)(toTransform->pProfiles));
+    }
+}
+
+void transform_fromhost_VkVideoProfilesKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoProfilesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pProfiles)
+    {
+        transform_fromhost_VkVideoProfileKHR(resourceTracker, (VkVideoProfileKHR*)(toTransform->pProfiles));
+    }
+}
+
+void transform_tohost_VkVideoCapabilitiesKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoCapabilitiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->videoPictureExtentGranularity));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->minExtent));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxExtent));
+}
+
+void transform_fromhost_VkVideoCapabilitiesKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoCapabilitiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->videoPictureExtentGranularity));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->minExtent));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxExtent));
+}
+
+void transform_tohost_VkPhysicalDeviceVideoFormatInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVideoFormatInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pVideoProfiles)
+    {
+        transform_tohost_VkVideoProfilesKHR(resourceTracker, (VkVideoProfilesKHR*)(toTransform->pVideoProfiles));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceVideoFormatInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVideoFormatInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pVideoProfiles)
+    {
+        transform_fromhost_VkVideoProfilesKHR(resourceTracker, (VkVideoProfilesKHR*)(toTransform->pVideoProfiles));
+    }
+}
+
+void transform_tohost_VkVideoFormatPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoFormatPropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoFormatPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoFormatPropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVideoPictureResourceKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoPictureResourceKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->codedOffset));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->codedExtent));
+}
+
+void transform_fromhost_VkVideoPictureResourceKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoPictureResourceKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->codedOffset));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->codedExtent));
+}
+
+void transform_tohost_VkVideoReferenceSlotKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoReferenceSlotKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pPictureResource)
+    {
+        transform_tohost_VkVideoPictureResourceKHR(resourceTracker, (VkVideoPictureResourceKHR*)(toTransform->pPictureResource));
+    }
+}
+
+void transform_fromhost_VkVideoReferenceSlotKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoReferenceSlotKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pPictureResource)
+    {
+        transform_fromhost_VkVideoPictureResourceKHR(resourceTracker, (VkVideoPictureResourceKHR*)(toTransform->pPictureResource));
+    }
+}
+
+void transform_tohost_VkVideoGetMemoryPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoGetMemoryPropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pMemoryRequirements)
+    {
+        transform_tohost_VkMemoryRequirements2(resourceTracker, (VkMemoryRequirements2*)(toTransform->pMemoryRequirements));
+    }
+}
+
+void transform_fromhost_VkVideoGetMemoryPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoGetMemoryPropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pMemoryRequirements)
+    {
+        transform_fromhost_VkMemoryRequirements2(resourceTracker, (VkMemoryRequirements2*)(toTransform->pMemoryRequirements));
+    }
+}
+
+void transform_tohost_VkVideoBindMemoryKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoBindMemoryKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoBindMemoryKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoBindMemoryKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVideoSessionCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoSessionCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pVideoProfile)
+    {
+        transform_tohost_VkVideoProfileKHR(resourceTracker, (VkVideoProfileKHR*)(toTransform->pVideoProfile));
+    }
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxCodedExtent));
+}
+
+void transform_fromhost_VkVideoSessionCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoSessionCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pVideoProfile)
+    {
+        transform_fromhost_VkVideoProfileKHR(resourceTracker, (VkVideoProfileKHR*)(toTransform->pVideoProfile));
+    }
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxCodedExtent));
+}
+
+void transform_tohost_VkVideoSessionParametersCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoSessionParametersCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoSessionParametersCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoSessionParametersCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVideoSessionParametersUpdateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoSessionParametersUpdateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoSessionParametersUpdateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoSessionParametersUpdateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVideoBeginCodingInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoBeginCodingInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pReferenceSlots)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->referenceSlotCount; ++i)
+            {
+                transform_tohost_VkVideoReferenceSlotKHR(resourceTracker, (VkVideoReferenceSlotKHR*)(toTransform->pReferenceSlots + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkVideoBeginCodingInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoBeginCodingInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pReferenceSlots)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->referenceSlotCount; ++i)
+            {
+                transform_fromhost_VkVideoReferenceSlotKHR(resourceTracker, (VkVideoReferenceSlotKHR*)(toTransform->pReferenceSlots + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkVideoEndCodingInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoEndCodingInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoEndCodingInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoEndCodingInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVideoCodingControlInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoCodingControlInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoCodingControlInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoCodingControlInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_video_decode_queue
+void transform_tohost_VkVideoDecodeInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->codedOffset));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->codedExtent));
+    transform_tohost_VkVideoPictureResourceKHR(resourceTracker, (VkVideoPictureResourceKHR*)(&toTransform->dstPictureResource));
+    if (toTransform->pSetupReferenceSlot)
+    {
+        transform_tohost_VkVideoReferenceSlotKHR(resourceTracker, (VkVideoReferenceSlotKHR*)(toTransform->pSetupReferenceSlot));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pReferenceSlots)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->referenceSlotCount; ++i)
+            {
+                transform_tohost_VkVideoReferenceSlotKHR(resourceTracker, (VkVideoReferenceSlotKHR*)(toTransform->pReferenceSlots + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkVideoDecodeInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->codedOffset));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->codedExtent));
+    transform_fromhost_VkVideoPictureResourceKHR(resourceTracker, (VkVideoPictureResourceKHR*)(&toTransform->dstPictureResource));
+    if (toTransform->pSetupReferenceSlot)
+    {
+        transform_fromhost_VkVideoReferenceSlotKHR(resourceTracker, (VkVideoReferenceSlotKHR*)(toTransform->pSetupReferenceSlot));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pReferenceSlots)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->referenceSlotCount; ++i)
+            {
+                transform_fromhost_VkVideoReferenceSlotKHR(resourceTracker, (VkVideoReferenceSlotKHR*)(toTransform->pReferenceSlots + i));
+            }
+        }
+    }
+}
+
+#endif
+#ifdef VK_KHR_dynamic_rendering
+void transform_tohost_VkRenderingAttachmentInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRenderingAttachmentInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkClearValue(resourceTracker, (VkClearValue*)(&toTransform->clearValue));
+}
+
+void transform_fromhost_VkRenderingAttachmentInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRenderingAttachmentInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkClearValue(resourceTracker, (VkClearValue*)(&toTransform->clearValue));
+}
+
+void transform_tohost_VkRenderingInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRenderingInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkRect2D(resourceTracker, (VkRect2D*)(&toTransform->renderArea));
+    if (toTransform)
+    {
+        if (toTransform->pColorAttachments)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
+            {
+                transform_tohost_VkRenderingAttachmentInfoKHR(resourceTracker, (VkRenderingAttachmentInfoKHR*)(toTransform->pColorAttachments + i));
+            }
+        }
+    }
+    if (toTransform->pDepthAttachment)
+    {
+        transform_tohost_VkRenderingAttachmentInfoKHR(resourceTracker, (VkRenderingAttachmentInfoKHR*)(toTransform->pDepthAttachment));
+    }
+    if (toTransform->pStencilAttachment)
+    {
+        transform_tohost_VkRenderingAttachmentInfoKHR(resourceTracker, (VkRenderingAttachmentInfoKHR*)(toTransform->pStencilAttachment));
+    }
+}
+
+void transform_fromhost_VkRenderingInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRenderingInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(&toTransform->renderArea));
+    if (toTransform)
+    {
+        if (toTransform->pColorAttachments)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
+            {
+                transform_fromhost_VkRenderingAttachmentInfoKHR(resourceTracker, (VkRenderingAttachmentInfoKHR*)(toTransform->pColorAttachments + i));
+            }
+        }
+    }
+    if (toTransform->pDepthAttachment)
+    {
+        transform_fromhost_VkRenderingAttachmentInfoKHR(resourceTracker, (VkRenderingAttachmentInfoKHR*)(toTransform->pDepthAttachment));
+    }
+    if (toTransform->pStencilAttachment)
+    {
+        transform_fromhost_VkRenderingAttachmentInfoKHR(resourceTracker, (VkRenderingAttachmentInfoKHR*)(toTransform->pStencilAttachment));
+    }
+}
+
+void transform_tohost_VkPipelineRenderingCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineRenderingCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineRenderingCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineRenderingCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceDynamicRenderingFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDynamicRenderingFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceDynamicRenderingFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDynamicRenderingFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkCommandBufferInheritanceRenderingInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferInheritanceRenderingInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkCommandBufferInheritanceRenderingInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferInheritanceRenderingInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkRenderingFragmentShadingRateAttachmentInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRenderingFragmentShadingRateAttachmentInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->shadingRateAttachmentTexelSize));
+}
+
+void transform_fromhost_VkRenderingFragmentShadingRateAttachmentInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRenderingFragmentShadingRateAttachmentInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->shadingRateAttachmentTexelSize));
+}
+
+void transform_tohost_VkRenderingFragmentDensityMapAttachmentInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkRenderingFragmentDensityMapAttachmentInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkRenderingFragmentDensityMapAttachmentInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkRenderingFragmentDensityMapAttachmentInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkAttachmentSampleCountInfoAMD(
+    ResourceTracker* resourceTracker,
+    VkAttachmentSampleCountInfoAMD* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkAttachmentSampleCountInfoAMD(
+    ResourceTracker* resourceTracker,
+    VkAttachmentSampleCountInfoAMD* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkMultiviewPerViewAttributesInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkMultiviewPerViewAttributesInfoNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkMultiviewPerViewAttributesInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkMultiviewPerViewAttributesInfoNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
 #ifdef VK_KHR_multiview
 #endif
 #ifdef VK_KHR_get_physical_device_properties2
@@ -7963,6 +8757,32 @@
 #endif
 #ifdef VK_KHR_separate_depth_stencil_layouts
 #endif
+#ifdef VK_KHR_present_wait
+void transform_tohost_VkPhysicalDevicePresentWaitFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePresentWaitFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDevicePresentWaitFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePresentWaitFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
 #ifdef VK_KHR_uniform_buffer_standard_layout
 #endif
 #ifdef VK_KHR_buffer_device_address
@@ -8133,6 +8953,56 @@
 }
 
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+void transform_tohost_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* 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,
@@ -8161,6 +9031,580 @@
 #endif
 #ifdef VK_KHR_shader_non_semantic_info
 #endif
+#ifdef VK_KHR_present_id
+void transform_tohost_VkPresentIdKHR(
+    ResourceTracker* resourceTracker,
+    VkPresentIdKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPresentIdKHR(
+    ResourceTracker* resourceTracker,
+    VkPresentIdKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDevicePresentIdFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePresentIdFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDevicePresentIdFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePresentIdFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_video_encode_queue
+void transform_tohost_VkVideoEncodeInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->codedExtent));
+    transform_tohost_VkVideoPictureResourceKHR(resourceTracker, (VkVideoPictureResourceKHR*)(&toTransform->srcPictureResource));
+    if (toTransform->pSetupReferenceSlot)
+    {
+        transform_tohost_VkVideoReferenceSlotKHR(resourceTracker, (VkVideoReferenceSlotKHR*)(toTransform->pSetupReferenceSlot));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pReferenceSlots)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->referenceSlotCount; ++i)
+            {
+                transform_tohost_VkVideoReferenceSlotKHR(resourceTracker, (VkVideoReferenceSlotKHR*)(toTransform->pReferenceSlots + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkVideoEncodeInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->codedExtent));
+    transform_fromhost_VkVideoPictureResourceKHR(resourceTracker, (VkVideoPictureResourceKHR*)(&toTransform->srcPictureResource));
+    if (toTransform->pSetupReferenceSlot)
+    {
+        transform_fromhost_VkVideoReferenceSlotKHR(resourceTracker, (VkVideoReferenceSlotKHR*)(toTransform->pSetupReferenceSlot));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pReferenceSlots)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->referenceSlotCount; ++i)
+            {
+                transform_fromhost_VkVideoReferenceSlotKHR(resourceTracker, (VkVideoReferenceSlotKHR*)(toTransform->pReferenceSlots + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkVideoEncodeRateControlInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeRateControlInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoEncodeRateControlInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeRateControlInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_synchronization2
+void transform_tohost_VkMemoryBarrier2KHR(
+    ResourceTracker* resourceTracker,
+    VkMemoryBarrier2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkMemoryBarrier2KHR(
+    ResourceTracker* resourceTracker,
+    VkMemoryBarrier2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBufferMemoryBarrier2KHR(
+    ResourceTracker* resourceTracker,
+    VkBufferMemoryBarrier2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkBufferMemoryBarrier2KHR(
+    ResourceTracker* resourceTracker,
+    VkBufferMemoryBarrier2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkImageMemoryBarrier2KHR(
+    ResourceTracker* resourceTracker,
+    VkImageMemoryBarrier2KHR* 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_VkImageMemoryBarrier2KHR(
+    ResourceTracker* resourceTracker,
+    VkImageMemoryBarrier2KHR* 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_VkDependencyInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkDependencyInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pMemoryBarriers)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->memoryBarrierCount; ++i)
+            {
+                transform_tohost_VkMemoryBarrier2KHR(resourceTracker, (VkMemoryBarrier2KHR*)(toTransform->pMemoryBarriers + i));
+            }
+        }
+    }
+    if (toTransform)
+    {
+        if (toTransform->pBufferMemoryBarriers)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->bufferMemoryBarrierCount; ++i)
+            {
+                transform_tohost_VkBufferMemoryBarrier2KHR(resourceTracker, (VkBufferMemoryBarrier2KHR*)(toTransform->pBufferMemoryBarriers + i));
+            }
+        }
+    }
+    if (toTransform)
+    {
+        if (toTransform->pImageMemoryBarriers)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->imageMemoryBarrierCount; ++i)
+            {
+                transform_tohost_VkImageMemoryBarrier2KHR(resourceTracker, (VkImageMemoryBarrier2KHR*)(toTransform->pImageMemoryBarriers + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkDependencyInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkDependencyInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pMemoryBarriers)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->memoryBarrierCount; ++i)
+            {
+                transform_fromhost_VkMemoryBarrier2KHR(resourceTracker, (VkMemoryBarrier2KHR*)(toTransform->pMemoryBarriers + i));
+            }
+        }
+    }
+    if (toTransform)
+    {
+        if (toTransform->pBufferMemoryBarriers)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->bufferMemoryBarrierCount; ++i)
+            {
+                transform_fromhost_VkBufferMemoryBarrier2KHR(resourceTracker, (VkBufferMemoryBarrier2KHR*)(toTransform->pBufferMemoryBarriers + i));
+            }
+        }
+    }
+    if (toTransform)
+    {
+        if (toTransform->pImageMemoryBarriers)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->imageMemoryBarrierCount; ++i)
+            {
+                transform_fromhost_VkImageMemoryBarrier2KHR(resourceTracker, (VkImageMemoryBarrier2KHR*)(toTransform->pImageMemoryBarriers + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkSemaphoreSubmitInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreSubmitInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSemaphoreSubmitInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreSubmitInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkCommandBufferSubmitInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferSubmitInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkCommandBufferSubmitInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferSubmitInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSubmitInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkSubmitInfo2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pWaitSemaphoreInfos)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->waitSemaphoreInfoCount; ++i)
+            {
+                transform_tohost_VkSemaphoreSubmitInfoKHR(resourceTracker, (VkSemaphoreSubmitInfoKHR*)(toTransform->pWaitSemaphoreInfos + i));
+            }
+        }
+    }
+    if (toTransform)
+    {
+        if (toTransform->pCommandBufferInfos)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->commandBufferInfoCount; ++i)
+            {
+                transform_tohost_VkCommandBufferSubmitInfoKHR(resourceTracker, (VkCommandBufferSubmitInfoKHR*)(toTransform->pCommandBufferInfos + i));
+            }
+        }
+    }
+    if (toTransform)
+    {
+        if (toTransform->pSignalSemaphoreInfos)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->signalSemaphoreInfoCount; ++i)
+            {
+                transform_tohost_VkSemaphoreSubmitInfoKHR(resourceTracker, (VkSemaphoreSubmitInfoKHR*)(toTransform->pSignalSemaphoreInfos + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkSubmitInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkSubmitInfo2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pWaitSemaphoreInfos)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->waitSemaphoreInfoCount; ++i)
+            {
+                transform_fromhost_VkSemaphoreSubmitInfoKHR(resourceTracker, (VkSemaphoreSubmitInfoKHR*)(toTransform->pWaitSemaphoreInfos + i));
+            }
+        }
+    }
+    if (toTransform)
+    {
+        if (toTransform->pCommandBufferInfos)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->commandBufferInfoCount; ++i)
+            {
+                transform_fromhost_VkCommandBufferSubmitInfoKHR(resourceTracker, (VkCommandBufferSubmitInfoKHR*)(toTransform->pCommandBufferInfos + i));
+            }
+        }
+    }
+    if (toTransform)
+    {
+        if (toTransform->pSignalSemaphoreInfos)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->signalSemaphoreInfoCount; ++i)
+            {
+                transform_fromhost_VkSemaphoreSubmitInfoKHR(resourceTracker, (VkSemaphoreSubmitInfoKHR*)(toTransform->pSignalSemaphoreInfos + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceSynchronization2FeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSynchronization2FeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceSynchronization2FeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSynchronization2FeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkQueueFamilyCheckpointProperties2NV(
+    ResourceTracker* resourceTracker,
+    VkQueueFamilyCheckpointProperties2NV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkQueueFamilyCheckpointProperties2NV(
+    ResourceTracker* resourceTracker,
+    VkQueueFamilyCheckpointProperties2NV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkCheckpointData2NV(
+    ResourceTracker* resourceTracker,
+    VkCheckpointData2NV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkCheckpointData2NV(
+    ResourceTracker* resourceTracker,
+    VkCheckpointData2NV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+void transform_tohost_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+void transform_tohost_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+void transform_tohost_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
 #ifdef VK_KHR_copy_commands2
 void transform_tohost_VkBufferCopy2KHR(
     ResourceTracker* resourceTracker,
@@ -8593,6 +10037,148 @@
 }
 
 #endif
+#ifdef VK_KHR_format_feature_flags2
+void transform_tohost_VkFormatProperties3KHR(
+    ResourceTracker* resourceTracker,
+    VkFormatProperties3KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkFormatProperties3KHR(
+    ResourceTracker* resourceTracker,
+    VkFormatProperties3KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_maintenance4
+void transform_tohost_VkPhysicalDeviceMaintenance4FeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMaintenance4FeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceMaintenance4FeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMaintenance4FeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceMaintenance4PropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMaintenance4PropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceMaintenance4PropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMaintenance4PropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDeviceBufferMemoryRequirementsKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceBufferMemoryRequirementsKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pCreateInfo)
+    {
+        transform_tohost_VkBufferCreateInfo(resourceTracker, (VkBufferCreateInfo*)(toTransform->pCreateInfo));
+    }
+}
+
+void transform_fromhost_VkDeviceBufferMemoryRequirementsKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceBufferMemoryRequirementsKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pCreateInfo)
+    {
+        transform_fromhost_VkBufferCreateInfo(resourceTracker, (VkBufferCreateInfo*)(toTransform->pCreateInfo));
+    }
+}
+
+void transform_tohost_VkDeviceImageMemoryRequirementsKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceImageMemoryRequirementsKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pCreateInfo)
+    {
+        resourceTracker->transformImpl_VkImageCreateInfo_tohost(toTransform->pCreateInfo, 1);
+        transform_tohost_VkImageCreateInfo(resourceTracker, (VkImageCreateInfo*)(toTransform->pCreateInfo));
+    }
+}
+
+void transform_fromhost_VkDeviceImageMemoryRequirementsKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceImageMemoryRequirementsKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pCreateInfo)
+    {
+        resourceTracker->transformImpl_VkImageCreateInfo_fromhost(toTransform->pCreateInfo, 1);
+        transform_fromhost_VkImageCreateInfo(resourceTracker, (VkImageCreateInfo*)(toTransform->pCreateInfo));
+    }
+}
+
+#endif
 #ifdef VK_ANDROID_native_buffer
 void transform_tohost_VkNativeBufferANDROID(
     ResourceTracker* resourceTracker,
@@ -8905,6 +10491,80 @@
 }
 
 #endif
+#ifdef VK_NVX_binary_import
+void transform_tohost_VkCuModuleCreateInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkCuModuleCreateInfoNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkCuModuleCreateInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkCuModuleCreateInfoNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkCuFunctionCreateInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkCuFunctionCreateInfoNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkCuFunctionCreateInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkCuFunctionCreateInfoNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkCuLaunchInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkCuLaunchInfoNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkCuLaunchInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkCuLaunchInfoNVX* 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,
@@ -8963,6 +10623,910 @@
 #endif
 #ifdef VK_AMD_shader_ballot
 #endif
+#ifdef VK_EXT_video_encode_h264
+void transform_tohost_VkVideoEncodeH264CapabilitiesEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264CapabilitiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->minPictureSizeInMbs));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxPictureSizeInMbs));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->inputImageDataAlignment));
+    transform_tohost_VkExtensionProperties(resourceTracker, (VkExtensionProperties*)(&toTransform->stdExtensionVersion));
+}
+
+void transform_fromhost_VkVideoEncodeH264CapabilitiesEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264CapabilitiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->minPictureSizeInMbs));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxPictureSizeInMbs));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->inputImageDataAlignment));
+    transform_fromhost_VkExtensionProperties(resourceTracker, (VkExtensionProperties*)(&toTransform->stdExtensionVersion));
+}
+
+void transform_tohost_VkVideoEncodeH264SessionCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264SessionCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxPictureSizeInMbs));
+    if (toTransform->pStdExtensionVersion)
+    {
+        transform_tohost_VkExtensionProperties(resourceTracker, (VkExtensionProperties*)(toTransform->pStdExtensionVersion));
+    }
+}
+
+void transform_fromhost_VkVideoEncodeH264SessionCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264SessionCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxPictureSizeInMbs));
+    if (toTransform->pStdExtensionVersion)
+    {
+        transform_fromhost_VkExtensionProperties(resourceTracker, (VkExtensionProperties*)(toTransform->pStdExtensionVersion));
+    }
+}
+
+void transform_tohost_VkVideoEncodeH264SessionParametersAddInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264SessionParametersAddInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoEncodeH264SessionParametersAddInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264SessionParametersAddInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVideoEncodeH264SessionParametersCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264SessionParametersCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pParametersAddInfo)
+    {
+        transform_tohost_VkVideoEncodeH264SessionParametersAddInfoEXT(resourceTracker, (VkVideoEncodeH264SessionParametersAddInfoEXT*)(toTransform->pParametersAddInfo));
+    }
+}
+
+void transform_fromhost_VkVideoEncodeH264SessionParametersCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264SessionParametersCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pParametersAddInfo)
+    {
+        transform_fromhost_VkVideoEncodeH264SessionParametersAddInfoEXT(resourceTracker, (VkVideoEncodeH264SessionParametersAddInfoEXT*)(toTransform->pParametersAddInfo));
+    }
+}
+
+void transform_tohost_VkVideoEncodeH264DpbSlotInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264DpbSlotInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoEncodeH264DpbSlotInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264DpbSlotInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVideoEncodeH264NaluSliceEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264NaluSliceEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pRefFinalList0Entries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->refFinalList0EntryCount; ++i)
+            {
+                transform_tohost_VkVideoEncodeH264DpbSlotInfoEXT(resourceTracker, (VkVideoEncodeH264DpbSlotInfoEXT*)(toTransform->pRefFinalList0Entries + i));
+            }
+        }
+    }
+    if (toTransform)
+    {
+        if (toTransform->pRefFinalList1Entries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->refFinalList1EntryCount; ++i)
+            {
+                transform_tohost_VkVideoEncodeH264DpbSlotInfoEXT(resourceTracker, (VkVideoEncodeH264DpbSlotInfoEXT*)(toTransform->pRefFinalList1Entries + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkVideoEncodeH264NaluSliceEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264NaluSliceEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pRefFinalList0Entries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->refFinalList0EntryCount; ++i)
+            {
+                transform_fromhost_VkVideoEncodeH264DpbSlotInfoEXT(resourceTracker, (VkVideoEncodeH264DpbSlotInfoEXT*)(toTransform->pRefFinalList0Entries + i));
+            }
+        }
+    }
+    if (toTransform)
+    {
+        if (toTransform->pRefFinalList1Entries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->refFinalList1EntryCount; ++i)
+            {
+                transform_fromhost_VkVideoEncodeH264DpbSlotInfoEXT(resourceTracker, (VkVideoEncodeH264DpbSlotInfoEXT*)(toTransform->pRefFinalList1Entries + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkVideoEncodeH264VclFrameInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264VclFrameInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pRefDefaultFinalList0Entries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->refDefaultFinalList0EntryCount; ++i)
+            {
+                transform_tohost_VkVideoEncodeH264DpbSlotInfoEXT(resourceTracker, (VkVideoEncodeH264DpbSlotInfoEXT*)(toTransform->pRefDefaultFinalList0Entries + i));
+            }
+        }
+    }
+    if (toTransform)
+    {
+        if (toTransform->pRefDefaultFinalList1Entries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->refDefaultFinalList1EntryCount; ++i)
+            {
+                transform_tohost_VkVideoEncodeH264DpbSlotInfoEXT(resourceTracker, (VkVideoEncodeH264DpbSlotInfoEXT*)(toTransform->pRefDefaultFinalList1Entries + i));
+            }
+        }
+    }
+    if (toTransform)
+    {
+        if (toTransform->pNaluSliceEntries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->naluSliceEntryCount; ++i)
+            {
+                transform_tohost_VkVideoEncodeH264NaluSliceEXT(resourceTracker, (VkVideoEncodeH264NaluSliceEXT*)(toTransform->pNaluSliceEntries + i));
+            }
+        }
+    }
+    if (toTransform->pCurrentPictureInfo)
+    {
+        transform_tohost_VkVideoEncodeH264DpbSlotInfoEXT(resourceTracker, (VkVideoEncodeH264DpbSlotInfoEXT*)(toTransform->pCurrentPictureInfo));
+    }
+}
+
+void transform_fromhost_VkVideoEncodeH264VclFrameInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264VclFrameInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pRefDefaultFinalList0Entries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->refDefaultFinalList0EntryCount; ++i)
+            {
+                transform_fromhost_VkVideoEncodeH264DpbSlotInfoEXT(resourceTracker, (VkVideoEncodeH264DpbSlotInfoEXT*)(toTransform->pRefDefaultFinalList0Entries + i));
+            }
+        }
+    }
+    if (toTransform)
+    {
+        if (toTransform->pRefDefaultFinalList1Entries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->refDefaultFinalList1EntryCount; ++i)
+            {
+                transform_fromhost_VkVideoEncodeH264DpbSlotInfoEXT(resourceTracker, (VkVideoEncodeH264DpbSlotInfoEXT*)(toTransform->pRefDefaultFinalList1Entries + i));
+            }
+        }
+    }
+    if (toTransform)
+    {
+        if (toTransform->pNaluSliceEntries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->naluSliceEntryCount; ++i)
+            {
+                transform_fromhost_VkVideoEncodeH264NaluSliceEXT(resourceTracker, (VkVideoEncodeH264NaluSliceEXT*)(toTransform->pNaluSliceEntries + i));
+            }
+        }
+    }
+    if (toTransform->pCurrentPictureInfo)
+    {
+        transform_fromhost_VkVideoEncodeH264DpbSlotInfoEXT(resourceTracker, (VkVideoEncodeH264DpbSlotInfoEXT*)(toTransform->pCurrentPictureInfo));
+    }
+}
+
+void transform_tohost_VkVideoEncodeH264EmitPictureParametersEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264EmitPictureParametersEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoEncodeH264EmitPictureParametersEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264EmitPictureParametersEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVideoEncodeH264ProfileEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264ProfileEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoEncodeH264ProfileEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264ProfileEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_video_encode_h265
+void transform_tohost_VkVideoEncodeH265CapabilitiesEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265CapabilitiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->inputImageDataAlignment));
+    transform_tohost_VkExtensionProperties(resourceTracker, (VkExtensionProperties*)(&toTransform->stdExtensionVersion));
+}
+
+void transform_fromhost_VkVideoEncodeH265CapabilitiesEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265CapabilitiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->inputImageDataAlignment));
+    transform_fromhost_VkExtensionProperties(resourceTracker, (VkExtensionProperties*)(&toTransform->stdExtensionVersion));
+}
+
+void transform_tohost_VkVideoEncodeH265SessionCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265SessionCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pStdExtensionVersion)
+    {
+        transform_tohost_VkExtensionProperties(resourceTracker, (VkExtensionProperties*)(toTransform->pStdExtensionVersion));
+    }
+}
+
+void transform_fromhost_VkVideoEncodeH265SessionCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265SessionCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pStdExtensionVersion)
+    {
+        transform_fromhost_VkExtensionProperties(resourceTracker, (VkExtensionProperties*)(toTransform->pStdExtensionVersion));
+    }
+}
+
+void transform_tohost_VkVideoEncodeH265SessionParametersAddInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265SessionParametersAddInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoEncodeH265SessionParametersAddInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265SessionParametersAddInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVideoEncodeH265SessionParametersCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265SessionParametersCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pParametersAddInfo)
+    {
+        transform_tohost_VkVideoEncodeH265SessionParametersAddInfoEXT(resourceTracker, (VkVideoEncodeH265SessionParametersAddInfoEXT*)(toTransform->pParametersAddInfo));
+    }
+}
+
+void transform_fromhost_VkVideoEncodeH265SessionParametersCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265SessionParametersCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pParametersAddInfo)
+    {
+        transform_fromhost_VkVideoEncodeH265SessionParametersAddInfoEXT(resourceTracker, (VkVideoEncodeH265SessionParametersAddInfoEXT*)(toTransform->pParametersAddInfo));
+    }
+}
+
+void transform_tohost_VkVideoEncodeH265DpbSlotInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265DpbSlotInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoEncodeH265DpbSlotInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265DpbSlotInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVideoEncodeH265ReferenceListsEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265ReferenceListsEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pReferenceList0Entries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->referenceList0EntryCount; ++i)
+            {
+                transform_tohost_VkVideoEncodeH265DpbSlotInfoEXT(resourceTracker, (VkVideoEncodeH265DpbSlotInfoEXT*)(toTransform->pReferenceList0Entries + i));
+            }
+        }
+    }
+    if (toTransform)
+    {
+        if (toTransform->pReferenceList1Entries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->referenceList1EntryCount; ++i)
+            {
+                transform_tohost_VkVideoEncodeH265DpbSlotInfoEXT(resourceTracker, (VkVideoEncodeH265DpbSlotInfoEXT*)(toTransform->pReferenceList1Entries + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkVideoEncodeH265ReferenceListsEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265ReferenceListsEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pReferenceList0Entries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->referenceList0EntryCount; ++i)
+            {
+                transform_fromhost_VkVideoEncodeH265DpbSlotInfoEXT(resourceTracker, (VkVideoEncodeH265DpbSlotInfoEXT*)(toTransform->pReferenceList0Entries + i));
+            }
+        }
+    }
+    if (toTransform)
+    {
+        if (toTransform->pReferenceList1Entries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->referenceList1EntryCount; ++i)
+            {
+                transform_fromhost_VkVideoEncodeH265DpbSlotInfoEXT(resourceTracker, (VkVideoEncodeH265DpbSlotInfoEXT*)(toTransform->pReferenceList1Entries + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkVideoEncodeH265NaluSliceEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265NaluSliceEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pReferenceFinalLists)
+    {
+        transform_tohost_VkVideoEncodeH265ReferenceListsEXT(resourceTracker, (VkVideoEncodeH265ReferenceListsEXT*)(toTransform->pReferenceFinalLists));
+    }
+}
+
+void transform_fromhost_VkVideoEncodeH265NaluSliceEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265NaluSliceEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pReferenceFinalLists)
+    {
+        transform_fromhost_VkVideoEncodeH265ReferenceListsEXT(resourceTracker, (VkVideoEncodeH265ReferenceListsEXT*)(toTransform->pReferenceFinalLists));
+    }
+}
+
+void transform_tohost_VkVideoEncodeH265VclFrameInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265VclFrameInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pReferenceFinalLists)
+    {
+        transform_tohost_VkVideoEncodeH265ReferenceListsEXT(resourceTracker, (VkVideoEncodeH265ReferenceListsEXT*)(toTransform->pReferenceFinalLists));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pNaluSliceEntries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->naluSliceEntryCount; ++i)
+            {
+                transform_tohost_VkVideoEncodeH265NaluSliceEXT(resourceTracker, (VkVideoEncodeH265NaluSliceEXT*)(toTransform->pNaluSliceEntries + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkVideoEncodeH265VclFrameInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265VclFrameInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pReferenceFinalLists)
+    {
+        transform_fromhost_VkVideoEncodeH265ReferenceListsEXT(resourceTracker, (VkVideoEncodeH265ReferenceListsEXT*)(toTransform->pReferenceFinalLists));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pNaluSliceEntries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->naluSliceEntryCount; ++i)
+            {
+                transform_fromhost_VkVideoEncodeH265NaluSliceEXT(resourceTracker, (VkVideoEncodeH265NaluSliceEXT*)(toTransform->pNaluSliceEntries + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkVideoEncodeH265EmitPictureParametersEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265EmitPictureParametersEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoEncodeH265EmitPictureParametersEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265EmitPictureParametersEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVideoEncodeH265ProfileEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265ProfileEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoEncodeH265ProfileEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265ProfileEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_video_decode_h264
+void transform_tohost_VkVideoDecodeH264ProfileEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264ProfileEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoDecodeH264ProfileEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264ProfileEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVideoDecodeH264CapabilitiesEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264CapabilitiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->fieldOffsetGranularity));
+    transform_tohost_VkExtensionProperties(resourceTracker, (VkExtensionProperties*)(&toTransform->stdExtensionVersion));
+}
+
+void transform_fromhost_VkVideoDecodeH264CapabilitiesEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264CapabilitiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->fieldOffsetGranularity));
+    transform_fromhost_VkExtensionProperties(resourceTracker, (VkExtensionProperties*)(&toTransform->stdExtensionVersion));
+}
+
+void transform_tohost_VkVideoDecodeH264SessionCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264SessionCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pStdExtensionVersion)
+    {
+        transform_tohost_VkExtensionProperties(resourceTracker, (VkExtensionProperties*)(toTransform->pStdExtensionVersion));
+    }
+}
+
+void transform_fromhost_VkVideoDecodeH264SessionCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264SessionCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pStdExtensionVersion)
+    {
+        transform_fromhost_VkExtensionProperties(resourceTracker, (VkExtensionProperties*)(toTransform->pStdExtensionVersion));
+    }
+}
+
+void transform_tohost_VkVideoDecodeH264SessionParametersAddInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264SessionParametersAddInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoDecodeH264SessionParametersAddInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264SessionParametersAddInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVideoDecodeH264SessionParametersCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264SessionParametersCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pParametersAddInfo)
+    {
+        transform_tohost_VkVideoDecodeH264SessionParametersAddInfoEXT(resourceTracker, (VkVideoDecodeH264SessionParametersAddInfoEXT*)(toTransform->pParametersAddInfo));
+    }
+}
+
+void transform_fromhost_VkVideoDecodeH264SessionParametersCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264SessionParametersCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pParametersAddInfo)
+    {
+        transform_fromhost_VkVideoDecodeH264SessionParametersAddInfoEXT(resourceTracker, (VkVideoDecodeH264SessionParametersAddInfoEXT*)(toTransform->pParametersAddInfo));
+    }
+}
+
+void transform_tohost_VkVideoDecodeH264PictureInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264PictureInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoDecodeH264PictureInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264PictureInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVideoDecodeH264MvcEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264MvcEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoDecodeH264MvcEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264MvcEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVideoDecodeH264DpbSlotInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264DpbSlotInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoDecodeH264DpbSlotInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264DpbSlotInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
 void transform_tohost_VkTextureLODGatherFormatPropertiesAMD(
     ResourceTracker* resourceTracker,
@@ -10432,6 +12996,32 @@
     }
 }
 
+void transform_tohost_VkAndroidHardwareBufferFormatProperties2ANDROID(
+    ResourceTracker* resourceTracker,
+    VkAndroidHardwareBufferFormatProperties2ANDROID* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkComponentMapping(resourceTracker, (VkComponentMapping*)(&toTransform->samplerYcbcrConversionComponents));
+}
+
+void transform_fromhost_VkAndroidHardwareBufferFormatProperties2ANDROID(
+    ResourceTracker* resourceTracker,
+    VkAndroidHardwareBufferFormatProperties2ANDROID* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkComponentMapping(resourceTracker, (VkComponentMapping*)(&toTransform->samplerYcbcrConversionComponents));
+}
+
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
 #endif
@@ -11140,6 +13730,66 @@
     }
 }
 
+void transform_tohost_VkDrmFormatModifierProperties2EXT(
+    ResourceTracker* resourceTracker,
+    VkDrmFormatModifierProperties2EXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkDrmFormatModifierProperties2EXT(
+    ResourceTracker* resourceTracker,
+    VkDrmFormatModifierProperties2EXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkDrmFormatModifierPropertiesList2EXT(
+    ResourceTracker* resourceTracker,
+    VkDrmFormatModifierPropertiesList2EXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pDrmFormatModifierProperties)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->drmFormatModifierCount; ++i)
+            {
+                transform_tohost_VkDrmFormatModifierProperties2EXT(resourceTracker, (VkDrmFormatModifierProperties2EXT*)(toTransform->pDrmFormatModifierProperties + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkDrmFormatModifierPropertiesList2EXT(
+    ResourceTracker* resourceTracker,
+    VkDrmFormatModifierPropertiesList2EXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pDrmFormatModifierProperties)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->drmFormatModifierCount; ++i)
+            {
+                transform_fromhost_VkDrmFormatModifierProperties2EXT(resourceTracker, (VkDrmFormatModifierProperties2EXT*)(toTransform->pDrmFormatModifierProperties + i));
+            }
+        }
+    }
+}
+
 #endif
 #ifdef VK_EXT_validation_cache
 void transform_tohost_VkValidationCacheCreateInfoEXT(
@@ -12089,6 +14739,194 @@
 }
 
 #endif
+#ifdef VK_EXT_video_decode_h265
+void transform_tohost_VkVideoDecodeH265ProfileEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265ProfileEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoDecodeH265ProfileEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265ProfileEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVideoDecodeH265CapabilitiesEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265CapabilitiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkExtensionProperties(resourceTracker, (VkExtensionProperties*)(&toTransform->stdExtensionVersion));
+}
+
+void transform_fromhost_VkVideoDecodeH265CapabilitiesEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265CapabilitiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkExtensionProperties(resourceTracker, (VkExtensionProperties*)(&toTransform->stdExtensionVersion));
+}
+
+void transform_tohost_VkVideoDecodeH265SessionCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265SessionCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pStdExtensionVersion)
+    {
+        transform_tohost_VkExtensionProperties(resourceTracker, (VkExtensionProperties*)(toTransform->pStdExtensionVersion));
+    }
+}
+
+void transform_fromhost_VkVideoDecodeH265SessionCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265SessionCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pStdExtensionVersion)
+    {
+        transform_fromhost_VkExtensionProperties(resourceTracker, (VkExtensionProperties*)(toTransform->pStdExtensionVersion));
+    }
+}
+
+void transform_tohost_VkVideoDecodeH265SessionParametersAddInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265SessionParametersAddInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoDecodeH265SessionParametersAddInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265SessionParametersAddInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVideoDecodeH265SessionParametersCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265SessionParametersCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pParametersAddInfo)
+    {
+        transform_tohost_VkVideoDecodeH265SessionParametersAddInfoEXT(resourceTracker, (VkVideoDecodeH265SessionParametersAddInfoEXT*)(toTransform->pParametersAddInfo));
+    }
+}
+
+void transform_fromhost_VkVideoDecodeH265SessionParametersCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265SessionParametersCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pParametersAddInfo)
+    {
+        transform_fromhost_VkVideoDecodeH265SessionParametersAddInfoEXT(resourceTracker, (VkVideoDecodeH265SessionParametersAddInfoEXT*)(toTransform->pParametersAddInfo));
+    }
+}
+
+void transform_tohost_VkVideoDecodeH265PictureInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265PictureInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoDecodeH265PictureInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265PictureInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVideoDecodeH265DpbSlotInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265DpbSlotInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVideoDecodeH265DpbSlotInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265DpbSlotInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
 void transform_tohost_VkDeviceMemoryOverallocationCreateInfoAMD(
     ResourceTracker* resourceTracker,
@@ -13565,6 +16403,80 @@
 }
 
 #endif
+#ifdef VK_EXT_provoking_vertex
+void transform_tohost_VkPhysicalDeviceProvokingVertexFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceProvokingVertexFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceProvokingVertexFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceProvokingVertexFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceProvokingVertexPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceProvokingVertexPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceProvokingVertexPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceProvokingVertexPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* 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,
@@ -13819,6 +16731,32 @@
 }
 
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+void transform_tohost_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* 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,
@@ -14215,6 +17153,64 @@
 }
 
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+void transform_tohost_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceInheritedViewportScissorFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceInheritedViewportScissorFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkCommandBufferInheritanceViewportScissorInfoNV(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferInheritanceViewportScissorInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pViewportDepths)
+    {
+        transform_tohost_VkViewport(resourceTracker, (VkViewport*)(toTransform->pViewportDepths));
+    }
+}
+
+void transform_fromhost_VkCommandBufferInheritanceViewportScissorInfoNV(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferInheritanceViewportScissorInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pViewportDepths)
+    {
+        transform_fromhost_VkViewport(resourceTracker, (VkViewport*)(toTransform->pViewportDepths));
+    }
+}
+
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
 void transform_tohost_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
     ResourceTracker* resourceTracker,
@@ -14391,6 +17387,8 @@
 }
 
 #endif
+#ifdef VK_EXT_acquire_drm_display
+#endif
 #ifdef VK_EXT_robustness2
 void transform_tohost_VkPhysicalDeviceRobustness2FeaturesEXT(
     ResourceTracker* resourceTracker,
@@ -14745,6 +17743,220 @@
 }
 
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+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_VkAccelerationStructureGeometryMotionTrianglesDataNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryMotionTrianglesDataNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkDeviceOrHostAddressConstKHR(resourceTracker, (VkDeviceOrHostAddressConstKHR*)(&toTransform->vertexData));
+}
+
+void transform_fromhost_VkAccelerationStructureGeometryMotionTrianglesDataNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryMotionTrianglesDataNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkDeviceOrHostAddressConstKHR(resourceTracker, (VkDeviceOrHostAddressConstKHR*)(&toTransform->vertexData));
+}
+
+void transform_tohost_VkAccelerationStructureMotionInfoNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureMotionInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkAccelerationStructureMotionInfoNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureMotionInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkAccelerationStructureMatrixMotionInstanceNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureMatrixMotionInstanceNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_tohost_VkTransformMatrixKHR(resourceTracker, (VkTransformMatrixKHR*)(&toTransform->transformT0));
+    transform_tohost_VkTransformMatrixKHR(resourceTracker, (VkTransformMatrixKHR*)(&toTransform->transformT1));
+}
+
+void transform_fromhost_VkAccelerationStructureMatrixMotionInstanceNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureMatrixMotionInstanceNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkTransformMatrixKHR(resourceTracker, (VkTransformMatrixKHR*)(&toTransform->transformT0));
+    transform_fromhost_VkTransformMatrixKHR(resourceTracker, (VkTransformMatrixKHR*)(&toTransform->transformT1));
+}
+
+void transform_tohost_VkSRTDataNV(
+    ResourceTracker* resourceTracker,
+    VkSRTDataNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkSRTDataNV(
+    ResourceTracker* resourceTracker,
+    VkSRTDataNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkAccelerationStructureSRTMotionInstanceNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureSRTMotionInstanceNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_tohost_VkSRTDataNV(resourceTracker, (VkSRTDataNV*)(&toTransform->transformT0));
+    transform_tohost_VkSRTDataNV(resourceTracker, (VkSRTDataNV*)(&toTransform->transformT1));
+}
+
+void transform_fromhost_VkAccelerationStructureSRTMotionInstanceNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureSRTMotionInstanceNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkSRTDataNV(resourceTracker, (VkSRTDataNV*)(&toTransform->transformT0));
+    transform_fromhost_VkSRTDataNV(resourceTracker, (VkSRTDataNV*)(&toTransform->transformT1));
+}
+
+void transform_tohost_VkAccelerationStructureMotionInstanceDataNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureMotionInstanceDataNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_tohost_VkAccelerationStructureInstanceKHR(resourceTracker, (VkAccelerationStructureInstanceKHR*)(&toTransform->staticInstance));
+    transform_tohost_VkAccelerationStructureMatrixMotionInstanceNV(resourceTracker, (VkAccelerationStructureMatrixMotionInstanceNV*)(&toTransform->matrixMotionInstance));
+    transform_tohost_VkAccelerationStructureSRTMotionInstanceNV(resourceTracker, (VkAccelerationStructureSRTMotionInstanceNV*)(&toTransform->srtMotionInstance));
+}
+
+void transform_fromhost_VkAccelerationStructureMotionInstanceDataNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureMotionInstanceDataNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkAccelerationStructureInstanceKHR(resourceTracker, (VkAccelerationStructureInstanceKHR*)(&toTransform->staticInstance));
+    transform_fromhost_VkAccelerationStructureMatrixMotionInstanceNV(resourceTracker, (VkAccelerationStructureMatrixMotionInstanceNV*)(&toTransform->matrixMotionInstance));
+    transform_fromhost_VkAccelerationStructureSRTMotionInstanceNV(resourceTracker, (VkAccelerationStructureSRTMotionInstanceNV*)(&toTransform->srtMotionInstance));
+}
+
+void transform_tohost_VkAccelerationStructureMotionInstanceNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureMotionInstanceNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_tohost_VkAccelerationStructureMotionInstanceDataNV(resourceTracker, (VkAccelerationStructureMotionInstanceDataNV*)(&toTransform->data));
+}
+
+void transform_fromhost_VkAccelerationStructureMotionInstanceNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureMotionInstanceNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkAccelerationStructureMotionInstanceDataNV(resourceTracker, (VkAccelerationStructureMotionInstanceDataNV*)(&toTransform->data));
+}
+
+void transform_tohost_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+void transform_tohost_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* 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,
@@ -14873,6 +18085,34 @@
 }
 
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+void transform_tohost_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_acquire_winrt_display
+#endif
 #ifdef VK_EXT_directfb_surface
 void transform_tohost_VkDirectFBSurfaceCreateInfoEXT(
     ResourceTracker* resourceTracker,
@@ -14899,6 +18139,878 @@
 }
 
 #endif
+#ifdef VK_VALVE_mutable_descriptor_type
+void transform_tohost_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkMutableDescriptorTypeListVALVE(
+    ResourceTracker* resourceTracker,
+    VkMutableDescriptorTypeListVALVE* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkMutableDescriptorTypeListVALVE(
+    ResourceTracker* resourceTracker,
+    VkMutableDescriptorTypeListVALVE* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkMutableDescriptorTypeCreateInfoVALVE(
+    ResourceTracker* resourceTracker,
+    VkMutableDescriptorTypeCreateInfoVALVE* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pMutableDescriptorTypeLists)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->mutableDescriptorTypeListCount; ++i)
+            {
+                transform_tohost_VkMutableDescriptorTypeListVALVE(resourceTracker, (VkMutableDescriptorTypeListVALVE*)(toTransform->pMutableDescriptorTypeLists + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkMutableDescriptorTypeCreateInfoVALVE(
+    ResourceTracker* resourceTracker,
+    VkMutableDescriptorTypeCreateInfoVALVE* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pMutableDescriptorTypeLists)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->mutableDescriptorTypeListCount; ++i)
+            {
+                transform_fromhost_VkMutableDescriptorTypeListVALVE(resourceTracker, (VkMutableDescriptorTypeListVALVE*)(toTransform->pMutableDescriptorTypeLists + i));
+            }
+        }
+    }
+}
+
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+void transform_tohost_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVertexInputBindingDescription2EXT(
+    ResourceTracker* resourceTracker,
+    VkVertexInputBindingDescription2EXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVertexInputBindingDescription2EXT(
+    ResourceTracker* resourceTracker,
+    VkVertexInputBindingDescription2EXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkVertexInputAttributeDescription2EXT(
+    ResourceTracker* resourceTracker,
+    VkVertexInputAttributeDescription2EXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkVertexInputAttributeDescription2EXT(
+    ResourceTracker* resourceTracker,
+    VkVertexInputAttributeDescription2EXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_physical_device_drm
+void transform_tohost_VkPhysicalDeviceDrmPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDrmPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceDrmPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDrmPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+void transform_tohost_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_FUCHSIA_external_memory
+void transform_tohost_VkImportMemoryZirconHandleInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImportMemoryZirconHandleInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkImportMemoryZirconHandleInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImportMemoryZirconHandleInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkMemoryZirconHandlePropertiesFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkMemoryZirconHandlePropertiesFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkMemoryZirconHandlePropertiesFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkMemoryZirconHandlePropertiesFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkMemoryGetZirconHandleInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkMemoryGetZirconHandleInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkMemoryGetZirconHandleInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkMemoryGetZirconHandleInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+void transform_tohost_VkImportSemaphoreZirconHandleInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImportSemaphoreZirconHandleInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkImportSemaphoreZirconHandleInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImportSemaphoreZirconHandleInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSemaphoreGetZirconHandleInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreGetZirconHandleInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSemaphoreGetZirconHandleInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreGetZirconHandleInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+void transform_tohost_VkBufferCollectionCreateInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferCollectionCreateInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkBufferCollectionCreateInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferCollectionCreateInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkImportMemoryBufferCollectionFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImportMemoryBufferCollectionFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkImportMemoryBufferCollectionFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImportMemoryBufferCollectionFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBufferCollectionImageCreateInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferCollectionImageCreateInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkBufferCollectionImageCreateInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferCollectionImageCreateInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBufferCollectionConstraintsInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferCollectionConstraintsInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkBufferCollectionConstraintsInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferCollectionConstraintsInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBufferConstraintsInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferConstraintsInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkBufferCreateInfo(resourceTracker, (VkBufferCreateInfo*)(&toTransform->createInfo));
+    transform_tohost_VkBufferCollectionConstraintsInfoFUCHSIA(resourceTracker, (VkBufferCollectionConstraintsInfoFUCHSIA*)(&toTransform->bufferCollectionConstraints));
+}
+
+void transform_fromhost_VkBufferConstraintsInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferConstraintsInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkBufferCreateInfo(resourceTracker, (VkBufferCreateInfo*)(&toTransform->createInfo));
+    transform_fromhost_VkBufferCollectionConstraintsInfoFUCHSIA(resourceTracker, (VkBufferCollectionConstraintsInfoFUCHSIA*)(&toTransform->bufferCollectionConstraints));
+}
+
+void transform_tohost_VkBufferCollectionBufferCreateInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferCollectionBufferCreateInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkBufferCollectionBufferCreateInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferCollectionBufferCreateInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSysmemColorSpaceFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkSysmemColorSpaceFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSysmemColorSpaceFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkSysmemColorSpaceFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBufferCollectionPropertiesFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferCollectionPropertiesFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkSysmemColorSpaceFUCHSIA(resourceTracker, (VkSysmemColorSpaceFUCHSIA*)(&toTransform->sysmemColorSpaceIndex));
+    transform_tohost_VkComponentMapping(resourceTracker, (VkComponentMapping*)(&toTransform->samplerYcbcrConversionComponents));
+}
+
+void transform_fromhost_VkBufferCollectionPropertiesFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferCollectionPropertiesFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkSysmemColorSpaceFUCHSIA(resourceTracker, (VkSysmemColorSpaceFUCHSIA*)(&toTransform->sysmemColorSpaceIndex));
+    transform_fromhost_VkComponentMapping(resourceTracker, (VkComponentMapping*)(&toTransform->samplerYcbcrConversionComponents));
+}
+
+void transform_tohost_VkImageFormatConstraintsInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImageFormatConstraintsInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    resourceTracker->transformImpl_VkImageCreateInfo_tohost(&toTransform->imageCreateInfo, 1);
+    transform_tohost_VkImageCreateInfo(resourceTracker, (VkImageCreateInfo*)(&toTransform->imageCreateInfo));
+    if (toTransform->pColorSpaces)
+    {
+        transform_tohost_VkSysmemColorSpaceFUCHSIA(resourceTracker, (VkSysmemColorSpaceFUCHSIA*)(toTransform->pColorSpaces));
+    }
+}
+
+void transform_fromhost_VkImageFormatConstraintsInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImageFormatConstraintsInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    resourceTracker->transformImpl_VkImageCreateInfo_fromhost(&toTransform->imageCreateInfo, 1);
+    transform_fromhost_VkImageCreateInfo(resourceTracker, (VkImageCreateInfo*)(&toTransform->imageCreateInfo));
+    if (toTransform->pColorSpaces)
+    {
+        transform_fromhost_VkSysmemColorSpaceFUCHSIA(resourceTracker, (VkSysmemColorSpaceFUCHSIA*)(toTransform->pColorSpaces));
+    }
+}
+
+void transform_tohost_VkImageConstraintsInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImageConstraintsInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pFormatConstraints)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->formatConstraintsCount; ++i)
+            {
+                transform_tohost_VkImageFormatConstraintsInfoFUCHSIA(resourceTracker, (VkImageFormatConstraintsInfoFUCHSIA*)(toTransform->pFormatConstraints + i));
+            }
+        }
+    }
+    transform_tohost_VkBufferCollectionConstraintsInfoFUCHSIA(resourceTracker, (VkBufferCollectionConstraintsInfoFUCHSIA*)(&toTransform->bufferCollectionConstraints));
+}
+
+void transform_fromhost_VkImageConstraintsInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImageConstraintsInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform)
+    {
+        if (toTransform->pFormatConstraints)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->formatConstraintsCount; ++i)
+            {
+                transform_fromhost_VkImageFormatConstraintsInfoFUCHSIA(resourceTracker, (VkImageFormatConstraintsInfoFUCHSIA*)(toTransform->pFormatConstraints + i));
+            }
+        }
+    }
+    transform_fromhost_VkBufferCollectionConstraintsInfoFUCHSIA(resourceTracker, (VkBufferCollectionConstraintsInfoFUCHSIA*)(&toTransform->bufferCollectionConstraints));
+}
+
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+void transform_tohost_VkSubpassShadingPipelineCreateInfoHUAWEI(
+    ResourceTracker* resourceTracker,
+    VkSubpassShadingPipelineCreateInfoHUAWEI* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSubpassShadingPipelineCreateInfoHUAWEI(
+    ResourceTracker* resourceTracker,
+    VkSubpassShadingPipelineCreateInfoHUAWEI* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+void transform_tohost_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_external_memory_rdma
+void transform_tohost_VkMemoryGetRemoteAddressInfoNV(
+    ResourceTracker* resourceTracker,
+    VkMemoryGetRemoteAddressInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkMemoryGetRemoteAddressInfoNV(
+    ResourceTracker* resourceTracker,
+    VkMemoryGetRemoteAddressInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+void transform_tohost_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_QNX_screen_surface
+void transform_tohost_VkScreenSurfaceCreateInfoQNX(
+    ResourceTracker* resourceTracker,
+    VkScreenSurfaceCreateInfoQNX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkScreenSurfaceCreateInfoQNX(
+    ResourceTracker* resourceTracker,
+    VkScreenSurfaceCreateInfoQNX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_color_write_enable
+void transform_tohost_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceColorWriteEnableFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceColorWriteEnableFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPipelineColorWriteCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineColorWriteCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineColorWriteCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineColorWriteCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
 #ifdef VK_GOOGLE_gfxstream
 void transform_tohost_VkImportColorBufferGOOGLE(
     ResourceTracker* resourceTracker,
@@ -14973,6 +19085,218 @@
 }
 
 #endif
+#ifdef VK_EXT_global_priority_query
+void transform_tohost_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkQueueFamilyGlobalPriorityPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkQueueFamilyGlobalPriorityPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkQueueFamilyGlobalPriorityPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkQueueFamilyGlobalPriorityPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_multi_draw
+void transform_tohost_VkPhysicalDeviceMultiDrawFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMultiDrawFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceMultiDrawFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMultiDrawFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceMultiDrawPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMultiDrawPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceMultiDrawPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMultiDrawPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkMultiDrawInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkMultiDrawInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkMultiDrawInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkMultiDrawInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkMultiDrawIndexedInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkMultiDrawIndexedInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkMultiDrawIndexedInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkMultiDrawIndexedInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+#endif
+#ifdef VK_EXT_load_store_op_none
+#endif
+#ifdef VK_EXT_border_color_swizzle
+void transform_tohost_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSamplerBorderColorComponentMappingCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSamplerBorderColorComponentMappingCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkComponentMapping(resourceTracker, (VkComponentMapping*)(&toTransform->components));
+}
+
+void transform_fromhost_VkSamplerBorderColorComponentMappingCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSamplerBorderColorComponentMappingCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkComponentMapping(resourceTracker, (VkComponentMapping*)(&toTransform->components));
+}
+
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+void transform_tohost_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
 #ifdef VK_KHR_acceleration_structure
 void transform_tohost_VkDeviceOrHostAddressKHR(
     ResourceTracker* resourceTracker,
@@ -14990,22 +19314,6 @@
     (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)
@@ -16121,6 +20429,60 @@
             break;
         }
 #endif
+#ifdef VK_KHR_video_queue
+        case VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR:
+        {
+            transform_tohost_VkVideoQueueFamilyProperties2KHR(resourceTracker, reinterpret_cast<VkVideoQueueFamilyProperties2KHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR:
+        {
+            transform_tohost_VkVideoProfileKHR(resourceTracker, reinterpret_cast<VkVideoProfileKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR:
+        {
+            transform_tohost_VkVideoProfilesKHR(resourceTracker, reinterpret_cast<VkVideoProfilesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_dynamic_rendering
+        case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR:
+        {
+            transform_tohost_VkPipelineRenderingCreateInfoKHR(resourceTracker, reinterpret_cast<VkPipelineRenderingCreateInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR:
+        {
+            transform_tohost_VkPhysicalDeviceDynamicRenderingFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceDynamicRenderingFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR:
+        {
+            transform_tohost_VkCommandBufferInheritanceRenderingInfoKHR(resourceTracker, reinterpret_cast<VkCommandBufferInheritanceRenderingInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
+        {
+            transform_tohost_VkRenderingFragmentShadingRateAttachmentInfoKHR(resourceTracker, reinterpret_cast<VkRenderingFragmentShadingRateAttachmentInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:
+        {
+            transform_tohost_VkRenderingFragmentDensityMapAttachmentInfoEXT(resourceTracker, reinterpret_cast<VkRenderingFragmentDensityMapAttachmentInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:
+        {
+            transform_tohost_VkAttachmentSampleCountInfoAMD(resourceTracker, reinterpret_cast<VkAttachmentSampleCountInfoAMD*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:
+        {
+            transform_tohost_VkMultiviewPerViewAttributesInfoNVX(resourceTracker, reinterpret_cast<VkMultiviewPerViewAttributesInfoNVX*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_KHR_external_memory_win32
         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
         {
@@ -16264,6 +20626,13 @@
             break;
         }
 #endif
+#ifdef VK_KHR_present_wait
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:
+        {
+            transform_tohost_VkPhysicalDevicePresentWaitFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevicePresentWaitFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_KHR_pipeline_executable_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
         {
@@ -16271,6 +20640,94 @@
             break;
         }
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR:
+        {
+            transform_tohost_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR:
+        {
+            transform_tohost_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_present_id
+        case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:
+        {
+            transform_tohost_VkPresentIdKHR(resourceTracker, reinterpret_cast<VkPresentIdKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:
+        {
+            transform_tohost_VkPhysicalDevicePresentIdFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevicePresentIdFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_video_encode_queue
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:
+        {
+            transform_tohost_VkVideoEncodeRateControlInfoKHR(resourceTracker, reinterpret_cast<VkVideoEncodeRateControlInfoKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_synchronization2
+        case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR:
+        {
+            transform_tohost_VkMemoryBarrier2KHR(resourceTracker, reinterpret_cast<VkMemoryBarrier2KHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR:
+        {
+            transform_tohost_VkPhysicalDeviceSynchronization2FeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceSynchronization2FeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:
+        {
+            transform_tohost_VkQueueFamilyCheckpointProperties2NV(resourceTracker, reinterpret_cast<VkQueueFamilyCheckpointProperties2NV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR:
+        {
+            transform_tohost_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR:
+        {
+            transform_tohost_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:
+        {
+            transform_tohost_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_format_feature_flags2
+        case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR:
+        {
+            transform_tohost_VkFormatProperties3KHR(resourceTracker, reinterpret_cast<VkFormatProperties3KHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_maintenance4
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR:
+        {
+            transform_tohost_VkPhysicalDeviceMaintenance4FeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceMaintenance4FeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR:
+        {
+            transform_tohost_VkPhysicalDeviceMaintenance4PropertiesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceMaintenance4PropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_ANDROID_native_buffer
         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
         {
@@ -16326,6 +20783,122 @@
             break;
         }
 #endif
+#ifdef VK_EXT_video_encode_h264
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT:
+        {
+            transform_tohost_VkVideoEncodeH264CapabilitiesEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH264CapabilitiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkVideoEncodeH264SessionCreateInfoEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH264SessionCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            transform_tohost_VkVideoEncodeH264SessionParametersAddInfoEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH264SessionParametersAddInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkVideoEncodeH264SessionParametersCreateInfoEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH264SessionParametersCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT:
+        {
+            transform_tohost_VkVideoEncodeH264VclFrameInfoEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH264VclFrameInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT:
+        {
+            transform_tohost_VkVideoEncodeH264EmitPictureParametersEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH264EmitPictureParametersEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT:
+        {
+            transform_tohost_VkVideoEncodeH264ProfileEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH264ProfileEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_video_encode_h265
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT:
+        {
+            transform_tohost_VkVideoEncodeH265CapabilitiesEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH265CapabilitiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkVideoEncodeH265SessionCreateInfoEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH265SessionCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            transform_tohost_VkVideoEncodeH265SessionParametersAddInfoEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH265SessionParametersAddInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkVideoEncodeH265SessionParametersCreateInfoEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH265SessionParametersCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT:
+        {
+            transform_tohost_VkVideoEncodeH265VclFrameInfoEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH265VclFrameInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT:
+        {
+            transform_tohost_VkVideoEncodeH265EmitPictureParametersEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH265EmitPictureParametersEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT:
+        {
+            transform_tohost_VkVideoEncodeH265ProfileEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH265ProfileEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_video_decode_h264
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT:
+        {
+            transform_tohost_VkVideoDecodeH264ProfileEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH264ProfileEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT:
+        {
+            transform_tohost_VkVideoDecodeH264CapabilitiesEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH264CapabilitiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkVideoDecodeH264SessionCreateInfoEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH264SessionCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            transform_tohost_VkVideoDecodeH264SessionParametersAddInfoEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH264SessionParametersAddInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkVideoDecodeH264SessionParametersCreateInfoEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH264SessionParametersCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT:
+        {
+            transform_tohost_VkVideoDecodeH264PictureInfoEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH264PictureInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT:
+        {
+            transform_tohost_VkVideoDecodeH264MvcEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH264MvcEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT:
+        {
+            transform_tohost_VkVideoDecodeH264DpbSlotInfoEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH264DpbSlotInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
@@ -16508,6 +21081,11 @@
             transform_tohost_VkExternalFormatANDROID(resourceTracker, reinterpret_cast<VkExternalFormatANDROID*>(structExtension_out));
             break;
         }
+        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:
+        {
+            transform_tohost_VkAndroidHardwareBufferFormatProperties2ANDROID(resourceTracker, reinterpret_cast<VkAndroidHardwareBufferFormatProperties2ANDROID*>(structExtension_out));
+            break;
+        }
 #endif
 #ifdef VK_EXT_inline_uniform_block
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:
@@ -16617,6 +21195,11 @@
             transform_tohost_VkImageDrmFormatModifierExplicitCreateInfoEXT(resourceTracker, reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>(structExtension_out));
             break;
         }
+        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:
+        {
+            transform_tohost_VkDrmFormatModifierPropertiesList2EXT(resourceTracker, reinterpret_cast<VkDrmFormatModifierPropertiesList2EXT*>(structExtension_out));
+            break;
+        }
 #endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
@@ -16716,6 +21299,43 @@
             break;
         }
 #endif
+#ifdef VK_EXT_video_decode_h265
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT:
+        {
+            transform_tohost_VkVideoDecodeH265ProfileEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH265ProfileEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT:
+        {
+            transform_tohost_VkVideoDecodeH265CapabilitiesEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH265CapabilitiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkVideoDecodeH265SessionCreateInfoEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH265SessionCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            transform_tohost_VkVideoDecodeH265SessionParametersAddInfoEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH265SessionParametersAddInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkVideoDecodeH265SessionParametersCreateInfoEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH265SessionParametersCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT:
+        {
+            transform_tohost_VkVideoDecodeH265PictureInfoEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH265PictureInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT:
+        {
+            transform_tohost_VkVideoDecodeH265DpbSlotInfoEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH265DpbSlotInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
         case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
         {
@@ -16977,6 +21597,23 @@
             break;
         }
 #endif
+#ifdef VK_EXT_provoking_vertex
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceProvokingVertexFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceProvokingVertexFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceProvokingVertexPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceProvokingVertexPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_full_screen_exclusive
         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
         {
@@ -17032,6 +21669,13 @@
             break;
         }
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT*>(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:
         {
@@ -17056,6 +21700,18 @@
             break;
         }
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceInheritedViewportScissorFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:
+        {
+            transform_tohost_VkCommandBufferInheritanceViewportScissorInfoNV(resourceTracker, reinterpret_cast<VkCommandBufferInheritanceViewportScissorInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
         {
@@ -17169,6 +21825,30 @@
             break;
         }
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:
+        {
+            transform_tohost_VkAccelerationStructureGeometryMotionTrianglesDataNV(resourceTracker, reinterpret_cast<VkAccelerationStructureGeometryMotionTrianglesDataNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:
+        {
+            transform_tohost_VkAccelerationStructureMotionInfoNV(resourceTracker, reinterpret_cast<VkAccelerationStructureMotionInfoNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_fragment_density_map2
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
         {
@@ -17202,6 +21882,120 @@
             break;
         }
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_VALVE_mutable_descriptor_type
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE:
+        {
+            transform_tohost_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(resourceTracker, reinterpret_cast<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE:
+        {
+            transform_tohost_VkMutableDescriptorTypeCreateInfoVALVE(resourceTracker, reinterpret_cast<VkMutableDescriptorTypeCreateInfoVALVE*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_physical_device_drm
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceDrmPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceDrmPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_FUCHSIA_external_memory
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:
+        {
+            transform_tohost_VkImportMemoryZirconHandleInfoFUCHSIA(resourceTracker, reinterpret_cast<VkImportMemoryZirconHandleInfoFUCHSIA*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:
+        {
+            transform_tohost_VkImportMemoryBufferCollectionFUCHSIA(resourceTracker, reinterpret_cast<VkImportMemoryBufferCollectionFUCHSIA*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:
+        {
+            transform_tohost_VkBufferCollectionImageCreateInfoFUCHSIA(resourceTracker, reinterpret_cast<VkBufferCollectionImageCreateInfoFUCHSIA*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:
+        {
+            transform_tohost_VkBufferCollectionBufferCreateInfoFUCHSIA(resourceTracker, reinterpret_cast<VkBufferCollectionBufferCreateInfoFUCHSIA*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+        case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:
+        {
+            transform_tohost_VkSubpassShadingPipelineCreateInfoHUAWEI(resourceTracker, reinterpret_cast<VkSubpassShadingPipelineCreateInfoHUAWEI*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:
+        {
+            transform_tohost_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(resourceTracker, reinterpret_cast<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:
+        {
+            transform_tohost_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(resourceTracker, reinterpret_cast<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:
+        {
+            transform_tohost_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(resourceTracker, reinterpret_cast<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_external_memory_rdma
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_color_write_enable
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceColorWriteEnableFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkPipelineColorWriteCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineColorWriteCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_GOOGLE_gfxstream
         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
         {
@@ -17219,6 +22013,49 @@
             break;
         }
 #endif
+#ifdef VK_EXT_global_priority_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT:
+        {
+            transform_tohost_VkQueueFamilyGlobalPriorityPropertiesEXT(resourceTracker, reinterpret_cast<VkQueueFamilyGlobalPriorityPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_multi_draw
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceMultiDrawFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceMultiDrawFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceMultiDrawPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceMultiDrawPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_border_color_swizzle
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkSamplerBorderColorComponentMappingCreateInfoEXT(resourceTracker, reinterpret_cast<VkSamplerBorderColorComponentMappingCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_KHR_acceleration_structure
         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
         {
@@ -17696,6 +22533,60 @@
             break;
         }
 #endif
+#ifdef VK_KHR_video_queue
+        case VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR:
+        {
+            transform_fromhost_VkVideoQueueFamilyProperties2KHR(resourceTracker, reinterpret_cast<VkVideoQueueFamilyProperties2KHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR:
+        {
+            transform_fromhost_VkVideoProfileKHR(resourceTracker, reinterpret_cast<VkVideoProfileKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR:
+        {
+            transform_fromhost_VkVideoProfilesKHR(resourceTracker, reinterpret_cast<VkVideoProfilesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_dynamic_rendering
+        case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR:
+        {
+            transform_fromhost_VkPipelineRenderingCreateInfoKHR(resourceTracker, reinterpret_cast<VkPipelineRenderingCreateInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR:
+        {
+            transform_fromhost_VkPhysicalDeviceDynamicRenderingFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceDynamicRenderingFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR:
+        {
+            transform_fromhost_VkCommandBufferInheritanceRenderingInfoKHR(resourceTracker, reinterpret_cast<VkCommandBufferInheritanceRenderingInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
+        {
+            transform_fromhost_VkRenderingFragmentShadingRateAttachmentInfoKHR(resourceTracker, reinterpret_cast<VkRenderingFragmentShadingRateAttachmentInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:
+        {
+            transform_fromhost_VkRenderingFragmentDensityMapAttachmentInfoEXT(resourceTracker, reinterpret_cast<VkRenderingFragmentDensityMapAttachmentInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:
+        {
+            transform_fromhost_VkAttachmentSampleCountInfoAMD(resourceTracker, reinterpret_cast<VkAttachmentSampleCountInfoAMD*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:
+        {
+            transform_fromhost_VkMultiviewPerViewAttributesInfoNVX(resourceTracker, reinterpret_cast<VkMultiviewPerViewAttributesInfoNVX*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_KHR_external_memory_win32
         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
         {
@@ -17839,6 +22730,13 @@
             break;
         }
 #endif
+#ifdef VK_KHR_present_wait
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:
+        {
+            transform_fromhost_VkPhysicalDevicePresentWaitFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevicePresentWaitFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_KHR_pipeline_executable_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
         {
@@ -17846,6 +22744,94 @@
             break;
         }
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR:
+        {
+            transform_fromhost_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR:
+        {
+            transform_fromhost_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_present_id
+        case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:
+        {
+            transform_fromhost_VkPresentIdKHR(resourceTracker, reinterpret_cast<VkPresentIdKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:
+        {
+            transform_fromhost_VkPhysicalDevicePresentIdFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevicePresentIdFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_video_encode_queue
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:
+        {
+            transform_fromhost_VkVideoEncodeRateControlInfoKHR(resourceTracker, reinterpret_cast<VkVideoEncodeRateControlInfoKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_synchronization2
+        case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR:
+        {
+            transform_fromhost_VkMemoryBarrier2KHR(resourceTracker, reinterpret_cast<VkMemoryBarrier2KHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR:
+        {
+            transform_fromhost_VkPhysicalDeviceSynchronization2FeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceSynchronization2FeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:
+        {
+            transform_fromhost_VkQueueFamilyCheckpointProperties2NV(resourceTracker, reinterpret_cast<VkQueueFamilyCheckpointProperties2NV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR:
+        {
+            transform_fromhost_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR:
+        {
+            transform_fromhost_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:
+        {
+            transform_fromhost_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_format_feature_flags2
+        case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR:
+        {
+            transform_fromhost_VkFormatProperties3KHR(resourceTracker, reinterpret_cast<VkFormatProperties3KHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_maintenance4
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR:
+        {
+            transform_fromhost_VkPhysicalDeviceMaintenance4FeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceMaintenance4FeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR:
+        {
+            transform_fromhost_VkPhysicalDeviceMaintenance4PropertiesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceMaintenance4PropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_ANDROID_native_buffer
         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID:
         {
@@ -17901,6 +22887,122 @@
             break;
         }
 #endif
+#ifdef VK_EXT_video_encode_h264
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT:
+        {
+            transform_fromhost_VkVideoEncodeH264CapabilitiesEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH264CapabilitiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkVideoEncodeH264SessionCreateInfoEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH264SessionCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            transform_fromhost_VkVideoEncodeH264SessionParametersAddInfoEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH264SessionParametersAddInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkVideoEncodeH264SessionParametersCreateInfoEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH264SessionParametersCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT:
+        {
+            transform_fromhost_VkVideoEncodeH264VclFrameInfoEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH264VclFrameInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT:
+        {
+            transform_fromhost_VkVideoEncodeH264EmitPictureParametersEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH264EmitPictureParametersEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT:
+        {
+            transform_fromhost_VkVideoEncodeH264ProfileEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH264ProfileEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_video_encode_h265
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT:
+        {
+            transform_fromhost_VkVideoEncodeH265CapabilitiesEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH265CapabilitiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkVideoEncodeH265SessionCreateInfoEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH265SessionCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            transform_fromhost_VkVideoEncodeH265SessionParametersAddInfoEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH265SessionParametersAddInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkVideoEncodeH265SessionParametersCreateInfoEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH265SessionParametersCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT:
+        {
+            transform_fromhost_VkVideoEncodeH265VclFrameInfoEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH265VclFrameInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT:
+        {
+            transform_fromhost_VkVideoEncodeH265EmitPictureParametersEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH265EmitPictureParametersEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT:
+        {
+            transform_fromhost_VkVideoEncodeH265ProfileEXT(resourceTracker, reinterpret_cast<VkVideoEncodeH265ProfileEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_video_decode_h264
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT:
+        {
+            transform_fromhost_VkVideoDecodeH264ProfileEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH264ProfileEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT:
+        {
+            transform_fromhost_VkVideoDecodeH264CapabilitiesEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH264CapabilitiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkVideoDecodeH264SessionCreateInfoEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH264SessionCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            transform_fromhost_VkVideoDecodeH264SessionParametersAddInfoEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH264SessionParametersAddInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkVideoDecodeH264SessionParametersCreateInfoEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH264SessionParametersCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT:
+        {
+            transform_fromhost_VkVideoDecodeH264PictureInfoEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH264PictureInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT:
+        {
+            transform_fromhost_VkVideoDecodeH264MvcEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH264MvcEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT:
+        {
+            transform_fromhost_VkVideoDecodeH264DpbSlotInfoEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH264DpbSlotInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
@@ -18083,6 +23185,11 @@
             transform_fromhost_VkExternalFormatANDROID(resourceTracker, reinterpret_cast<VkExternalFormatANDROID*>(structExtension_out));
             break;
         }
+        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:
+        {
+            transform_fromhost_VkAndroidHardwareBufferFormatProperties2ANDROID(resourceTracker, reinterpret_cast<VkAndroidHardwareBufferFormatProperties2ANDROID*>(structExtension_out));
+            break;
+        }
 #endif
 #ifdef VK_EXT_inline_uniform_block
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:
@@ -18192,6 +23299,11 @@
             transform_fromhost_VkImageDrmFormatModifierExplicitCreateInfoEXT(resourceTracker, reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>(structExtension_out));
             break;
         }
+        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:
+        {
+            transform_fromhost_VkDrmFormatModifierPropertiesList2EXT(resourceTracker, reinterpret_cast<VkDrmFormatModifierPropertiesList2EXT*>(structExtension_out));
+            break;
+        }
 #endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
@@ -18291,6 +23403,43 @@
             break;
         }
 #endif
+#ifdef VK_EXT_video_decode_h265
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT:
+        {
+            transform_fromhost_VkVideoDecodeH265ProfileEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH265ProfileEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT:
+        {
+            transform_fromhost_VkVideoDecodeH265CapabilitiesEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH265CapabilitiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkVideoDecodeH265SessionCreateInfoEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH265SessionCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:
+        {
+            transform_fromhost_VkVideoDecodeH265SessionParametersAddInfoEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH265SessionParametersAddInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkVideoDecodeH265SessionParametersCreateInfoEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH265SessionParametersCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT:
+        {
+            transform_fromhost_VkVideoDecodeH265PictureInfoEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH265PictureInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT:
+        {
+            transform_fromhost_VkVideoDecodeH265DpbSlotInfoEXT(resourceTracker, reinterpret_cast<VkVideoDecodeH265DpbSlotInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
         case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
         {
@@ -18552,6 +23701,23 @@
             break;
         }
 #endif
+#ifdef VK_EXT_provoking_vertex
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceProvokingVertexFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceProvokingVertexFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceProvokingVertexPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceProvokingVertexPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineRasterizationProvokingVertexStateCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_full_screen_exclusive
         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
         {
@@ -18607,6 +23773,13 @@
             break;
         }
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT*>(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:
         {
@@ -18631,6 +23804,18 @@
             break;
         }
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceInheritedViewportScissorFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:
+        {
+            transform_fromhost_VkCommandBufferInheritanceViewportScissorInfoNV(resourceTracker, reinterpret_cast<VkCommandBufferInheritanceViewportScissorInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
         {
@@ -18744,6 +23929,30 @@
             break;
         }
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:
+        {
+            transform_fromhost_VkAccelerationStructureGeometryMotionTrianglesDataNV(resourceTracker, reinterpret_cast<VkAccelerationStructureGeometryMotionTrianglesDataNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:
+        {
+            transform_fromhost_VkAccelerationStructureMotionInfoNV(resourceTracker, reinterpret_cast<VkAccelerationStructureMotionInfoNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_fragment_density_map2
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
         {
@@ -18777,6 +23986,120 @@
             break;
         }
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_VALVE_mutable_descriptor_type
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE:
+        {
+            transform_fromhost_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(resourceTracker, reinterpret_cast<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE:
+        {
+            transform_fromhost_VkMutableDescriptorTypeCreateInfoVALVE(resourceTracker, reinterpret_cast<VkMutableDescriptorTypeCreateInfoVALVE*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_physical_device_drm
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceDrmPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceDrmPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_FUCHSIA_external_memory
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:
+        {
+            transform_fromhost_VkImportMemoryZirconHandleInfoFUCHSIA(resourceTracker, reinterpret_cast<VkImportMemoryZirconHandleInfoFUCHSIA*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:
+        {
+            transform_fromhost_VkImportMemoryBufferCollectionFUCHSIA(resourceTracker, reinterpret_cast<VkImportMemoryBufferCollectionFUCHSIA*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:
+        {
+            transform_fromhost_VkBufferCollectionImageCreateInfoFUCHSIA(resourceTracker, reinterpret_cast<VkBufferCollectionImageCreateInfoFUCHSIA*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:
+        {
+            transform_fromhost_VkBufferCollectionBufferCreateInfoFUCHSIA(resourceTracker, reinterpret_cast<VkBufferCollectionBufferCreateInfoFUCHSIA*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+        case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:
+        {
+            transform_fromhost_VkSubpassShadingPipelineCreateInfoHUAWEI(resourceTracker, reinterpret_cast<VkSubpassShadingPipelineCreateInfoHUAWEI*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:
+        {
+            transform_fromhost_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(resourceTracker, reinterpret_cast<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:
+        {
+            transform_fromhost_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(resourceTracker, reinterpret_cast<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:
+        {
+            transform_fromhost_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(resourceTracker, reinterpret_cast<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_external_memory_rdma
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_color_write_enable
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceColorWriteEnableFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkPipelineColorWriteCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineColorWriteCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_GOOGLE_gfxstream
         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
         {
@@ -18794,6 +24117,49 @@
             break;
         }
 #endif
+#ifdef VK_EXT_global_priority_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkQueueFamilyGlobalPriorityPropertiesEXT(resourceTracker, reinterpret_cast<VkQueueFamilyGlobalPriorityPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_multi_draw
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceMultiDrawFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceMultiDrawFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceMultiDrawPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceMultiDrawPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_border_color_swizzle
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkSamplerBorderColorComponentMappingCreateInfoEXT(resourceTracker, reinterpret_cast<VkSamplerBorderColorComponentMappingCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_KHR_acceleration_structure
         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
         {
diff --git a/system/vulkan_enc/goldfish_vk_transform_guest.h b/system/vulkan_enc/goldfish_vk_transform_guest.h
index c1fd0b9..cba6f67 100644
--- a/system/vulkan_enc/goldfish_vk_transform_guest.h
+++ b/system/vulkan_enc/goldfish_vk_transform_guest.h
@@ -165,6 +165,14 @@
     ResourceTracker* resourceTracker,
     VkMemoryBarrier* toTransform);
 
+void transform_tohost_VkPipelineCacheHeaderVersionOne(
+    ResourceTracker* resourceTracker,
+    VkPipelineCacheHeaderVersionOne* toTransform);
+
+void transform_fromhost_VkPipelineCacheHeaderVersionOne(
+    ResourceTracker* resourceTracker,
+    VkPipelineCacheHeaderVersionOne* toTransform);
+
 void transform_tohost_VkAllocationCallbacks(
     ResourceTracker* resourceTracker,
     VkAllocationCallbacks* toTransform);
@@ -2094,6 +2102,224 @@
 #endif
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
+#ifdef VK_KHR_video_queue
+void transform_tohost_VkVideoQueueFamilyProperties2KHR(
+    ResourceTracker* resourceTracker,
+    VkVideoQueueFamilyProperties2KHR* toTransform);
+
+void transform_fromhost_VkVideoQueueFamilyProperties2KHR(
+    ResourceTracker* resourceTracker,
+    VkVideoQueueFamilyProperties2KHR* toTransform);
+
+void transform_tohost_VkVideoProfileKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoProfileKHR* toTransform);
+
+void transform_fromhost_VkVideoProfileKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoProfileKHR* toTransform);
+
+void transform_tohost_VkVideoProfilesKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoProfilesKHR* toTransform);
+
+void transform_fromhost_VkVideoProfilesKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoProfilesKHR* toTransform);
+
+void transform_tohost_VkVideoCapabilitiesKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoCapabilitiesKHR* toTransform);
+
+void transform_fromhost_VkVideoCapabilitiesKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoCapabilitiesKHR* toTransform);
+
+void transform_tohost_VkPhysicalDeviceVideoFormatInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVideoFormatInfoKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceVideoFormatInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVideoFormatInfoKHR* toTransform);
+
+void transform_tohost_VkVideoFormatPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoFormatPropertiesKHR* toTransform);
+
+void transform_fromhost_VkVideoFormatPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoFormatPropertiesKHR* toTransform);
+
+void transform_tohost_VkVideoPictureResourceKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoPictureResourceKHR* toTransform);
+
+void transform_fromhost_VkVideoPictureResourceKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoPictureResourceKHR* toTransform);
+
+void transform_tohost_VkVideoReferenceSlotKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoReferenceSlotKHR* toTransform);
+
+void transform_fromhost_VkVideoReferenceSlotKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoReferenceSlotKHR* toTransform);
+
+void transform_tohost_VkVideoGetMemoryPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoGetMemoryPropertiesKHR* toTransform);
+
+void transform_fromhost_VkVideoGetMemoryPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoGetMemoryPropertiesKHR* toTransform);
+
+void transform_tohost_VkVideoBindMemoryKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoBindMemoryKHR* toTransform);
+
+void transform_fromhost_VkVideoBindMemoryKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoBindMemoryKHR* toTransform);
+
+void transform_tohost_VkVideoSessionCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoSessionCreateInfoKHR* toTransform);
+
+void transform_fromhost_VkVideoSessionCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoSessionCreateInfoKHR* toTransform);
+
+void transform_tohost_VkVideoSessionParametersCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoSessionParametersCreateInfoKHR* toTransform);
+
+void transform_fromhost_VkVideoSessionParametersCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoSessionParametersCreateInfoKHR* toTransform);
+
+void transform_tohost_VkVideoSessionParametersUpdateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoSessionParametersUpdateInfoKHR* toTransform);
+
+void transform_fromhost_VkVideoSessionParametersUpdateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoSessionParametersUpdateInfoKHR* toTransform);
+
+void transform_tohost_VkVideoBeginCodingInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoBeginCodingInfoKHR* toTransform);
+
+void transform_fromhost_VkVideoBeginCodingInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoBeginCodingInfoKHR* toTransform);
+
+void transform_tohost_VkVideoEndCodingInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoEndCodingInfoKHR* toTransform);
+
+void transform_fromhost_VkVideoEndCodingInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoEndCodingInfoKHR* toTransform);
+
+void transform_tohost_VkVideoCodingControlInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoCodingControlInfoKHR* toTransform);
+
+void transform_fromhost_VkVideoCodingControlInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoCodingControlInfoKHR* toTransform);
+
+#endif
+#ifdef VK_KHR_video_decode_queue
+void transform_tohost_VkVideoDecodeInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeInfoKHR* toTransform);
+
+void transform_fromhost_VkVideoDecodeInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeInfoKHR* toTransform);
+
+#endif
+#ifdef VK_KHR_dynamic_rendering
+void transform_tohost_VkRenderingAttachmentInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRenderingAttachmentInfoKHR* toTransform);
+
+void transform_fromhost_VkRenderingAttachmentInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRenderingAttachmentInfoKHR* toTransform);
+
+void transform_tohost_VkRenderingInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRenderingInfoKHR* toTransform);
+
+void transform_fromhost_VkRenderingInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRenderingInfoKHR* toTransform);
+
+void transform_tohost_VkPipelineRenderingCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineRenderingCreateInfoKHR* toTransform);
+
+void transform_fromhost_VkPipelineRenderingCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineRenderingCreateInfoKHR* toTransform);
+
+void transform_tohost_VkPhysicalDeviceDynamicRenderingFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDynamicRenderingFeaturesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceDynamicRenderingFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDynamicRenderingFeaturesKHR* toTransform);
+
+void transform_tohost_VkCommandBufferInheritanceRenderingInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferInheritanceRenderingInfoKHR* toTransform);
+
+void transform_fromhost_VkCommandBufferInheritanceRenderingInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferInheritanceRenderingInfoKHR* toTransform);
+
+void transform_tohost_VkRenderingFragmentShadingRateAttachmentInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRenderingFragmentShadingRateAttachmentInfoKHR* toTransform);
+
+void transform_fromhost_VkRenderingFragmentShadingRateAttachmentInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRenderingFragmentShadingRateAttachmentInfoKHR* toTransform);
+
+void transform_tohost_VkRenderingFragmentDensityMapAttachmentInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkRenderingFragmentDensityMapAttachmentInfoEXT* toTransform);
+
+void transform_fromhost_VkRenderingFragmentDensityMapAttachmentInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkRenderingFragmentDensityMapAttachmentInfoEXT* toTransform);
+
+void transform_tohost_VkAttachmentSampleCountInfoAMD(
+    ResourceTracker* resourceTracker,
+    VkAttachmentSampleCountInfoAMD* toTransform);
+
+void transform_fromhost_VkAttachmentSampleCountInfoAMD(
+    ResourceTracker* resourceTracker,
+    VkAttachmentSampleCountInfoAMD* toTransform);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkAttachmentSampleCountInfoAMD, transform_tohost_VkAttachmentSampleCountInfoNV)
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkAttachmentSampleCountInfoAMD, transform_fromhost_VkAttachmentSampleCountInfoNV)
+
+void transform_tohost_VkMultiviewPerViewAttributesInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkMultiviewPerViewAttributesInfoNVX* toTransform);
+
+void transform_fromhost_VkMultiviewPerViewAttributesInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkMultiviewPerViewAttributesInfoNVX* toTransform);
+
+#endif
 #ifdef VK_KHR_multiview
 DEFINE_ALIAS_FUNCTION(transform_tohost_VkRenderPassMultiviewCreateInfo, transform_tohost_VkRenderPassMultiviewCreateInfoKHR)
 
@@ -2988,6 +3214,16 @@
 DEFINE_ALIAS_FUNCTION(transform_fromhost_VkAttachmentDescriptionStencilLayout, transform_fromhost_VkAttachmentDescriptionStencilLayoutKHR)
 
 #endif
+#ifdef VK_KHR_present_wait
+void transform_tohost_VkPhysicalDevicePresentWaitFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePresentWaitFeaturesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDevicePresentWaitFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePresentWaitFeaturesKHR* toTransform);
+
+#endif
 #ifdef VK_KHR_uniform_buffer_standard_layout
 DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceUniformBufferStandardLayoutFeatures, transform_tohost_VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR)
 
@@ -3076,6 +3312,24 @@
     VkPipelineExecutableInternalRepresentationKHR* toTransform);
 
 #endif
+#ifdef VK_KHR_shader_integer_dot_product
+void transform_tohost_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* toTransform);
+
+void transform_tohost_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* toTransform);
+
+#endif
 #ifdef VK_KHR_pipeline_library
 void transform_tohost_VkPipelineLibraryCreateInfoKHR(
     ResourceTracker* resourceTracker,
@@ -3088,6 +3342,154 @@
 #endif
 #ifdef VK_KHR_shader_non_semantic_info
 #endif
+#ifdef VK_KHR_present_id
+void transform_tohost_VkPresentIdKHR(
+    ResourceTracker* resourceTracker,
+    VkPresentIdKHR* toTransform);
+
+void transform_fromhost_VkPresentIdKHR(
+    ResourceTracker* resourceTracker,
+    VkPresentIdKHR* toTransform);
+
+void transform_tohost_VkPhysicalDevicePresentIdFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePresentIdFeaturesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDevicePresentIdFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePresentIdFeaturesKHR* toTransform);
+
+#endif
+#ifdef VK_KHR_video_encode_queue
+void transform_tohost_VkVideoEncodeInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeInfoKHR* toTransform);
+
+void transform_fromhost_VkVideoEncodeInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeInfoKHR* toTransform);
+
+void transform_tohost_VkVideoEncodeRateControlInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeRateControlInfoKHR* toTransform);
+
+void transform_fromhost_VkVideoEncodeRateControlInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeRateControlInfoKHR* toTransform);
+
+#endif
+#ifdef VK_KHR_synchronization2
+void transform_tohost_VkMemoryBarrier2KHR(
+    ResourceTracker* resourceTracker,
+    VkMemoryBarrier2KHR* toTransform);
+
+void transform_fromhost_VkMemoryBarrier2KHR(
+    ResourceTracker* resourceTracker,
+    VkMemoryBarrier2KHR* toTransform);
+
+void transform_tohost_VkBufferMemoryBarrier2KHR(
+    ResourceTracker* resourceTracker,
+    VkBufferMemoryBarrier2KHR* toTransform);
+
+void transform_fromhost_VkBufferMemoryBarrier2KHR(
+    ResourceTracker* resourceTracker,
+    VkBufferMemoryBarrier2KHR* toTransform);
+
+void transform_tohost_VkImageMemoryBarrier2KHR(
+    ResourceTracker* resourceTracker,
+    VkImageMemoryBarrier2KHR* toTransform);
+
+void transform_fromhost_VkImageMemoryBarrier2KHR(
+    ResourceTracker* resourceTracker,
+    VkImageMemoryBarrier2KHR* toTransform);
+
+void transform_tohost_VkDependencyInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkDependencyInfoKHR* toTransform);
+
+void transform_fromhost_VkDependencyInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkDependencyInfoKHR* toTransform);
+
+void transform_tohost_VkSemaphoreSubmitInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreSubmitInfoKHR* toTransform);
+
+void transform_fromhost_VkSemaphoreSubmitInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreSubmitInfoKHR* toTransform);
+
+void transform_tohost_VkCommandBufferSubmitInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferSubmitInfoKHR* toTransform);
+
+void transform_fromhost_VkCommandBufferSubmitInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferSubmitInfoKHR* toTransform);
+
+void transform_tohost_VkSubmitInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkSubmitInfo2KHR* toTransform);
+
+void transform_fromhost_VkSubmitInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkSubmitInfo2KHR* toTransform);
+
+void transform_tohost_VkPhysicalDeviceSynchronization2FeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSynchronization2FeaturesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceSynchronization2FeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSynchronization2FeaturesKHR* toTransform);
+
+void transform_tohost_VkQueueFamilyCheckpointProperties2NV(
+    ResourceTracker* resourceTracker,
+    VkQueueFamilyCheckpointProperties2NV* toTransform);
+
+void transform_fromhost_VkQueueFamilyCheckpointProperties2NV(
+    ResourceTracker* resourceTracker,
+    VkQueueFamilyCheckpointProperties2NV* toTransform);
+
+void transform_tohost_VkCheckpointData2NV(
+    ResourceTracker* resourceTracker,
+    VkCheckpointData2NV* toTransform);
+
+void transform_fromhost_VkCheckpointData2NV(
+    ResourceTracker* resourceTracker,
+    VkCheckpointData2NV* toTransform);
+
+#endif
+#ifdef VK_KHR_shader_subgroup_uniform_control_flow
+void transform_tohost_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* toTransform);
+
+#endif
+#ifdef VK_KHR_zero_initialize_workgroup_memory
+void transform_tohost_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* toTransform);
+
+#endif
+#ifdef VK_KHR_workgroup_memory_explicit_layout
+void transform_tohost_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* toTransform);
+
+#endif
 #ifdef VK_KHR_copy_commands2
 void transform_tohost_VkBufferCopy2KHR(
     ResourceTracker* resourceTracker,
@@ -3178,6 +3580,50 @@
     VkResolveImageInfo2KHR* toTransform);
 
 #endif
+#ifdef VK_KHR_format_feature_flags2
+void transform_tohost_VkFormatProperties3KHR(
+    ResourceTracker* resourceTracker,
+    VkFormatProperties3KHR* toTransform);
+
+void transform_fromhost_VkFormatProperties3KHR(
+    ResourceTracker* resourceTracker,
+    VkFormatProperties3KHR* toTransform);
+
+#endif
+#ifdef VK_KHR_maintenance4
+void transform_tohost_VkPhysicalDeviceMaintenance4FeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMaintenance4FeaturesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceMaintenance4FeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMaintenance4FeaturesKHR* toTransform);
+
+void transform_tohost_VkPhysicalDeviceMaintenance4PropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMaintenance4PropertiesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceMaintenance4PropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMaintenance4PropertiesKHR* toTransform);
+
+void transform_tohost_VkDeviceBufferMemoryRequirementsKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceBufferMemoryRequirementsKHR* toTransform);
+
+void transform_fromhost_VkDeviceBufferMemoryRequirementsKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceBufferMemoryRequirementsKHR* toTransform);
+
+void transform_tohost_VkDeviceImageMemoryRequirementsKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceImageMemoryRequirementsKHR* toTransform);
+
+void transform_fromhost_VkDeviceImageMemoryRequirementsKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceImageMemoryRequirementsKHR* toTransform);
+
+#endif
 #ifdef VK_ANDROID_native_buffer
 void transform_tohost_VkNativeBufferANDROID(
     ResourceTracker* resourceTracker,
@@ -3298,6 +3744,32 @@
     VkPipelineRasterizationStateStreamCreateInfoEXT* toTransform);
 
 #endif
+#ifdef VK_NVX_binary_import
+void transform_tohost_VkCuModuleCreateInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkCuModuleCreateInfoNVX* toTransform);
+
+void transform_fromhost_VkCuModuleCreateInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkCuModuleCreateInfoNVX* toTransform);
+
+void transform_tohost_VkCuFunctionCreateInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkCuFunctionCreateInfoNVX* toTransform);
+
+void transform_fromhost_VkCuFunctionCreateInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkCuFunctionCreateInfoNVX* toTransform);
+
+void transform_tohost_VkCuLaunchInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkCuLaunchInfoNVX* toTransform);
+
+void transform_fromhost_VkCuLaunchInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkCuLaunchInfoNVX* toTransform);
+
+#endif
 #ifdef VK_NVX_image_view_handle
 void transform_tohost_VkImageViewHandleInfoNVX(
     ResourceTracker* resourceTracker,
@@ -3324,6 +3796,228 @@
 #endif
 #ifdef VK_AMD_shader_ballot
 #endif
+#ifdef VK_EXT_video_encode_h264
+void transform_tohost_VkVideoEncodeH264CapabilitiesEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264CapabilitiesEXT* toTransform);
+
+void transform_fromhost_VkVideoEncodeH264CapabilitiesEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264CapabilitiesEXT* toTransform);
+
+void transform_tohost_VkVideoEncodeH264SessionCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264SessionCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkVideoEncodeH264SessionCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264SessionCreateInfoEXT* toTransform);
+
+void transform_tohost_VkVideoEncodeH264SessionParametersAddInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264SessionParametersAddInfoEXT* toTransform);
+
+void transform_fromhost_VkVideoEncodeH264SessionParametersAddInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264SessionParametersAddInfoEXT* toTransform);
+
+void transform_tohost_VkVideoEncodeH264SessionParametersCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264SessionParametersCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkVideoEncodeH264SessionParametersCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264SessionParametersCreateInfoEXT* toTransform);
+
+void transform_tohost_VkVideoEncodeH264DpbSlotInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264DpbSlotInfoEXT* toTransform);
+
+void transform_fromhost_VkVideoEncodeH264DpbSlotInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264DpbSlotInfoEXT* toTransform);
+
+void transform_tohost_VkVideoEncodeH264NaluSliceEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264NaluSliceEXT* toTransform);
+
+void transform_fromhost_VkVideoEncodeH264NaluSliceEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264NaluSliceEXT* toTransform);
+
+void transform_tohost_VkVideoEncodeH264VclFrameInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264VclFrameInfoEXT* toTransform);
+
+void transform_fromhost_VkVideoEncodeH264VclFrameInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264VclFrameInfoEXT* toTransform);
+
+void transform_tohost_VkVideoEncodeH264EmitPictureParametersEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264EmitPictureParametersEXT* toTransform);
+
+void transform_fromhost_VkVideoEncodeH264EmitPictureParametersEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264EmitPictureParametersEXT* toTransform);
+
+void transform_tohost_VkVideoEncodeH264ProfileEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264ProfileEXT* toTransform);
+
+void transform_fromhost_VkVideoEncodeH264ProfileEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH264ProfileEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_video_encode_h265
+void transform_tohost_VkVideoEncodeH265CapabilitiesEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265CapabilitiesEXT* toTransform);
+
+void transform_fromhost_VkVideoEncodeH265CapabilitiesEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265CapabilitiesEXT* toTransform);
+
+void transform_tohost_VkVideoEncodeH265SessionCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265SessionCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkVideoEncodeH265SessionCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265SessionCreateInfoEXT* toTransform);
+
+void transform_tohost_VkVideoEncodeH265SessionParametersAddInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265SessionParametersAddInfoEXT* toTransform);
+
+void transform_fromhost_VkVideoEncodeH265SessionParametersAddInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265SessionParametersAddInfoEXT* toTransform);
+
+void transform_tohost_VkVideoEncodeH265SessionParametersCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265SessionParametersCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkVideoEncodeH265SessionParametersCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265SessionParametersCreateInfoEXT* toTransform);
+
+void transform_tohost_VkVideoEncodeH265DpbSlotInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265DpbSlotInfoEXT* toTransform);
+
+void transform_fromhost_VkVideoEncodeH265DpbSlotInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265DpbSlotInfoEXT* toTransform);
+
+void transform_tohost_VkVideoEncodeH265ReferenceListsEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265ReferenceListsEXT* toTransform);
+
+void transform_fromhost_VkVideoEncodeH265ReferenceListsEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265ReferenceListsEXT* toTransform);
+
+void transform_tohost_VkVideoEncodeH265NaluSliceEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265NaluSliceEXT* toTransform);
+
+void transform_fromhost_VkVideoEncodeH265NaluSliceEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265NaluSliceEXT* toTransform);
+
+void transform_tohost_VkVideoEncodeH265VclFrameInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265VclFrameInfoEXT* toTransform);
+
+void transform_fromhost_VkVideoEncodeH265VclFrameInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265VclFrameInfoEXT* toTransform);
+
+void transform_tohost_VkVideoEncodeH265EmitPictureParametersEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265EmitPictureParametersEXT* toTransform);
+
+void transform_fromhost_VkVideoEncodeH265EmitPictureParametersEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265EmitPictureParametersEXT* toTransform);
+
+void transform_tohost_VkVideoEncodeH265ProfileEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265ProfileEXT* toTransform);
+
+void transform_fromhost_VkVideoEncodeH265ProfileEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoEncodeH265ProfileEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_video_decode_h264
+void transform_tohost_VkVideoDecodeH264ProfileEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264ProfileEXT* toTransform);
+
+void transform_fromhost_VkVideoDecodeH264ProfileEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264ProfileEXT* toTransform);
+
+void transform_tohost_VkVideoDecodeH264CapabilitiesEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264CapabilitiesEXT* toTransform);
+
+void transform_fromhost_VkVideoDecodeH264CapabilitiesEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264CapabilitiesEXT* toTransform);
+
+void transform_tohost_VkVideoDecodeH264SessionCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264SessionCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkVideoDecodeH264SessionCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264SessionCreateInfoEXT* toTransform);
+
+void transform_tohost_VkVideoDecodeH264SessionParametersAddInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264SessionParametersAddInfoEXT* toTransform);
+
+void transform_fromhost_VkVideoDecodeH264SessionParametersAddInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264SessionParametersAddInfoEXT* toTransform);
+
+void transform_tohost_VkVideoDecodeH264SessionParametersCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264SessionParametersCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkVideoDecodeH264SessionParametersCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264SessionParametersCreateInfoEXT* toTransform);
+
+void transform_tohost_VkVideoDecodeH264PictureInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264PictureInfoEXT* toTransform);
+
+void transform_fromhost_VkVideoDecodeH264PictureInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264PictureInfoEXT* toTransform);
+
+void transform_tohost_VkVideoDecodeH264MvcEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264MvcEXT* toTransform);
+
+void transform_fromhost_VkVideoDecodeH264MvcEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264MvcEXT* toTransform);
+
+void transform_tohost_VkVideoDecodeH264DpbSlotInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264DpbSlotInfoEXT* toTransform);
+
+void transform_fromhost_VkVideoDecodeH264DpbSlotInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH264DpbSlotInfoEXT* toTransform);
+
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
 void transform_tohost_VkTextureLODGatherFormatPropertiesAMD(
     ResourceTracker* resourceTracker,
@@ -3835,6 +4529,14 @@
     ResourceTracker* resourceTracker,
     VkExternalFormatANDROID* toTransform);
 
+void transform_tohost_VkAndroidHardwareBufferFormatProperties2ANDROID(
+    ResourceTracker* resourceTracker,
+    VkAndroidHardwareBufferFormatProperties2ANDROID* toTransform);
+
+void transform_fromhost_VkAndroidHardwareBufferFormatProperties2ANDROID(
+    ResourceTracker* resourceTracker,
+    VkAndroidHardwareBufferFormatProperties2ANDROID* toTransform);
+
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
 DEFINE_ALIAS_FUNCTION(transform_tohost_VkSamplerReductionModeCreateInfo, transform_tohost_VkSamplerReductionModeCreateInfoEXT)
@@ -4071,6 +4773,22 @@
     ResourceTracker* resourceTracker,
     VkImageDrmFormatModifierPropertiesEXT* toTransform);
 
+void transform_tohost_VkDrmFormatModifierProperties2EXT(
+    ResourceTracker* resourceTracker,
+    VkDrmFormatModifierProperties2EXT* toTransform);
+
+void transform_fromhost_VkDrmFormatModifierProperties2EXT(
+    ResourceTracker* resourceTracker,
+    VkDrmFormatModifierProperties2EXT* toTransform);
+
+void transform_tohost_VkDrmFormatModifierPropertiesList2EXT(
+    ResourceTracker* resourceTracker,
+    VkDrmFormatModifierPropertiesList2EXT* toTransform);
+
+void transform_fromhost_VkDrmFormatModifierPropertiesList2EXT(
+    ResourceTracker* resourceTracker,
+    VkDrmFormatModifierPropertiesList2EXT* toTransform);
+
 #endif
 #ifdef VK_EXT_validation_cache
 void transform_tohost_VkValidationCacheCreateInfoEXT(
@@ -4412,6 +5130,64 @@
     VkPhysicalDeviceShaderCorePropertiesAMD* toTransform);
 
 #endif
+#ifdef VK_EXT_video_decode_h265
+void transform_tohost_VkVideoDecodeH265ProfileEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265ProfileEXT* toTransform);
+
+void transform_fromhost_VkVideoDecodeH265ProfileEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265ProfileEXT* toTransform);
+
+void transform_tohost_VkVideoDecodeH265CapabilitiesEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265CapabilitiesEXT* toTransform);
+
+void transform_fromhost_VkVideoDecodeH265CapabilitiesEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265CapabilitiesEXT* toTransform);
+
+void transform_tohost_VkVideoDecodeH265SessionCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265SessionCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkVideoDecodeH265SessionCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265SessionCreateInfoEXT* toTransform);
+
+void transform_tohost_VkVideoDecodeH265SessionParametersAddInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265SessionParametersAddInfoEXT* toTransform);
+
+void transform_fromhost_VkVideoDecodeH265SessionParametersAddInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265SessionParametersAddInfoEXT* toTransform);
+
+void transform_tohost_VkVideoDecodeH265SessionParametersCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265SessionParametersCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkVideoDecodeH265SessionParametersCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265SessionParametersCreateInfoEXT* toTransform);
+
+void transform_tohost_VkVideoDecodeH265PictureInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265PictureInfoEXT* toTransform);
+
+void transform_fromhost_VkVideoDecodeH265PictureInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265PictureInfoEXT* toTransform);
+
+void transform_tohost_VkVideoDecodeH265DpbSlotInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265DpbSlotInfoEXT* toTransform);
+
+void transform_fromhost_VkVideoDecodeH265DpbSlotInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkVideoDecodeH265DpbSlotInfoEXT* toTransform);
+
+#endif
 #ifdef VK_AMD_memory_overallocation_behavior
 void transform_tohost_VkDeviceMemoryOverallocationCreateInfoAMD(
     ResourceTracker* resourceTracker,
@@ -4960,6 +5736,32 @@
     VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* toTransform);
 
 #endif
+#ifdef VK_EXT_provoking_vertex
+void transform_tohost_VkPhysicalDeviceProvokingVertexFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceProvokingVertexFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceProvokingVertexFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceProvokingVertexFeaturesEXT* toTransform);
+
+void transform_tohost_VkPhysicalDeviceProvokingVertexPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceProvokingVertexPropertiesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceProvokingVertexPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceProvokingVertexPropertiesEXT* toTransform);
+
+void transform_tohost_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* toTransform);
+
+#endif
 #ifdef VK_EXT_full_screen_exclusive
 void transform_tohost_VkSurfaceFullScreenExclusiveInfoEXT(
     ResourceTracker* resourceTracker,
@@ -5058,6 +5860,16 @@
     VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* toTransform);
 
 #endif
+#ifdef VK_EXT_shader_atomic_float2
+void transform_tohost_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* toTransform);
+
+#endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 void transform_tohost_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
     ResourceTracker* resourceTracker,
@@ -5174,6 +5986,24 @@
     VkGeneratedCommandsMemoryRequirementsInfoNV* toTransform);
 
 #endif
+#ifdef VK_NV_inherited_viewport_scissor
+void transform_tohost_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceInheritedViewportScissorFeaturesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceInheritedViewportScissorFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceInheritedViewportScissorFeaturesNV* toTransform);
+
+void transform_tohost_VkCommandBufferInheritanceViewportScissorInfoNV(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferInheritanceViewportScissorInfoNV* toTransform);
+
+void transform_fromhost_VkCommandBufferInheritanceViewportScissorInfoNV(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferInheritanceViewportScissorInfoNV* toTransform);
+
+#endif
 #ifdef VK_EXT_texel_buffer_alignment
 void transform_tohost_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
     ResourceTracker* resourceTracker,
@@ -5236,6 +6066,8 @@
     VkDeviceDeviceMemoryReportCreateInfoEXT* toTransform);
 
 #endif
+#ifdef VK_EXT_acquire_drm_display
+#endif
 #ifdef VK_EXT_robustness2
 void transform_tohost_VkPhysicalDeviceRobustness2FeaturesEXT(
     ResourceTracker* resourceTracker,
@@ -5364,6 +6196,90 @@
     VkPipelineFragmentShadingRateEnumStateCreateInfoNV* toTransform);
 
 #endif
+#ifdef VK_NV_ray_tracing_motion_blur
+void transform_tohost_VkDeviceOrHostAddressConstKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceOrHostAddressConstKHR* toTransform);
+
+void transform_fromhost_VkDeviceOrHostAddressConstKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceOrHostAddressConstKHR* toTransform);
+
+void transform_tohost_VkAccelerationStructureGeometryMotionTrianglesDataNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryMotionTrianglesDataNV* toTransform);
+
+void transform_fromhost_VkAccelerationStructureGeometryMotionTrianglesDataNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryMotionTrianglesDataNV* toTransform);
+
+void transform_tohost_VkAccelerationStructureMotionInfoNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureMotionInfoNV* toTransform);
+
+void transform_fromhost_VkAccelerationStructureMotionInfoNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureMotionInfoNV* toTransform);
+
+void transform_tohost_VkAccelerationStructureMatrixMotionInstanceNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureMatrixMotionInstanceNV* toTransform);
+
+void transform_fromhost_VkAccelerationStructureMatrixMotionInstanceNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureMatrixMotionInstanceNV* toTransform);
+
+void transform_tohost_VkSRTDataNV(
+    ResourceTracker* resourceTracker,
+    VkSRTDataNV* toTransform);
+
+void transform_fromhost_VkSRTDataNV(
+    ResourceTracker* resourceTracker,
+    VkSRTDataNV* toTransform);
+
+void transform_tohost_VkAccelerationStructureSRTMotionInstanceNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureSRTMotionInstanceNV* toTransform);
+
+void transform_fromhost_VkAccelerationStructureSRTMotionInstanceNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureSRTMotionInstanceNV* toTransform);
+
+void transform_tohost_VkAccelerationStructureMotionInstanceDataNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureMotionInstanceDataNV* toTransform);
+
+void transform_fromhost_VkAccelerationStructureMotionInstanceDataNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureMotionInstanceDataNV* toTransform);
+
+void transform_tohost_VkAccelerationStructureMotionInstanceNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureMotionInstanceNV* toTransform);
+
+void transform_fromhost_VkAccelerationStructureMotionInstanceNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureMotionInstanceNV* toTransform);
+
+void transform_tohost_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceRayTracingMotionBlurFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* toTransform);
+
+#endif
+#ifdef VK_EXT_ycbcr_2plane_444_formats
+void transform_tohost_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* toTransform);
+
+#endif
 #ifdef VK_EXT_fragment_density_map2
 void transform_tohost_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
     ResourceTracker* resourceTracker,
@@ -5412,6 +6328,18 @@
     VkPhysicalDevice4444FormatsFeaturesEXT* toTransform);
 
 #endif
+#ifdef VK_EXT_rgba10x6_formats
+void transform_tohost_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* toTransform);
+
+#endif
+#ifdef VK_NV_acquire_winrt_display
+#endif
 #ifdef VK_EXT_directfb_surface
 void transform_tohost_VkDirectFBSurfaceCreateInfoEXT(
     ResourceTracker* resourceTracker,
@@ -5422,6 +6350,296 @@
     VkDirectFBSurfaceCreateInfoEXT* toTransform);
 
 #endif
+#ifdef VK_VALVE_mutable_descriptor_type
+void transform_tohost_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* toTransform);
+
+void transform_tohost_VkMutableDescriptorTypeListVALVE(
+    ResourceTracker* resourceTracker,
+    VkMutableDescriptorTypeListVALVE* toTransform);
+
+void transform_fromhost_VkMutableDescriptorTypeListVALVE(
+    ResourceTracker* resourceTracker,
+    VkMutableDescriptorTypeListVALVE* toTransform);
+
+void transform_tohost_VkMutableDescriptorTypeCreateInfoVALVE(
+    ResourceTracker* resourceTracker,
+    VkMutableDescriptorTypeCreateInfoVALVE* toTransform);
+
+void transform_fromhost_VkMutableDescriptorTypeCreateInfoVALVE(
+    ResourceTracker* resourceTracker,
+    VkMutableDescriptorTypeCreateInfoVALVE* toTransform);
+
+#endif
+#ifdef VK_EXT_vertex_input_dynamic_state
+void transform_tohost_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* toTransform);
+
+void transform_tohost_VkVertexInputBindingDescription2EXT(
+    ResourceTracker* resourceTracker,
+    VkVertexInputBindingDescription2EXT* toTransform);
+
+void transform_fromhost_VkVertexInputBindingDescription2EXT(
+    ResourceTracker* resourceTracker,
+    VkVertexInputBindingDescription2EXT* toTransform);
+
+void transform_tohost_VkVertexInputAttributeDescription2EXT(
+    ResourceTracker* resourceTracker,
+    VkVertexInputAttributeDescription2EXT* toTransform);
+
+void transform_fromhost_VkVertexInputAttributeDescription2EXT(
+    ResourceTracker* resourceTracker,
+    VkVertexInputAttributeDescription2EXT* toTransform);
+
+#endif
+#ifdef VK_EXT_physical_device_drm
+void transform_tohost_VkPhysicalDeviceDrmPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDrmPropertiesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceDrmPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDrmPropertiesEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_primitive_topology_list_restart
+void transform_tohost_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* toTransform);
+
+#endif
+#ifdef VK_FUCHSIA_external_memory
+void transform_tohost_VkImportMemoryZirconHandleInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImportMemoryZirconHandleInfoFUCHSIA* toTransform);
+
+void transform_fromhost_VkImportMemoryZirconHandleInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImportMemoryZirconHandleInfoFUCHSIA* toTransform);
+
+void transform_tohost_VkMemoryZirconHandlePropertiesFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkMemoryZirconHandlePropertiesFUCHSIA* toTransform);
+
+void transform_fromhost_VkMemoryZirconHandlePropertiesFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkMemoryZirconHandlePropertiesFUCHSIA* toTransform);
+
+void transform_tohost_VkMemoryGetZirconHandleInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkMemoryGetZirconHandleInfoFUCHSIA* toTransform);
+
+void transform_fromhost_VkMemoryGetZirconHandleInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkMemoryGetZirconHandleInfoFUCHSIA* toTransform);
+
+#endif
+#ifdef VK_FUCHSIA_external_semaphore
+void transform_tohost_VkImportSemaphoreZirconHandleInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImportSemaphoreZirconHandleInfoFUCHSIA* toTransform);
+
+void transform_fromhost_VkImportSemaphoreZirconHandleInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImportSemaphoreZirconHandleInfoFUCHSIA* toTransform);
+
+void transform_tohost_VkSemaphoreGetZirconHandleInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreGetZirconHandleInfoFUCHSIA* toTransform);
+
+void transform_fromhost_VkSemaphoreGetZirconHandleInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreGetZirconHandleInfoFUCHSIA* toTransform);
+
+#endif
+#ifdef VK_FUCHSIA_buffer_collection
+void transform_tohost_VkBufferCollectionCreateInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferCollectionCreateInfoFUCHSIA* toTransform);
+
+void transform_fromhost_VkBufferCollectionCreateInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferCollectionCreateInfoFUCHSIA* toTransform);
+
+void transform_tohost_VkImportMemoryBufferCollectionFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImportMemoryBufferCollectionFUCHSIA* toTransform);
+
+void transform_fromhost_VkImportMemoryBufferCollectionFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImportMemoryBufferCollectionFUCHSIA* toTransform);
+
+void transform_tohost_VkBufferCollectionImageCreateInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferCollectionImageCreateInfoFUCHSIA* toTransform);
+
+void transform_fromhost_VkBufferCollectionImageCreateInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferCollectionImageCreateInfoFUCHSIA* toTransform);
+
+void transform_tohost_VkBufferCollectionConstraintsInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferCollectionConstraintsInfoFUCHSIA* toTransform);
+
+void transform_fromhost_VkBufferCollectionConstraintsInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferCollectionConstraintsInfoFUCHSIA* toTransform);
+
+void transform_tohost_VkBufferConstraintsInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferConstraintsInfoFUCHSIA* toTransform);
+
+void transform_fromhost_VkBufferConstraintsInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferConstraintsInfoFUCHSIA* toTransform);
+
+void transform_tohost_VkBufferCollectionBufferCreateInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferCollectionBufferCreateInfoFUCHSIA* toTransform);
+
+void transform_fromhost_VkBufferCollectionBufferCreateInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferCollectionBufferCreateInfoFUCHSIA* toTransform);
+
+void transform_tohost_VkSysmemColorSpaceFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkSysmemColorSpaceFUCHSIA* toTransform);
+
+void transform_fromhost_VkSysmemColorSpaceFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkSysmemColorSpaceFUCHSIA* toTransform);
+
+void transform_tohost_VkBufferCollectionPropertiesFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferCollectionPropertiesFUCHSIA* toTransform);
+
+void transform_fromhost_VkBufferCollectionPropertiesFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkBufferCollectionPropertiesFUCHSIA* toTransform);
+
+void transform_tohost_VkImageFormatConstraintsInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImageFormatConstraintsInfoFUCHSIA* toTransform);
+
+void transform_fromhost_VkImageFormatConstraintsInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImageFormatConstraintsInfoFUCHSIA* toTransform);
+
+void transform_tohost_VkImageConstraintsInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImageConstraintsInfoFUCHSIA* toTransform);
+
+void transform_fromhost_VkImageConstraintsInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImageConstraintsInfoFUCHSIA* toTransform);
+
+#endif
+#ifdef VK_HUAWEI_subpass_shading
+void transform_tohost_VkSubpassShadingPipelineCreateInfoHUAWEI(
+    ResourceTracker* resourceTracker,
+    VkSubpassShadingPipelineCreateInfoHUAWEI* toTransform);
+
+void transform_fromhost_VkSubpassShadingPipelineCreateInfoHUAWEI(
+    ResourceTracker* resourceTracker,
+    VkSubpassShadingPipelineCreateInfoHUAWEI* toTransform);
+
+void transform_tohost_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceSubpassShadingFeaturesHUAWEI(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* toTransform);
+
+void transform_tohost_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceSubpassShadingPropertiesHUAWEI(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* toTransform);
+
+#endif
+#ifdef VK_HUAWEI_invocation_mask
+void transform_tohost_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceInvocationMaskFeaturesHUAWEI(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* toTransform);
+
+#endif
+#ifdef VK_NV_external_memory_rdma
+void transform_tohost_VkMemoryGetRemoteAddressInfoNV(
+    ResourceTracker* resourceTracker,
+    VkMemoryGetRemoteAddressInfoNV* toTransform);
+
+void transform_fromhost_VkMemoryGetRemoteAddressInfoNV(
+    ResourceTracker* resourceTracker,
+    VkMemoryGetRemoteAddressInfoNV* toTransform);
+
+void transform_tohost_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceExternalMemoryRDMAFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* toTransform);
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state2
+void transform_tohost_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* toTransform);
+
+#endif
+#ifdef VK_QNX_screen_surface
+void transform_tohost_VkScreenSurfaceCreateInfoQNX(
+    ResourceTracker* resourceTracker,
+    VkScreenSurfaceCreateInfoQNX* toTransform);
+
+void transform_fromhost_VkScreenSurfaceCreateInfoQNX(
+    ResourceTracker* resourceTracker,
+    VkScreenSurfaceCreateInfoQNX* toTransform);
+
+#endif
+#ifdef VK_EXT_color_write_enable
+void transform_tohost_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceColorWriteEnableFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceColorWriteEnableFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceColorWriteEnableFeaturesEXT* toTransform);
+
+void transform_tohost_VkPipelineColorWriteCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineColorWriteCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkPipelineColorWriteCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineColorWriteCreateInfoEXT* toTransform);
+
+#endif
 #ifdef VK_GOOGLE_gfxstream
 void transform_tohost_VkImportColorBufferGOOGLE(
     ResourceTracker* resourceTracker,
@@ -5448,6 +6666,88 @@
     VkImportPhysicalAddressGOOGLE* toTransform);
 
 #endif
+#ifdef VK_EXT_global_priority_query
+void transform_tohost_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* toTransform);
+
+void transform_tohost_VkQueueFamilyGlobalPriorityPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkQueueFamilyGlobalPriorityPropertiesEXT* toTransform);
+
+void transform_fromhost_VkQueueFamilyGlobalPriorityPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkQueueFamilyGlobalPriorityPropertiesEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_multi_draw
+void transform_tohost_VkPhysicalDeviceMultiDrawFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMultiDrawFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceMultiDrawFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMultiDrawFeaturesEXT* toTransform);
+
+void transform_tohost_VkPhysicalDeviceMultiDrawPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMultiDrawPropertiesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceMultiDrawPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMultiDrawPropertiesEXT* toTransform);
+
+void transform_tohost_VkMultiDrawInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkMultiDrawInfoEXT* toTransform);
+
+void transform_fromhost_VkMultiDrawInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkMultiDrawInfoEXT* toTransform);
+
+void transform_tohost_VkMultiDrawIndexedInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkMultiDrawIndexedInfoEXT* toTransform);
+
+void transform_fromhost_VkMultiDrawIndexedInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkMultiDrawIndexedInfoEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_load_store_op_none
+#endif
+#ifdef VK_EXT_border_color_swizzle
+void transform_tohost_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceBorderColorSwizzleFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* toTransform);
+
+void transform_tohost_VkSamplerBorderColorComponentMappingCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSamplerBorderColorComponentMappingCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkSamplerBorderColorComponentMappingCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSamplerBorderColorComponentMappingCreateInfoEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_pageable_device_local_memory
+void transform_tohost_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* toTransform);
+
+#endif
 #ifdef VK_KHR_acceleration_structure
 void transform_tohost_VkDeviceOrHostAddressKHR(
     ResourceTracker* resourceTracker,
@@ -5457,14 +6757,6 @@
     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);