Merge "Add dispatch magic for Gfxstream linux ICD" into main
diff --git a/codegen/vulkan/vulkan-docs-next/scripts/cerealgenerator.py b/codegen/vulkan/vulkan-docs-next/scripts/cerealgenerator.py
index c6c0003..79a0dfc 100644
--- a/codegen/vulkan/vulkan-docs-next/scripts/cerealgenerator.py
+++ b/codegen/vulkan/vulkan-docs-next/scripts/cerealgenerator.py
@@ -126,23 +126,31 @@
     "VK_EXT_graphics_pipeline_library",
 ]
 
+HOST_MODULES = ["goldfish_vk_extension_structs", "goldfish_vk_marshaling",
+                "goldfish_vk_reserved_marshaling", "goldfish_vk_deepcopy",
+                "goldfish_vk_handlemap", "goldfish_vk_dispatch",
+                "goldfish_vk_transform", "VkDecoder", "VkDecoderSnapshot",
+                "VkSubDecoder"]
+
 # By default, the all wrappers are run all on all features.  In certain cases,
-# we wish run only a subset of wrappers.  For example, `VK_GOOGLE_gfxstream`
+# we wish run wrappers when the module requires it. For example, `VK_GOOGLE_gfxstream`
 # shouldn't generate a function table entry since it's an internal interface.
-SUPPORTED_WRAPPERS = {
-    "VK_EXT_debug_utils": [cereal.VulkanDispatch],
-    "VK_KHR_surface": [cereal.VulkanDispatch],
-    "VK_KHR_xcb_surface": [cereal.VulkanDispatch],
-    "VK_KHR_win32_surface": [cereal.VulkanDispatch],
-    "VK_EXT_metal_surface": [cereal.VulkanDispatch],
+SUPPORTED_MODULES = {
+    "VK_EXT_debug_utils": ["goldfish_vk_dispatch"],
+    "VK_KHR_surface": ["goldfish_vk_dispatch"],
+    "VK_KHR_xcb_surface": ["goldfish_vk_dispatch"],
+    "VK_KHR_win32_surface": ["goldfish_vk_dispatch"],
+    "VK_EXT_metal_surface": ["goldfish_vk_dispatch"],
     # VK_MVK_moltenvk doesn't generate a generate dispatch entry for some reason, but should. The
     # lack of this extension doesn't cause any build failtures though.
-    "VK_MVK_moltenvk": [cereal.VulkanDispatch],
-    "VK_KHR_external_semaphore_win32" : [cereal.VulkanDispatch],
-    "VK_KHR_external_memory_win32" : [cereal.VulkanDispatch],
-    "VK_KHR_external_memory_fd": [cereal.VulkanDispatch],
-    "VK_ANDROID_external_memory_android_hardware_buffer": [cereal.VulkanFuncTable],
-    "VK_KHR_android_surface": [cereal.VulkanFuncTable],
+    "VK_MVK_moltenvk": ["goldfish_vk_dispatch"],
+    "VK_KHR_external_semaphore_win32" : ["goldfish_vk_dispatch"],
+    "VK_KHR_external_memory_win32" : ["goldfish_vk_dispatch"],
+    "VK_KHR_external_memory_fd": ["goldfish_vk_dispatch"],
+    "VK_ANDROID_external_memory_android_hardware_buffer": ["func_table"],
+    "VK_KHR_android_surface": ["func_table"],
+    "VK_EXT_swapchain_maintenance1" : HOST_MODULES,
+    "VK_KHR_swapchain" : HOST_MODULES,
 }
 
 copyrightHeader = """// Copyright (C) 2018 The Android Open Source Project
@@ -249,7 +257,7 @@
 
         self.codegen = cereal.CodeGen()
         self.featureSupported = False
-        self.supportedWrappers = None
+        self.supportedModules = None
 
         self.guestBaseLibDirPrefix = \
             envGetOrDefault("VK_CEREAL_GUEST_BASELIB_PREFIX", "aemu/base")
@@ -646,6 +654,7 @@
         self.addWrapper(cereal.VulkanCounting, "goldfish_vk_counting_guest")
         self.addWrapper(cereal.VulkanTransform, "goldfish_vk_transform_guest")
         self.addWrapper(cereal.VulkanFuncTable, "func_table")
+
         self.addWrapper(cereal.VulkanExtensionStructs, "goldfish_vk_extension_structs")
         self.addWrapper(cereal.VulkanMarshaling, "goldfish_vk_marshaling")
         self.addWrapper(cereal.VulkanReservedMarshaling, "goldfish_vk_reserved_marshaling", variant = "host")
@@ -757,20 +766,22 @@
             print(f'Unknown module: {moduleName}. All known modules are: {", ".join(self.modules)}.')
             return
         self.wrappers.append(
-            moduleType(
+            (moduleType(
                 self.modules[moduleName],
-                self.typeInfo, **kwargs))
+                self.typeInfo, **kwargs),
+             moduleName)
+            )
 
     def forEachModule(self, func):
         for moduleName in self.moduleList:
             func(self.modules[moduleName])
 
-    def forEachWrapper(self, func, supportedWrappers):
+    def forEachWrapper(self, func, supportedModules):
         for wrapper in self.wrappers:
-            if supportedWrappers is None:
-                func(wrapper)
-            elif type(wrapper) in supportedWrappers:
-                func(wrapper)
+            if supportedModules is None:
+                func(wrapper[0])
+            elif wrapper[1] in supportedModules:
+                func(wrapper[0])
 
 ## Overrides####################################################################
 
@@ -802,7 +813,7 @@
         if self.featureSupported == False:
             return
 
-        self.supportedWrappers = SUPPORTED_WRAPPERS.get(self.featureName)
+        self.supportedModules = SUPPORTED_MODULES.get(self.featureName)
         self.typeInfo.onBeginFeature(self.featureName, self.featureType)
 
         self.forEachModule(
@@ -811,11 +822,11 @@
         self.forEachModule(
             lambda m: m.appendImpl("#ifdef %s\n" % self.featureName)
             if isinstance(m, cereal.Module) and not m.suppressFeatureGuards else None)
-        self.forEachWrapper(lambda w: w.onBeginFeature(self.featureName, self.featureType), self.supportedWrappers)
+        self.forEachWrapper(lambda w: w.onBeginFeature(self.featureName, self.featureType), self.supportedModules)
         # functable needs to understand the feature type (device vs instance) of each cmd
         for features in interface.findall('require'):
             for c in features.findall('command'):
-                self.forEachWrapper(lambda w: w.onFeatureNewCmd(c.get('name')), self.supportedWrappers)
+                self.forEachWrapper(lambda w: w.onFeatureNewCmd(c.get('name')), self.supportedModules)
 
     def endFeature(self):
         # Finish processing in superclass
@@ -832,7 +843,7 @@
             m, cereal.Module) and not m.suppressFeatureGuards else None)
         self.forEachModule(lambda m: m.appendImpl("#endif\n") if isinstance(
             m, cereal.Module) and not m.suppressFeatureGuards else None)
-        self.forEachWrapper(lambda w: w.onEndFeature(), self.supportedWrappers)
+        self.forEachWrapper(lambda w: w.onEndFeature(), self.supportedModules)
 
     def genType(self, typeinfo: TypeInfo, name, alias):
         OutputGenerator.genType(self, typeinfo, name, alias)
@@ -861,7 +872,7 @@
             return
 
         self.typeInfo.onGenType(typeinfo, name, alias)
-        self.forEachWrapper(lambda w: w.onGenType(typeinfo, name, alias), self.supportedWrappers)
+        self.forEachWrapper(lambda w: w.onGenType(typeinfo, name, alias), self.supportedModules)
 
     def genStruct(self, typeinfo, typeName, alias):
         OutputGenerator.genStruct(self, typeinfo, typeName, alias)
@@ -869,7 +880,7 @@
             return
 
         self.typeInfo.onGenStruct(typeinfo, typeName, alias)
-        self.forEachWrapper(lambda w: w.onGenStruct(typeinfo, typeName, alias), self.supportedWrappers)
+        self.forEachWrapper(lambda w: w.onGenStruct(typeinfo, typeName, alias), self.supportedModules)
 
     def genGroup(self, groupinfo: GroupInfo, groupName, alias = None):
         OutputGenerator.genGroup(self, groupinfo, groupName, alias)
@@ -877,14 +888,14 @@
             return
 
         self.typeInfo.onGenGroup(groupinfo, groupName, alias)
-        self.forEachWrapper(lambda w: w.onGenGroup(groupinfo, groupName, alias), self.supportedWrappers)
+        self.forEachWrapper(lambda w: w.onGenGroup(groupinfo, groupName, alias), self.supportedModules)
 
     def genEnum(self, enuminfo: EnumInfo, name, alias):
         OutputGenerator.genEnum(self, enuminfo, name, alias)
         if self.featureSupported == False:
             return
         self.typeInfo.onGenEnum(enuminfo, name, alias)
-        self.forEachWrapper(lambda w: w.onGenEnum(enuminfo, name, alias), self.supportedWrappers)
+        self.forEachWrapper(lambda w: w.onGenEnum(enuminfo, name, alias), self.supportedModules)
 
     def genCmd(self, cmdinfo, name, alias):
         OutputGenerator.genCmd(self, cmdinfo, name, alias)
@@ -892,4 +903,4 @@
             return
 
         self.typeInfo.onGenCmd(cmdinfo, name, alias)
-        self.forEachWrapper(lambda w: w.onGenCmd(cmdinfo, name, alias), self.supportedWrappers)
+        self.forEachWrapper(lambda w: w.onGenCmd(cmdinfo, name, alias), self.supportedModules)
diff --git a/guest/vulkan_enc/ResourceTracker.cpp b/guest/vulkan_enc/ResourceTracker.cpp
index 4ce1e40..fd89d73 100644
--- a/guest/vulkan_enc/ResourceTracker.cpp
+++ b/guest/vulkan_enc/ResourceTracker.cpp
@@ -5696,8 +5696,7 @@
     }
 
     if (!outputBimsi || !outputBimsi->swapchain) {
-        ALOGE("FATAL: Local VkBindImageMemorySwapchainInfoKHR not properly allocated!");
-        abort();
+        return;
     }
 
     // Android based swapchains are implemented by the Android framework's
diff --git a/guest/vulkan_enc/VkEncoder.cpp b/guest/vulkan_enc/VkEncoder.cpp
index dee31e9..ba608d2 100644
--- a/guest/vulkan_enc/VkEncoder.cpp
+++ b/guest/vulkan_enc/VkEncoder.cpp
@@ -24948,1150 +24948,6 @@
 #ifdef VK_KHR_surface
 #endif
 #ifdef VK_KHR_swapchain
-VkResult VkEncoder::vkCreateSwapchainKHR(VkDevice device,
-                                         const VkSwapchainCreateInfoKHR* pCreateInfo,
-                                         const VkAllocationCallbacks* pAllocator,
-                                         VkSwapchainKHR* pSwapchain, uint32_t doLock) {
-    std::optional<uint32_t> healthMonitorAnnotation_seqno = std::nullopt;
-    std::optional<uint32_t> healthMonitorAnnotation_packetSize = std::nullopt;
-    std::vector<uint8_t> healthMonitorAnnotation_packetContents;
-
-    auto watchdog =
-        WATCHDOG_BUILDER(mHealthMonitor, "vkCreateSwapchainKHR in VkEncoder")
-            .setOnHangCallback([&]() {
-                auto annotations = std::make_unique<EventHangMetadata::HangAnnotations>();
-                if (healthMonitorAnnotation_seqno) {
-                    annotations->insert(
-                        {{"seqno", std::to_string(healthMonitorAnnotation_seqno.value())}});
-                }
-                if (healthMonitorAnnotation_packetSize) {
-                    annotations->insert(
-                        {{"packetSize",
-                          std::to_string(healthMonitorAnnotation_packetSize.value())}});
-                }
-                if (!healthMonitorAnnotation_packetContents.empty()) {
-                    annotations->insert(
-                        {{"packetContents",
-                          getPacketContents(&healthMonitorAnnotation_packetContents[0],
-                                            healthMonitorAnnotation_packetContents.size())}});
-                }
-                return std::move(annotations);
-            })
-            .build();
-
-    ENCODER_DEBUG_LOG(
-        "vkCreateSwapchainKHR(device:%p, pCreateInfo:%p, pAllocator:%p, pSwapchain:%p)", device,
-        pCreateInfo, pAllocator, pSwapchain);
-    (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;
-    VkSwapchainCreateInfoKHR* local_pCreateInfo;
-    VkAllocationCallbacks* local_pAllocator;
-    local_device = device;
-    local_pCreateInfo = nullptr;
-    if (pCreateInfo) {
-        local_pCreateInfo =
-            (VkSwapchainCreateInfoKHR*)pool->alloc(sizeof(const VkSwapchainCreateInfoKHR));
-        deepcopy_VkSwapchainCreateInfoKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pCreateInfo,
-                                          (VkSwapchainCreateInfoKHR*)(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_VkSwapchainCreateInfoKHR(sResourceTracker,
-                                                  (VkSwapchainCreateInfoKHR*)(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_VkSwapchainCreateInfoKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM,
-                                       (VkSwapchainCreateInfoKHR*)(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_vkCreateSwapchainKHR =
-        4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    healthMonitorAnnotation_packetSize = std::make_optional(packetSize_vkCreateSwapchainKHR);
-    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateSwapchainKHR);
-    uint8_t* packetBeginPtr = streamPtr;
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkCreateSwapchainKHR = OP_vkCreateSwapchainKHR;
-    uint32_t seqno;
-    if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    healthMonitorAnnotation_seqno = std::make_optional(seqno);
-    memcpy(streamPtr, &opcode_vkCreateSwapchainKHR, sizeof(uint32_t));
-    streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkCreateSwapchainKHR, sizeof(uint32_t));
-    streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) {
-        memcpy(streamPtr, &seqno, sizeof(uint32_t));
-        streamPtr += sizeof(uint32_t);
-    }
-    uint64_t cgen_var_0;
-    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    reservedmarshal_VkSwapchainCreateInfoKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM,
-                                             (VkSwapchainCreateInfoKHR*)(local_pCreateInfo),
-                                             streamPtrPtr);
-    // WARNING PTR CHECK
-    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1, 8);
-    gfxstream::guest::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)((*pSwapchain));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
-    *streamPtrPtr += 8;
-    /* is handle, possibly out */;
-    if (watchdog) {
-        size_t watchdogBufSize = std::min<size_t>(
-            static_cast<size_t>(packetSize_vkCreateSwapchainKHR), kWatchdogBufferMax);
-        healthMonitorAnnotation_packetContents.resize(watchdogBufSize);
-        memcpy(&healthMonitorAnnotation_packetContents[0], packetBeginPtr, watchdogBufSize);
-    }
-    stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_3;
-    stream->read((uint64_t*)&cgen_var_3, 8);
-    stream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_3, (VkSwapchainKHR*)pSwapchain,
-                                                           1);
-    stream->unsetHandleMapping();
-    VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
-    stream->read(&vkCreateSwapchainKHR_VkResult_return, sizeof(VkResult));
-    ++encodeCount;
-    ;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL) {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-    return vkCreateSwapchainKHR_VkResult_return;
-}
-
-void VkEncoder::vkDestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain,
-                                      const VkAllocationCallbacks* pAllocator, uint32_t doLock) {
-    std::optional<uint32_t> healthMonitorAnnotation_seqno = std::nullopt;
-    std::optional<uint32_t> healthMonitorAnnotation_packetSize = std::nullopt;
-    std::vector<uint8_t> healthMonitorAnnotation_packetContents;
-
-    auto watchdog =
-        WATCHDOG_BUILDER(mHealthMonitor, "vkDestroySwapchainKHR in VkEncoder")
-            .setOnHangCallback([&]() {
-                auto annotations = std::make_unique<EventHangMetadata::HangAnnotations>();
-                if (healthMonitorAnnotation_seqno) {
-                    annotations->insert(
-                        {{"seqno", std::to_string(healthMonitorAnnotation_seqno.value())}});
-                }
-                if (healthMonitorAnnotation_packetSize) {
-                    annotations->insert(
-                        {{"packetSize",
-                          std::to_string(healthMonitorAnnotation_packetSize.value())}});
-                }
-                if (!healthMonitorAnnotation_packetContents.empty()) {
-                    annotations->insert(
-                        {{"packetContents",
-                          getPacketContents(&healthMonitorAnnotation_packetContents[0],
-                                            healthMonitorAnnotation_packetContents.size())}});
-                }
-                return std::move(annotations);
-            })
-            .build();
-
-    ENCODER_DEBUG_LOG("vkDestroySwapchainKHR(device:%p, swapchain:%p, pAllocator:%p)", device,
-                      swapchain, pAllocator);
-    (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;
-    VkAllocationCallbacks* local_pAllocator;
-    local_device = device;
-    local_swapchain = swapchain;
-    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;
-        uint64_t cgen_var_1;
-        *countPtr += 1 * 8;
-        // WARNING PTR CHECK
-        *countPtr += 8;
-        if (local_pAllocator) {
-            count_VkAllocationCallbacks(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM,
-                                        (VkAllocationCallbacks*)(local_pAllocator), countPtr);
-        }
-    }
-    uint32_t packetSize_vkDestroySwapchainKHR =
-        4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    healthMonitorAnnotation_packetSize = std::make_optional(packetSize_vkDestroySwapchainKHR);
-    uint8_t* streamPtr = stream->reserve(packetSize_vkDestroySwapchainKHR);
-    uint8_t* packetBeginPtr = streamPtr;
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkDestroySwapchainKHR = OP_vkDestroySwapchainKHR;
-    uint32_t seqno;
-    if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    healthMonitorAnnotation_seqno = std::make_optional(seqno);
-    memcpy(streamPtr, &opcode_vkDestroySwapchainKHR, sizeof(uint32_t));
-    streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkDestroySwapchainKHR, sizeof(uint32_t));
-    streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) {
-        memcpy(streamPtr, &seqno, sizeof(uint32_t));
-        streamPtr += sizeof(uint32_t);
-    }
-    uint64_t cgen_var_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;
-    // WARNING PTR CHECK
-    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_2, 8);
-    gfxstream::guest::Stream::toBe64((uint8_t*)(*streamPtrPtr));
-    *streamPtrPtr += 8;
-    if (local_pAllocator) {
-        reservedmarshal_VkAllocationCallbacks(stream, VK_STRUCTURE_TYPE_MAX_ENUM,
-                                              (VkAllocationCallbacks*)(local_pAllocator),
-                                              streamPtrPtr);
-    }
-    if (watchdog) {
-        size_t watchdogBufSize = std::min<size_t>(
-            static_cast<size_t>(packetSize_vkDestroySwapchainKHR), kWatchdogBufferMax);
-        healthMonitorAnnotation_packetContents.resize(watchdogBufSize);
-        memcpy(&healthMonitorAnnotation_packetContents[0], packetBeginPtr, watchdogBufSize);
-    }
-    sResourceTracker->destroyMapping()->mapHandles_VkSwapchainKHR((VkSwapchainKHR*)&swapchain);
-    stream->flush();
-    ++encodeCount;
-    ;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL) {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-}
-
-VkResult VkEncoder::vkGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain,
-                                            uint32_t* pSwapchainImageCount,
-                                            VkImage* pSwapchainImages, uint32_t doLock) {
-    std::optional<uint32_t> healthMonitorAnnotation_seqno = std::nullopt;
-    std::optional<uint32_t> healthMonitorAnnotation_packetSize = std::nullopt;
-    std::vector<uint8_t> healthMonitorAnnotation_packetContents;
-
-    auto watchdog =
-        WATCHDOG_BUILDER(mHealthMonitor, "vkGetSwapchainImagesKHR in VkEncoder")
-            .setOnHangCallback([&]() {
-                auto annotations = std::make_unique<EventHangMetadata::HangAnnotations>();
-                if (healthMonitorAnnotation_seqno) {
-                    annotations->insert(
-                        {{"seqno", std::to_string(healthMonitorAnnotation_seqno.value())}});
-                }
-                if (healthMonitorAnnotation_packetSize) {
-                    annotations->insert(
-                        {{"packetSize",
-                          std::to_string(healthMonitorAnnotation_packetSize.value())}});
-                }
-                if (!healthMonitorAnnotation_packetContents.empty()) {
-                    annotations->insert(
-                        {{"packetContents",
-                          getPacketContents(&healthMonitorAnnotation_packetContents[0],
-                                            healthMonitorAnnotation_packetContents.size())}});
-                }
-                return std::move(annotations);
-            })
-            .build();
-
-    ENCODER_DEBUG_LOG(
-        "vkGetSwapchainImagesKHR(device:%p, swapchain:%p, pSwapchainImageCount:%p, "
-        "pSwapchainImages:%p)",
-        device, swapchain, pSwapchainImageCount, pSwapchainImages);
-    (void)doLock;
-    bool queueSubmitWithCommandsEnabled =
-        sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
-    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
-    auto stream = mImpl->stream();
-    auto pool = mImpl->pool();
-    VkDevice local_device;
-    VkSwapchainKHR local_swapchain;
-    local_device = device;
-    local_swapchain = swapchain;
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_0;
-        *countPtr += 1 * 8;
-        uint64_t cgen_var_1;
-        *countPtr += 1 * 8;
-        // WARNING PTR CHECK
-        *countPtr += 8;
-        if (pSwapchainImageCount) {
-            *countPtr += sizeof(uint32_t);
-        }
-        // WARNING PTR CHECK
-        *countPtr += 8;
-        if (pSwapchainImages) {
-            if ((*(pSwapchainImageCount))) {
-                *countPtr += (*(pSwapchainImageCount)) * 8;
-            }
-        }
-    }
-    uint32_t packetSize_vkGetSwapchainImagesKHR =
-        4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    healthMonitorAnnotation_packetSize = std::make_optional(packetSize_vkGetSwapchainImagesKHR);
-    uint8_t* streamPtr = stream->reserve(packetSize_vkGetSwapchainImagesKHR);
-    uint8_t* packetBeginPtr = streamPtr;
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkGetSwapchainImagesKHR = OP_vkGetSwapchainImagesKHR;
-    uint32_t seqno;
-    if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    healthMonitorAnnotation_seqno = std::make_optional(seqno);
-    memcpy(streamPtr, &opcode_vkGetSwapchainImagesKHR, sizeof(uint32_t));
-    streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkGetSwapchainImagesKHR, sizeof(uint32_t));
-    streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) {
-        memcpy(streamPtr, &seqno, sizeof(uint32_t));
-        streamPtr += sizeof(uint32_t);
-    }
-    uint64_t cgen_var_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;
-    // WARNING PTR CHECK
-    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pSwapchainImageCount;
-    memcpy((*streamPtrPtr), &cgen_var_2, 8);
-    gfxstream::guest::Stream::toBe64((uint8_t*)(*streamPtrPtr));
-    *streamPtrPtr += 8;
-    if (pSwapchainImageCount) {
-        memcpy(*streamPtrPtr, (uint32_t*)pSwapchainImageCount, sizeof(uint32_t));
-        *streamPtrPtr += sizeof(uint32_t);
-    }
-    /* is handle, possibly out */;
-    // WARNING PTR CHECK
-    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)pSwapchainImages;
-    memcpy((*streamPtrPtr), &cgen_var_3, 8);
-    gfxstream::guest::Stream::toBe64((uint8_t*)(*streamPtrPtr));
-    *streamPtrPtr += 8;
-    if (pSwapchainImages) {
-        if ((*(pSwapchainImageCount))) {
-            uint8_t* cgen_var_3_0_ptr = (uint8_t*)(*streamPtrPtr);
-            if (pSwapchainImageCount) {
-                for (uint32_t k = 0; k < (*(pSwapchainImageCount)); ++k) {
-                    uint64_t tmpval = (uint64_t)(pSwapchainImages[k]);
-                    memcpy(cgen_var_3_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
-                }
-            }
-            *streamPtrPtr += 8 * (*(pSwapchainImageCount));
-        }
-    }
-    /* is handle, possibly out */;
-    if (watchdog) {
-        size_t watchdogBufSize = std::min<size_t>(
-            static_cast<size_t>(packetSize_vkGetSwapchainImagesKHR), kWatchdogBufferMax);
-        healthMonitorAnnotation_packetContents.resize(watchdogBufSize);
-        memcpy(&healthMonitorAnnotation_packetContents[0], packetBeginPtr, watchdogBufSize);
-    }
-    // WARNING PTR CHECK
-    uint32_t* check_pSwapchainImageCount;
-    check_pSwapchainImageCount = (uint32_t*)(uintptr_t)stream->getBe64();
-    if (pSwapchainImageCount) {
-        if (!(check_pSwapchainImageCount)) {
-            fprintf(stderr, "fatal: pSwapchainImageCount inconsistent between guest and host\n");
-        }
-        stream->read((uint32_t*)pSwapchainImageCount, sizeof(uint32_t));
-    }
-    // WARNING PTR CHECK
-    VkImage* check_pSwapchainImages;
-    check_pSwapchainImages = (VkImage*)(uintptr_t)stream->getBe64();
-    if (pSwapchainImages) {
-        if (!(check_pSwapchainImages)) {
-            fprintf(stderr, "fatal: pSwapchainImages inconsistent between guest and host\n");
-        }
-        if ((*(pSwapchainImageCount))) {
-            uint64_t* cgen_var_5_0;
-            stream->alloc((void**)&cgen_var_5_0, (*(pSwapchainImageCount)) * 8);
-            stream->read((uint64_t*)cgen_var_5_0, (*(pSwapchainImageCount)) * 8);
-            stream->handleMapping()->mapHandles_u64_VkImage(
-                cgen_var_5_0, (VkImage*)pSwapchainImages, (*(pSwapchainImageCount)));
-        }
-    }
-    VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
-    stream->read(&vkGetSwapchainImagesKHR_VkResult_return, sizeof(VkResult));
-    ++encodeCount;
-    ;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL) {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-    return vkGetSwapchainImagesKHR_VkResult_return;
-}
-
-VkResult VkEncoder::vkAcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain,
-                                          uint64_t timeout, VkSemaphore semaphore, VkFence fence,
-                                          uint32_t* pImageIndex, uint32_t doLock) {
-    std::optional<uint32_t> healthMonitorAnnotation_seqno = std::nullopt;
-    std::optional<uint32_t> healthMonitorAnnotation_packetSize = std::nullopt;
-    std::vector<uint8_t> healthMonitorAnnotation_packetContents;
-
-    auto watchdog =
-        WATCHDOG_BUILDER(mHealthMonitor, "vkAcquireNextImageKHR in VkEncoder")
-            .setOnHangCallback([&]() {
-                auto annotations = std::make_unique<EventHangMetadata::HangAnnotations>();
-                if (healthMonitorAnnotation_seqno) {
-                    annotations->insert(
-                        {{"seqno", std::to_string(healthMonitorAnnotation_seqno.value())}});
-                }
-                if (healthMonitorAnnotation_packetSize) {
-                    annotations->insert(
-                        {{"packetSize",
-                          std::to_string(healthMonitorAnnotation_packetSize.value())}});
-                }
-                if (!healthMonitorAnnotation_packetContents.empty()) {
-                    annotations->insert(
-                        {{"packetContents",
-                          getPacketContents(&healthMonitorAnnotation_packetContents[0],
-                                            healthMonitorAnnotation_packetContents.size())}});
-                }
-                return std::move(annotations);
-            })
-            .build();
-
-    ENCODER_DEBUG_LOG(
-        "vkAcquireNextImageKHR(device:%p, swapchain:%p, timeout:%ld, semaphore:%p, fence:%p, "
-        "pImageIndex:%p)",
-        device, swapchain, timeout, semaphore, fence, pImageIndex);
-    (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_timeout;
-    VkSemaphore local_semaphore;
-    VkFence local_fence;
-    local_device = device;
-    local_swapchain = swapchain;
-    local_timeout = timeout;
-    local_semaphore = semaphore;
-    local_fence = fence;
-    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);
-        uint64_t cgen_var_2;
-        *countPtr += 1 * 8;
-        uint64_t cgen_var_3;
-        *countPtr += 1 * 8;
-        *countPtr += sizeof(uint32_t);
-    }
-    uint32_t packetSize_vkAcquireNextImageKHR =
-        4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    healthMonitorAnnotation_packetSize = std::make_optional(packetSize_vkAcquireNextImageKHR);
-    uint8_t* streamPtr = stream->reserve(packetSize_vkAcquireNextImageKHR);
-    uint8_t* packetBeginPtr = streamPtr;
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkAcquireNextImageKHR = OP_vkAcquireNextImageKHR;
-    uint32_t seqno;
-    if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    healthMonitorAnnotation_seqno = std::make_optional(seqno);
-    memcpy(streamPtr, &opcode_vkAcquireNextImageKHR, sizeof(uint32_t));
-    streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkAcquireNextImageKHR, sizeof(uint32_t));
-    streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) {
-        memcpy(streamPtr, &seqno, sizeof(uint32_t));
-        streamPtr += sizeof(uint32_t);
-    }
-    uint64_t cgen_var_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_timeout, sizeof(uint64_t));
-    *streamPtrPtr += sizeof(uint64_t);
-    uint64_t cgen_var_2;
-    *&cgen_var_2 = get_host_u64_VkSemaphore((*&local_semaphore));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_3;
-    *&cgen_var_3 = get_host_u64_VkFence((*&local_fence));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_3, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    memcpy(*streamPtrPtr, (uint32_t*)pImageIndex, sizeof(uint32_t));
-    *streamPtrPtr += sizeof(uint32_t);
-    if (watchdog) {
-        size_t watchdogBufSize = std::min<size_t>(
-            static_cast<size_t>(packetSize_vkAcquireNextImageKHR), kWatchdogBufferMax);
-        healthMonitorAnnotation_packetContents.resize(watchdogBufSize);
-        memcpy(&healthMonitorAnnotation_packetContents[0], packetBeginPtr, watchdogBufSize);
-    }
-    stream->read((uint32_t*)pImageIndex, sizeof(uint32_t));
-    VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
-    stream->read(&vkAcquireNextImageKHR_VkResult_return, sizeof(VkResult));
-    ++encodeCount;
-    ;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL) {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-    return vkAcquireNextImageKHR_VkResult_return;
-}
-
-VkResult VkEncoder::vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR* pPresentInfo,
-                                      uint32_t doLock) {
-    std::optional<uint32_t> healthMonitorAnnotation_seqno = std::nullopt;
-    std::optional<uint32_t> healthMonitorAnnotation_packetSize = std::nullopt;
-    std::vector<uint8_t> healthMonitorAnnotation_packetContents;
-
-    auto watchdog =
-        WATCHDOG_BUILDER(mHealthMonitor, "vkQueuePresentKHR in VkEncoder")
-            .setOnHangCallback([&]() {
-                auto annotations = std::make_unique<EventHangMetadata::HangAnnotations>();
-                if (healthMonitorAnnotation_seqno) {
-                    annotations->insert(
-                        {{"seqno", std::to_string(healthMonitorAnnotation_seqno.value())}});
-                }
-                if (healthMonitorAnnotation_packetSize) {
-                    annotations->insert(
-                        {{"packetSize",
-                          std::to_string(healthMonitorAnnotation_packetSize.value())}});
-                }
-                if (!healthMonitorAnnotation_packetContents.empty()) {
-                    annotations->insert(
-                        {{"packetContents",
-                          getPacketContents(&healthMonitorAnnotation_packetContents[0],
-                                            healthMonitorAnnotation_packetContents.size())}});
-                }
-                return std::move(annotations);
-            })
-            .build();
-
-    ENCODER_DEBUG_LOG("vkQueuePresentKHR(queue:%p, pPresentInfo:%p)", queue, pPresentInfo);
-    (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;
-    VkPresentInfoKHR* local_pPresentInfo;
-    local_queue = queue;
-    local_pPresentInfo = nullptr;
-    if (pPresentInfo) {
-        local_pPresentInfo = (VkPresentInfoKHR*)pool->alloc(sizeof(const VkPresentInfoKHR));
-        deepcopy_VkPresentInfoKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pPresentInfo,
-                                  (VkPresentInfoKHR*)(local_pPresentInfo));
-    }
-    if (local_pPresentInfo) {
-        transform_tohost_VkPresentInfoKHR(sResourceTracker,
-                                          (VkPresentInfoKHR*)(local_pPresentInfo));
-    }
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_0;
-        *countPtr += 1 * 8;
-        count_VkPresentInfoKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM,
-                               (VkPresentInfoKHR*)(local_pPresentInfo), countPtr);
-    }
-    uint32_t packetSize_vkQueuePresentKHR =
-        4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    healthMonitorAnnotation_packetSize = std::make_optional(packetSize_vkQueuePresentKHR);
-    uint8_t* streamPtr = stream->reserve(packetSize_vkQueuePresentKHR);
-    uint8_t* packetBeginPtr = streamPtr;
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkQueuePresentKHR = OP_vkQueuePresentKHR;
-    uint32_t seqno;
-    if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    healthMonitorAnnotation_seqno = std::make_optional(seqno);
-    memcpy(streamPtr, &opcode_vkQueuePresentKHR, sizeof(uint32_t));
-    streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkQueuePresentKHR, sizeof(uint32_t));
-    streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) {
-        memcpy(streamPtr, &seqno, sizeof(uint32_t));
-        streamPtr += sizeof(uint32_t);
-    }
-    uint64_t cgen_var_0;
-    *&cgen_var_0 = get_host_u64_VkQueue((*&local_queue));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    reservedmarshal_VkPresentInfoKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM,
-                                     (VkPresentInfoKHR*)(local_pPresentInfo), streamPtrPtr);
-    if (watchdog) {
-        size_t watchdogBufSize =
-            std::min<size_t>(static_cast<size_t>(packetSize_vkQueuePresentKHR), kWatchdogBufferMax);
-        healthMonitorAnnotation_packetContents.resize(watchdogBufSize);
-        memcpy(&healthMonitorAnnotation_packetContents[0], packetBeginPtr, watchdogBufSize);
-    }
-    VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0;
-    stream->read(&vkQueuePresentKHR_VkResult_return, sizeof(VkResult));
-    ++encodeCount;
-    ;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL) {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-    return vkQueuePresentKHR_VkResult_return;
-}
-
-VkResult VkEncoder::vkGetDeviceGroupPresentCapabilitiesKHR(
-    VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities,
-    uint32_t doLock) {
-    std::optional<uint32_t> healthMonitorAnnotation_seqno = std::nullopt;
-    std::optional<uint32_t> healthMonitorAnnotation_packetSize = std::nullopt;
-    std::vector<uint8_t> healthMonitorAnnotation_packetContents;
-
-    auto watchdog =
-        WATCHDOG_BUILDER(mHealthMonitor, "vkGetDeviceGroupPresentCapabilitiesKHR in VkEncoder")
-            .setOnHangCallback([&]() {
-                auto annotations = std::make_unique<EventHangMetadata::HangAnnotations>();
-                if (healthMonitorAnnotation_seqno) {
-                    annotations->insert(
-                        {{"seqno", std::to_string(healthMonitorAnnotation_seqno.value())}});
-                }
-                if (healthMonitorAnnotation_packetSize) {
-                    annotations->insert(
-                        {{"packetSize",
-                          std::to_string(healthMonitorAnnotation_packetSize.value())}});
-                }
-                if (!healthMonitorAnnotation_packetContents.empty()) {
-                    annotations->insert(
-                        {{"packetContents",
-                          getPacketContents(&healthMonitorAnnotation_packetContents[0],
-                                            healthMonitorAnnotation_packetContents.size())}});
-                }
-                return std::move(annotations);
-            })
-            .build();
-
-    ENCODER_DEBUG_LOG(
-        "vkGetDeviceGroupPresentCapabilitiesKHR(device:%p, pDeviceGroupPresentCapabilities:%p)",
-        device, pDeviceGroupPresentCapabilities);
-    (void)doLock;
-    bool queueSubmitWithCommandsEnabled =
-        sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
-    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
-    auto stream = mImpl->stream();
-    auto pool = mImpl->pool();
-    VkDevice local_device;
-    local_device = device;
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_0;
-        *countPtr += 1 * 8;
-        count_VkDeviceGroupPresentCapabilitiesKHR(
-            sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM,
-            (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities), countPtr);
-    }
-    uint32_t packetSize_vkGetDeviceGroupPresentCapabilitiesKHR =
-        4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    healthMonitorAnnotation_packetSize =
-        std::make_optional(packetSize_vkGetDeviceGroupPresentCapabilitiesKHR);
-    uint8_t* streamPtr = stream->reserve(packetSize_vkGetDeviceGroupPresentCapabilitiesKHR);
-    uint8_t* packetBeginPtr = streamPtr;
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkGetDeviceGroupPresentCapabilitiesKHR =
-        OP_vkGetDeviceGroupPresentCapabilitiesKHR;
-    uint32_t seqno;
-    if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    healthMonitorAnnotation_seqno = std::make_optional(seqno);
-    memcpy(streamPtr, &opcode_vkGetDeviceGroupPresentCapabilitiesKHR, sizeof(uint32_t));
-    streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkGetDeviceGroupPresentCapabilitiesKHR, sizeof(uint32_t));
-    streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) {
-        memcpy(streamPtr, &seqno, sizeof(uint32_t));
-        streamPtr += sizeof(uint32_t);
-    }
-    uint64_t cgen_var_0;
-    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    reservedmarshal_VkDeviceGroupPresentCapabilitiesKHR(
-        stream, VK_STRUCTURE_TYPE_MAX_ENUM,
-        (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities), streamPtrPtr);
-    if (watchdog) {
-        size_t watchdogBufSize =
-            std::min<size_t>(static_cast<size_t>(packetSize_vkGetDeviceGroupPresentCapabilitiesKHR),
-                             kWatchdogBufferMax);
-        healthMonitorAnnotation_packetContents.resize(watchdogBufSize);
-        memcpy(&healthMonitorAnnotation_packetContents[0], packetBeginPtr, watchdogBufSize);
-    }
-    unmarshal_VkDeviceGroupPresentCapabilitiesKHR(
-        stream, VK_STRUCTURE_TYPE_MAX_ENUM,
-        (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities));
-    if (pDeviceGroupPresentCapabilities) {
-        transform_fromhost_VkDeviceGroupPresentCapabilitiesKHR(
-            sResourceTracker,
-            (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities));
-    }
-    VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
-    stream->read(&vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return, sizeof(VkResult));
-    ++encodeCount;
-    ;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL) {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-    return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return;
-}
-
-VkResult VkEncoder::vkGetDeviceGroupSurfacePresentModesKHR(VkDevice device, VkSurfaceKHR surface,
-                                                           VkDeviceGroupPresentModeFlagsKHR* pModes,
-                                                           uint32_t doLock) {
-    std::optional<uint32_t> healthMonitorAnnotation_seqno = std::nullopt;
-    std::optional<uint32_t> healthMonitorAnnotation_packetSize = std::nullopt;
-    std::vector<uint8_t> healthMonitorAnnotation_packetContents;
-
-    auto watchdog =
-        WATCHDOG_BUILDER(mHealthMonitor, "vkGetDeviceGroupSurfacePresentModesKHR in VkEncoder")
-            .setOnHangCallback([&]() {
-                auto annotations = std::make_unique<EventHangMetadata::HangAnnotations>();
-                if (healthMonitorAnnotation_seqno) {
-                    annotations->insert(
-                        {{"seqno", std::to_string(healthMonitorAnnotation_seqno.value())}});
-                }
-                if (healthMonitorAnnotation_packetSize) {
-                    annotations->insert(
-                        {{"packetSize",
-                          std::to_string(healthMonitorAnnotation_packetSize.value())}});
-                }
-                if (!healthMonitorAnnotation_packetContents.empty()) {
-                    annotations->insert(
-                        {{"packetContents",
-                          getPacketContents(&healthMonitorAnnotation_packetContents[0],
-                                            healthMonitorAnnotation_packetContents.size())}});
-                }
-                return std::move(annotations);
-            })
-            .build();
-
-    ENCODER_DEBUG_LOG("vkGetDeviceGroupSurfacePresentModesKHR(device:%p, surface:%p, pModes:%p)",
-                      device, surface, pModes);
-    (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;
-    VkSurfaceKHR local_surface;
-    local_device = device;
-    local_surface = surface;
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_0;
-        *countPtr += 1 * 8;
-        uint64_t cgen_var_1;
-        *countPtr += 1 * 8;
-        // WARNING PTR CHECK
-        *countPtr += 8;
-        if (pModes) {
-            *countPtr += sizeof(VkDeviceGroupPresentModeFlagsKHR);
-        }
-    }
-    uint32_t packetSize_vkGetDeviceGroupSurfacePresentModesKHR =
-        4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    healthMonitorAnnotation_packetSize =
-        std::make_optional(packetSize_vkGetDeviceGroupSurfacePresentModesKHR);
-    uint8_t* streamPtr = stream->reserve(packetSize_vkGetDeviceGroupSurfacePresentModesKHR);
-    uint8_t* packetBeginPtr = streamPtr;
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkGetDeviceGroupSurfacePresentModesKHR =
-        OP_vkGetDeviceGroupSurfacePresentModesKHR;
-    uint32_t seqno;
-    if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    healthMonitorAnnotation_seqno = std::make_optional(seqno);
-    memcpy(streamPtr, &opcode_vkGetDeviceGroupSurfacePresentModesKHR, sizeof(uint32_t));
-    streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkGetDeviceGroupSurfacePresentModesKHR, sizeof(uint32_t));
-    streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) {
-        memcpy(streamPtr, &seqno, sizeof(uint32_t));
-        streamPtr += sizeof(uint32_t);
-    }
-    uint64_t cgen_var_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_VkSurfaceKHR((*&local_surface));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    // WARNING PTR CHECK
-    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pModes;
-    memcpy((*streamPtrPtr), &cgen_var_2, 8);
-    gfxstream::guest::Stream::toBe64((uint8_t*)(*streamPtrPtr));
-    *streamPtrPtr += 8;
-    if (pModes) {
-        memcpy(*streamPtrPtr, (VkDeviceGroupPresentModeFlagsKHR*)pModes,
-               sizeof(VkDeviceGroupPresentModeFlagsKHR));
-        *streamPtrPtr += sizeof(VkDeviceGroupPresentModeFlagsKHR);
-    }
-    if (watchdog) {
-        size_t watchdogBufSize =
-            std::min<size_t>(static_cast<size_t>(packetSize_vkGetDeviceGroupSurfacePresentModesKHR),
-                             kWatchdogBufferMax);
-        healthMonitorAnnotation_packetContents.resize(watchdogBufSize);
-        memcpy(&healthMonitorAnnotation_packetContents[0], packetBeginPtr, watchdogBufSize);
-    }
-    // WARNING PTR CHECK
-    VkDeviceGroupPresentModeFlagsKHR* check_pModes;
-    check_pModes = (VkDeviceGroupPresentModeFlagsKHR*)(uintptr_t)stream->getBe64();
-    if (pModes) {
-        if (!(check_pModes)) {
-            fprintf(stderr, "fatal: pModes inconsistent between guest and host\n");
-        }
-        stream->read((VkDeviceGroupPresentModeFlagsKHR*)pModes,
-                     sizeof(VkDeviceGroupPresentModeFlagsKHR));
-    }
-    VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
-    stream->read(&vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return, sizeof(VkResult));
-    ++encodeCount;
-    ;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL) {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-    return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return;
-}
-
-VkResult VkEncoder::vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice,
-                                                            VkSurfaceKHR surface,
-                                                            uint32_t* pRectCount, VkRect2D* pRects,
-                                                            uint32_t doLock) {
-    std::optional<uint32_t> healthMonitorAnnotation_seqno = std::nullopt;
-    std::optional<uint32_t> healthMonitorAnnotation_packetSize = std::nullopt;
-    std::vector<uint8_t> healthMonitorAnnotation_packetContents;
-
-    auto watchdog =
-        WATCHDOG_BUILDER(mHealthMonitor, "vkGetPhysicalDevicePresentRectanglesKHR in VkEncoder")
-            .setOnHangCallback([&]() {
-                auto annotations = std::make_unique<EventHangMetadata::HangAnnotations>();
-                if (healthMonitorAnnotation_seqno) {
-                    annotations->insert(
-                        {{"seqno", std::to_string(healthMonitorAnnotation_seqno.value())}});
-                }
-                if (healthMonitorAnnotation_packetSize) {
-                    annotations->insert(
-                        {{"packetSize",
-                          std::to_string(healthMonitorAnnotation_packetSize.value())}});
-                }
-                if (!healthMonitorAnnotation_packetContents.empty()) {
-                    annotations->insert(
-                        {{"packetContents",
-                          getPacketContents(&healthMonitorAnnotation_packetContents[0],
-                                            healthMonitorAnnotation_packetContents.size())}});
-                }
-                return std::move(annotations);
-            })
-            .build();
-
-    ENCODER_DEBUG_LOG(
-        "vkGetPhysicalDevicePresentRectanglesKHR(physicalDevice:%p, surface:%p, pRectCount:%p, "
-        "pRects:%p)",
-        physicalDevice, surface, pRectCount, pRects);
-    (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;
-    VkSurfaceKHR local_surface;
-    local_physicalDevice = physicalDevice;
-    local_surface = surface;
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_0;
-        *countPtr += 1 * 8;
-        uint64_t cgen_var_1;
-        *countPtr += 1 * 8;
-        // WARNING PTR CHECK
-        *countPtr += 8;
-        if (pRectCount) {
-            *countPtr += sizeof(uint32_t);
-        }
-        // WARNING PTR CHECK
-        *countPtr += 8;
-        if (pRects) {
-            if (pRectCount) {
-                for (uint32_t i = 0; i < (uint32_t)(*(pRectCount)); ++i) {
-                    count_VkRect2D(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM,
-                                   (VkRect2D*)(pRects + i), countPtr);
-                }
-            }
-        }
-    }
-    uint32_t packetSize_vkGetPhysicalDevicePresentRectanglesKHR =
-        4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    healthMonitorAnnotation_packetSize =
-        std::make_optional(packetSize_vkGetPhysicalDevicePresentRectanglesKHR);
-    uint8_t* streamPtr = stream->reserve(packetSize_vkGetPhysicalDevicePresentRectanglesKHR);
-    uint8_t* packetBeginPtr = streamPtr;
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkGetPhysicalDevicePresentRectanglesKHR =
-        OP_vkGetPhysicalDevicePresentRectanglesKHR;
-    uint32_t seqno;
-    if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    healthMonitorAnnotation_seqno = std::make_optional(seqno);
-    memcpy(streamPtr, &opcode_vkGetPhysicalDevicePresentRectanglesKHR, sizeof(uint32_t));
-    streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkGetPhysicalDevicePresentRectanglesKHR, sizeof(uint32_t));
-    streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) {
-        memcpy(streamPtr, &seqno, sizeof(uint32_t));
-        streamPtr += sizeof(uint32_t);
-    }
-    uint64_t cgen_var_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_VkSurfaceKHR((*&local_surface));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    // WARNING PTR CHECK
-    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pRectCount;
-    memcpy((*streamPtrPtr), &cgen_var_2, 8);
-    gfxstream::guest::Stream::toBe64((uint8_t*)(*streamPtrPtr));
-    *streamPtrPtr += 8;
-    if (pRectCount) {
-        memcpy(*streamPtrPtr, (uint32_t*)pRectCount, sizeof(uint32_t));
-        *streamPtrPtr += sizeof(uint32_t);
-    }
-    // WARNING PTR CHECK
-    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)pRects;
-    memcpy((*streamPtrPtr), &cgen_var_3, 8);
-    gfxstream::guest::Stream::toBe64((uint8_t*)(*streamPtrPtr));
-    *streamPtrPtr += 8;
-    if (pRects) {
-        for (uint32_t i = 0; i < (uint32_t)(*(pRectCount)); ++i) {
-            reservedmarshal_VkRect2D(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkRect2D*)(pRects + i),
-                                     streamPtrPtr);
-        }
-    }
-    if (watchdog) {
-        size_t watchdogBufSize = std::min<size_t>(
-            static_cast<size_t>(packetSize_vkGetPhysicalDevicePresentRectanglesKHR),
-            kWatchdogBufferMax);
-        healthMonitorAnnotation_packetContents.resize(watchdogBufSize);
-        memcpy(&healthMonitorAnnotation_packetContents[0], packetBeginPtr, watchdogBufSize);
-    }
-    // WARNING PTR CHECK
-    uint32_t* check_pRectCount;
-    check_pRectCount = (uint32_t*)(uintptr_t)stream->getBe64();
-    if (pRectCount) {
-        if (!(check_pRectCount)) {
-            fprintf(stderr, "fatal: pRectCount inconsistent between guest and host\n");
-        }
-        stream->read((uint32_t*)pRectCount, sizeof(uint32_t));
-    }
-    // WARNING PTR CHECK
-    VkRect2D* check_pRects;
-    check_pRects = (VkRect2D*)(uintptr_t)stream->getBe64();
-    if (pRects) {
-        if (!(check_pRects)) {
-            fprintf(stderr, "fatal: pRects inconsistent between guest and host\n");
-        }
-        if (pRectCount) {
-            for (uint32_t i = 0; i < (uint32_t)(*(pRectCount)); ++i) {
-                unmarshal_VkRect2D(stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkRect2D*)(pRects + i));
-            }
-        }
-    }
-    if (pRectCount) {
-        if (pRects) {
-            for (uint32_t i = 0; i < (uint32_t)(*(pRectCount)); ++i) {
-                transform_fromhost_VkRect2D(sResourceTracker, (VkRect2D*)(pRects + i));
-            }
-        }
-    }
-    VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0;
-    stream->read(&vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return, sizeof(VkResult));
-    ++encodeCount;
-    ;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL) {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-    return vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return;
-}
-
-VkResult VkEncoder::vkAcquireNextImage2KHR(VkDevice device,
-                                           const VkAcquireNextImageInfoKHR* pAcquireInfo,
-                                           uint32_t* pImageIndex, uint32_t doLock) {
-    std::optional<uint32_t> healthMonitorAnnotation_seqno = std::nullopt;
-    std::optional<uint32_t> healthMonitorAnnotation_packetSize = std::nullopt;
-    std::vector<uint8_t> healthMonitorAnnotation_packetContents;
-
-    auto watchdog =
-        WATCHDOG_BUILDER(mHealthMonitor, "vkAcquireNextImage2KHR in VkEncoder")
-            .setOnHangCallback([&]() {
-                auto annotations = std::make_unique<EventHangMetadata::HangAnnotations>();
-                if (healthMonitorAnnotation_seqno) {
-                    annotations->insert(
-                        {{"seqno", std::to_string(healthMonitorAnnotation_seqno.value())}});
-                }
-                if (healthMonitorAnnotation_packetSize) {
-                    annotations->insert(
-                        {{"packetSize",
-                          std::to_string(healthMonitorAnnotation_packetSize.value())}});
-                }
-                if (!healthMonitorAnnotation_packetContents.empty()) {
-                    annotations->insert(
-                        {{"packetContents",
-                          getPacketContents(&healthMonitorAnnotation_packetContents[0],
-                                            healthMonitorAnnotation_packetContents.size())}});
-                }
-                return std::move(annotations);
-            })
-            .build();
-
-    ENCODER_DEBUG_LOG("vkAcquireNextImage2KHR(device:%p, pAcquireInfo:%p, pImageIndex:%p)", device,
-                      pAcquireInfo, pImageIndex);
-    (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;
-    VkAcquireNextImageInfoKHR* local_pAcquireInfo;
-    local_device = device;
-    local_pAcquireInfo = nullptr;
-    if (pAcquireInfo) {
-        local_pAcquireInfo =
-            (VkAcquireNextImageInfoKHR*)pool->alloc(sizeof(const VkAcquireNextImageInfoKHR));
-        deepcopy_VkAcquireNextImageInfoKHR(pool, VK_STRUCTURE_TYPE_MAX_ENUM, pAcquireInfo,
-                                           (VkAcquireNextImageInfoKHR*)(local_pAcquireInfo));
-    }
-    if (local_pAcquireInfo) {
-        transform_tohost_VkAcquireNextImageInfoKHR(
-            sResourceTracker, (VkAcquireNextImageInfoKHR*)(local_pAcquireInfo));
-    }
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_0;
-        *countPtr += 1 * 8;
-        count_VkAcquireNextImageInfoKHR(sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM,
-                                        (VkAcquireNextImageInfoKHR*)(local_pAcquireInfo), countPtr);
-        *countPtr += sizeof(uint32_t);
-    }
-    uint32_t packetSize_vkAcquireNextImage2KHR =
-        4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    healthMonitorAnnotation_packetSize = std::make_optional(packetSize_vkAcquireNextImage2KHR);
-    uint8_t* streamPtr = stream->reserve(packetSize_vkAcquireNextImage2KHR);
-    uint8_t* packetBeginPtr = streamPtr;
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkAcquireNextImage2KHR = OP_vkAcquireNextImage2KHR;
-    uint32_t seqno;
-    if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    healthMonitorAnnotation_seqno = std::make_optional(seqno);
-    memcpy(streamPtr, &opcode_vkAcquireNextImage2KHR, sizeof(uint32_t));
-    streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkAcquireNextImage2KHR, sizeof(uint32_t));
-    streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) {
-        memcpy(streamPtr, &seqno, sizeof(uint32_t));
-        streamPtr += sizeof(uint32_t);
-    }
-    uint64_t cgen_var_0;
-    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    reservedmarshal_VkAcquireNextImageInfoKHR(stream, VK_STRUCTURE_TYPE_MAX_ENUM,
-                                              (VkAcquireNextImageInfoKHR*)(local_pAcquireInfo),
-                                              streamPtrPtr);
-    memcpy(*streamPtrPtr, (uint32_t*)pImageIndex, sizeof(uint32_t));
-    *streamPtrPtr += sizeof(uint32_t);
-    if (watchdog) {
-        size_t watchdogBufSize = std::min<size_t>(
-            static_cast<size_t>(packetSize_vkAcquireNextImage2KHR), kWatchdogBufferMax);
-        healthMonitorAnnotation_packetContents.resize(watchdogBufSize);
-        memcpy(&healthMonitorAnnotation_packetContents[0], packetBeginPtr, watchdogBufSize);
-    }
-    stream->read((uint32_t*)pImageIndex, sizeof(uint32_t));
-    VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
-    stream->read(&vkAcquireNextImage2KHR_VkResult_return, sizeof(VkResult));
-    ++encodeCount;
-    ;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL) {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-    return vkAcquireNextImage2KHR_VkResult_return;
-}
-
 #endif
 #ifdef VK_KHR_xcb_surface
 #endif
@@ -36286,111 +35142,6 @@
 
 #endif
 #ifdef VK_EXT_swapchain_maintenance1
-VkResult VkEncoder::vkReleaseSwapchainImagesEXT(VkDevice device,
-                                                const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo,
-                                                uint32_t doLock) {
-    std::optional<uint32_t> healthMonitorAnnotation_seqno = std::nullopt;
-    std::optional<uint32_t> healthMonitorAnnotation_packetSize = std::nullopt;
-    std::vector<uint8_t> healthMonitorAnnotation_packetContents;
-
-    auto watchdog =
-        WATCHDOG_BUILDER(mHealthMonitor, "vkReleaseSwapchainImagesEXT in VkEncoder")
-            .setOnHangCallback([&]() {
-                auto annotations = std::make_unique<EventHangMetadata::HangAnnotations>();
-                if (healthMonitorAnnotation_seqno) {
-                    annotations->insert(
-                        {{"seqno", std::to_string(healthMonitorAnnotation_seqno.value())}});
-                }
-                if (healthMonitorAnnotation_packetSize) {
-                    annotations->insert(
-                        {{"packetSize",
-                          std::to_string(healthMonitorAnnotation_packetSize.value())}});
-                }
-                if (!healthMonitorAnnotation_packetContents.empty()) {
-                    annotations->insert(
-                        {{"packetContents",
-                          getPacketContents(&healthMonitorAnnotation_packetContents[0],
-                                            healthMonitorAnnotation_packetContents.size())}});
-                }
-                return std::move(annotations);
-            })
-            .build();
-
-    ENCODER_DEBUG_LOG("vkReleaseSwapchainImagesEXT(device:%p, pReleaseInfo:%p)", device,
-                      pReleaseInfo);
-    (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;
-    VkReleaseSwapchainImagesInfoEXT* local_pReleaseInfo;
-    local_device = device;
-    local_pReleaseInfo = nullptr;
-    if (pReleaseInfo) {
-        local_pReleaseInfo = (VkReleaseSwapchainImagesInfoEXT*)pool->alloc(
-            sizeof(const VkReleaseSwapchainImagesInfoEXT));
-        deepcopy_VkReleaseSwapchainImagesInfoEXT(
-            pool, VK_STRUCTURE_TYPE_MAX_ENUM, pReleaseInfo,
-            (VkReleaseSwapchainImagesInfoEXT*)(local_pReleaseInfo));
-    }
-    if (local_pReleaseInfo) {
-        transform_tohost_VkReleaseSwapchainImagesInfoEXT(
-            sResourceTracker, (VkReleaseSwapchainImagesInfoEXT*)(local_pReleaseInfo));
-    }
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_0;
-        *countPtr += 1 * 8;
-        count_VkReleaseSwapchainImagesInfoEXT(
-            sFeatureBits, VK_STRUCTURE_TYPE_MAX_ENUM,
-            (VkReleaseSwapchainImagesInfoEXT*)(local_pReleaseInfo), countPtr);
-    }
-    uint32_t packetSize_vkReleaseSwapchainImagesEXT =
-        4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    healthMonitorAnnotation_packetSize = std::make_optional(packetSize_vkReleaseSwapchainImagesEXT);
-    uint8_t* streamPtr = stream->reserve(packetSize_vkReleaseSwapchainImagesEXT);
-    uint8_t* packetBeginPtr = streamPtr;
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkReleaseSwapchainImagesEXT = OP_vkReleaseSwapchainImagesEXT;
-    uint32_t seqno;
-    if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    healthMonitorAnnotation_seqno = std::make_optional(seqno);
-    memcpy(streamPtr, &opcode_vkReleaseSwapchainImagesEXT, sizeof(uint32_t));
-    streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkReleaseSwapchainImagesEXT, 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_VkReleaseSwapchainImagesInfoEXT(
-        stream, VK_STRUCTURE_TYPE_MAX_ENUM, (VkReleaseSwapchainImagesInfoEXT*)(local_pReleaseInfo),
-        streamPtrPtr);
-    if (watchdog) {
-        size_t watchdogBufSize = std::min<size_t>(
-            static_cast<size_t>(packetSize_vkReleaseSwapchainImagesEXT), kWatchdogBufferMax);
-        healthMonitorAnnotation_packetContents.resize(watchdogBufSize);
-        memcpy(&healthMonitorAnnotation_packetContents[0], packetBeginPtr, watchdogBufSize);
-    }
-    VkResult vkReleaseSwapchainImagesEXT_VkResult_return = (VkResult)0;
-    stream->read(&vkReleaseSwapchainImagesEXT_VkResult_return, sizeof(VkResult));
-    ++encodeCount;
-    ;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL) {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-    return vkReleaseSwapchainImagesEXT_VkResult_return;
-}
-
 #endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 #endif
diff --git a/guest/vulkan_enc/VkEncoder.h b/guest/vulkan_enc/VkEncoder.h
index d44a9bc..bfc3acf 100644
--- a/guest/vulkan_enc/VkEncoder.h
+++ b/guest/vulkan_enc/VkEncoder.h
@@ -620,30 +620,6 @@
 #ifdef VK_KHR_surface
 #endif
 #ifdef VK_KHR_swapchain
-    VkResult vkCreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo,
-                                  const VkAllocationCallbacks* pAllocator,
-                                  VkSwapchainKHR* pSwapchain, uint32_t doLock);
-    void vkDestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain,
-                               const VkAllocationCallbacks* pAllocator, uint32_t doLock);
-    VkResult vkGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain,
-                                     uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages,
-                                     uint32_t doLock);
-    VkResult vkAcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout,
-                                   VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex,
-                                   uint32_t doLock);
-    VkResult vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR* pPresentInfo,
-                               uint32_t doLock);
-    VkResult vkGetDeviceGroupPresentCapabilitiesKHR(
-        VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities,
-        uint32_t doLock);
-    VkResult vkGetDeviceGroupSurfacePresentModesKHR(VkDevice device, VkSurfaceKHR surface,
-                                                    VkDeviceGroupPresentModeFlagsKHR* pModes,
-                                                    uint32_t doLock);
-    VkResult vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice,
-                                                     VkSurfaceKHR surface, uint32_t* pRectCount,
-                                                     VkRect2D* pRects, uint32_t doLock);
-    VkResult vkAcquireNextImage2KHR(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo,
-                                    uint32_t* pImageIndex, uint32_t doLock);
 #endif
 #ifdef VK_KHR_xcb_surface
 #endif
@@ -1024,9 +1000,6 @@
                                          VkSubresourceLayout2KHR* pLayout, uint32_t doLock);
 #endif
 #ifdef VK_EXT_swapchain_maintenance1
-    VkResult vkReleaseSwapchainImagesEXT(VkDevice device,
-                                         const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo,
-                                         uint32_t doLock);
 #endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 #endif
diff --git a/guest/vulkan_enc/func_table.cpp b/guest/vulkan_enc/func_table.cpp
index 6512021..41b4b80 100644
--- a/guest/vulkan_enc/func_table.cpp
+++ b/guest/vulkan_enc/func_table.cpp
@@ -2167,188 +2167,6 @@
 #ifdef VK_KHR_surface
 #endif
 #ifdef VK_KHR_swapchain
-static VkResult entry_vkCreateSwapchainKHR(VkDevice device,
-                                           const VkSwapchainCreateInfoKHR* pCreateInfo,
-                                           const VkAllocationCallbacks* pAllocator,
-                                           VkSwapchainKHR* pSwapchain) {
-    AEMU_SCOPED_TRACE("vkCreateSwapchainKHR");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
-    vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(
-        device, pCreateInfo, pAllocator, pSwapchain, true /* do lock */);
-    return vkCreateSwapchainKHR_VkResult_return;
-}
-static VkResult dynCheck_entry_vkCreateSwapchainKHR(VkDevice device,
-                                                    const VkSwapchainCreateInfoKHR* pCreateInfo,
-                                                    const VkAllocationCallbacks* pAllocator,
-                                                    VkSwapchainKHR* pSwapchain) {
-    auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain")) {
-        sOnInvalidDynamicallyCheckedCall("vkCreateSwapchainKHR", "VK_KHR_swapchain");
-    }
-    AEMU_SCOPED_TRACE("vkCreateSwapchainKHR");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
-    vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(
-        device, pCreateInfo, pAllocator, pSwapchain, true /* do lock */);
-    return vkCreateSwapchainKHR_VkResult_return;
-}
-static void entry_vkDestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain,
-                                        const VkAllocationCallbacks* pAllocator) {
-    AEMU_SCOPED_TRACE("vkDestroySwapchainKHR");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator, true /* do lock */);
-}
-static void dynCheck_entry_vkDestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain,
-                                                 const VkAllocationCallbacks* pAllocator) {
-    auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain")) {
-        sOnInvalidDynamicallyCheckedCall("vkDestroySwapchainKHR", "VK_KHR_swapchain");
-    }
-    AEMU_SCOPED_TRACE("vkDestroySwapchainKHR");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator, true /* do lock */);
-}
-static VkResult entry_vkGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain,
-                                              uint32_t* pSwapchainImageCount,
-                                              VkImage* pSwapchainImages) {
-    AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
-    vkGetSwapchainImagesKHR_VkResult_return = vkEnc->vkGetSwapchainImagesKHR(
-        device, swapchain, pSwapchainImageCount, pSwapchainImages, true /* do lock */);
-    return vkGetSwapchainImagesKHR_VkResult_return;
-}
-static VkResult dynCheck_entry_vkGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain,
-                                                       uint32_t* pSwapchainImageCount,
-                                                       VkImage* pSwapchainImages) {
-    auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain")) {
-        sOnInvalidDynamicallyCheckedCall("vkGetSwapchainImagesKHR", "VK_KHR_swapchain");
-    }
-    AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
-    vkGetSwapchainImagesKHR_VkResult_return = vkEnc->vkGetSwapchainImagesKHR(
-        device, swapchain, pSwapchainImageCount, pSwapchainImages, true /* do lock */);
-    return vkGetSwapchainImagesKHR_VkResult_return;
-}
-static VkResult entry_vkAcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain,
-                                            uint64_t timeout, VkSemaphore semaphore, VkFence fence,
-                                            uint32_t* pImageIndex) {
-    AEMU_SCOPED_TRACE("vkAcquireNextImageKHR");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
-    vkAcquireNextImageKHR_VkResult_return = vkEnc->vkAcquireNextImageKHR(
-        device, swapchain, timeout, semaphore, fence, pImageIndex, true /* do lock */);
-    return vkAcquireNextImageKHR_VkResult_return;
-}
-static VkResult dynCheck_entry_vkAcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain,
-                                                     uint64_t timeout, VkSemaphore semaphore,
-                                                     VkFence fence, uint32_t* pImageIndex) {
-    auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain")) {
-        sOnInvalidDynamicallyCheckedCall("vkAcquireNextImageKHR", "VK_KHR_swapchain");
-    }
-    AEMU_SCOPED_TRACE("vkAcquireNextImageKHR");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
-    vkAcquireNextImageKHR_VkResult_return = vkEnc->vkAcquireNextImageKHR(
-        device, swapchain, timeout, semaphore, fence, pImageIndex, true /* do lock */);
-    return vkAcquireNextImageKHR_VkResult_return;
-}
-static VkResult entry_vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR* pPresentInfo) {
-    AEMU_SCOPED_TRACE("vkQueuePresentKHR");
-    auto vkEnc = ResourceTracker::getQueueEncoder(queue);
-    VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0;
-    vkQueuePresentKHR_VkResult_return =
-        vkEnc->vkQueuePresentKHR(queue, pPresentInfo, true /* do lock */);
-    return vkQueuePresentKHR_VkResult_return;
-}
-static VkResult entry_vkGetDeviceGroupPresentCapabilitiesKHR(
-    VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {
-    AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
-    vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return =
-        vkEnc->vkGetDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities,
-                                                      true /* do lock */);
-    return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return;
-}
-static VkResult dynCheck_entry_vkGetDeviceGroupPresentCapabilitiesKHR(
-    VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {
-    auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain")) {
-        sOnInvalidDynamicallyCheckedCall("vkGetDeviceGroupPresentCapabilitiesKHR",
-                                         "VK_KHR_swapchain");
-    }
-    AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
-    vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return =
-        vkEnc->vkGetDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities,
-                                                      true /* do lock */);
-    return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return;
-}
-static VkResult entry_vkGetDeviceGroupSurfacePresentModesKHR(
-    VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes) {
-    AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
-    vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return =
-        vkEnc->vkGetDeviceGroupSurfacePresentModesKHR(device, surface, pModes, true /* do lock */);
-    return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return;
-}
-static VkResult dynCheck_entry_vkGetDeviceGroupSurfacePresentModesKHR(
-    VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes) {
-    auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain")) {
-        sOnInvalidDynamicallyCheckedCall("vkGetDeviceGroupSurfacePresentModesKHR",
-                                         "VK_KHR_swapchain");
-    }
-    AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
-    vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return =
-        vkEnc->vkGetDeviceGroupSurfacePresentModesKHR(device, surface, pModes, true /* do lock */);
-    return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return;
-}
-static VkResult entry_vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice,
-                                                              VkSurfaceKHR surface,
-                                                              uint32_t* pRectCount,
-                                                              VkRect2D* pRects) {
-    AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0;
-    vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return =
-        vkEnc->vkGetPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, pRectCount, pRects,
-                                                       true /* do lock */);
-    return vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return;
-}
-static VkResult entry_vkAcquireNextImage2KHR(VkDevice device,
-                                             const VkAcquireNextImageInfoKHR* pAcquireInfo,
-                                             uint32_t* pImageIndex) {
-    AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
-    vkAcquireNextImage2KHR_VkResult_return =
-        vkEnc->vkAcquireNextImage2KHR(device, pAcquireInfo, pImageIndex, true /* do lock */);
-    return vkAcquireNextImage2KHR_VkResult_return;
-}
-static VkResult dynCheck_entry_vkAcquireNextImage2KHR(VkDevice device,
-                                                      const VkAcquireNextImageInfoKHR* pAcquireInfo,
-                                                      uint32_t* pImageIndex) {
-    auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain")) {
-        sOnInvalidDynamicallyCheckedCall("vkAcquireNextImage2KHR", "VK_KHR_swapchain");
-    }
-    AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
-    vkAcquireNextImage2KHR_VkResult_return =
-        vkEnc->vkAcquireNextImage2KHR(device, pAcquireInfo, pImageIndex, true /* do lock */);
-    return vkAcquireNextImage2KHR_VkResult_return;
-}
 #endif
 #ifdef VK_KHR_xcb_surface
 #endif
@@ -4274,29 +4092,6 @@
 }
 #endif
 #ifdef VK_EXT_swapchain_maintenance1
-static VkResult entry_vkReleaseSwapchainImagesEXT(
-    VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) {
-    AEMU_SCOPED_TRACE("vkReleaseSwapchainImagesEXT");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkReleaseSwapchainImagesEXT_VkResult_return = (VkResult)0;
-    vkReleaseSwapchainImagesEXT_VkResult_return =
-        vkEnc->vkReleaseSwapchainImagesEXT(device, pReleaseInfo, true /* do lock */);
-    return vkReleaseSwapchainImagesEXT_VkResult_return;
-}
-static VkResult dynCheck_entry_vkReleaseSwapchainImagesEXT(
-    VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) {
-    auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_EXT_swapchain_maintenance1")) {
-        sOnInvalidDynamicallyCheckedCall("vkReleaseSwapchainImagesEXT",
-                                         "VK_EXT_swapchain_maintenance1");
-    }
-    AEMU_SCOPED_TRACE("vkReleaseSwapchainImagesEXT");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkReleaseSwapchainImagesEXT_VkResult_return = (VkResult)0;
-    vkReleaseSwapchainImagesEXT_VkResult_return =
-        vkEnc->vkReleaseSwapchainImagesEXT(device, pReleaseInfo, true /* do lock */);
-    return vkReleaseSwapchainImagesEXT_VkResult_return;
-}
 #endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 #endif
@@ -5535,35 +5330,6 @@
         return nullptr;
     }
 #endif
-#ifdef VK_KHR_swapchain
-    if (!strcmp(name, "vkCreateSwapchainKHR")) {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkDestroySwapchainKHR")) {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkGetSwapchainImagesKHR")) {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkAcquireNextImageKHR")) {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkQueuePresentKHR")) {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR")) {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR")) {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR")) {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkAcquireNextImage2KHR")) {
-        return nullptr;
-    }
-#endif
 #ifdef VK_KHR_android_surface
     if (!strcmp(name, "vkCreateAndroidSurfaceKHR")) {
         return nullptr;
@@ -5893,11 +5659,6 @@
         return nullptr;
     }
 #endif
-#ifdef VK_EXT_swapchain_maintenance1
-    if (!strcmp(name, "vkReleaseSwapchainImagesEXT")) {
-        return nullptr;
-    }
-#endif
 #ifdef VK_EXT_private_data
     if (!strcmp(name, "vkCreatePrivateDataSlotEXT")) {
         return nullptr;
@@ -6665,44 +6426,6 @@
         return (void*)dynCheck_entry_vkGetDeviceImageSparseMemoryRequirements;
     }
 #endif
-#ifdef VK_KHR_swapchain
-    if (!strcmp(name, "vkCreateSwapchainKHR")) {
-        // TODO(b/236246382): Check support for device extension;
-        return (void*)dynCheck_entry_vkCreateSwapchainKHR;
-    }
-    if (!strcmp(name, "vkDestroySwapchainKHR")) {
-        // TODO(b/236246382): Check support for device extension;
-        return (void*)dynCheck_entry_vkDestroySwapchainKHR;
-    }
-    if (!strcmp(name, "vkGetSwapchainImagesKHR")) {
-        // TODO(b/236246382): Check support for device extension;
-        return (void*)dynCheck_entry_vkGetSwapchainImagesKHR;
-    }
-    if (!strcmp(name, "vkAcquireNextImageKHR")) {
-        // TODO(b/236246382): Check support for device extension;
-        return (void*)dynCheck_entry_vkAcquireNextImageKHR;
-    }
-    if (!strcmp(name, "vkQueuePresentKHR")) {
-        // TODO(b/236246382): Check support for device extension;
-        return (void*)entry_vkQueuePresentKHR;
-    }
-    if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR")) {
-        // TODO(b/236246382): Check support for device extension;
-        return (void*)dynCheck_entry_vkGetDeviceGroupPresentCapabilitiesKHR;
-    }
-    if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR")) {
-        // TODO(b/236246382): Check support for device extension;
-        return (void*)dynCheck_entry_vkGetDeviceGroupSurfacePresentModesKHR;
-    }
-    if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR")) {
-        // TODO(b/236246382): Check support for device extension;
-        return (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR;
-    }
-    if (!strcmp(name, "vkAcquireNextImage2KHR")) {
-        // TODO(b/236246382): Check support for device extension;
-        return (void*)dynCheck_entry_vkAcquireNextImage2KHR;
-    }
-#endif
 #ifdef VK_KHR_android_surface
     if (!strcmp(name, "vkCreateAndroidSurfaceKHR")) {
         bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_android_surface");
@@ -7133,12 +6856,6 @@
         return (void*)dynCheck_entry_vkGetImageSubresourceLayout2EXT;
     }
 #endif
-#ifdef VK_EXT_swapchain_maintenance1
-    if (!strcmp(name, "vkReleaseSwapchainImagesEXT")) {
-        // TODO(b/236246382): Check support for device extension;
-        return (void*)dynCheck_entry_vkReleaseSwapchainImagesEXT;
-    }
-#endif
 #ifdef VK_EXT_private_data
     if (!strcmp(name, "vkCreatePrivateDataSlotEXT")) {
         // TODO(b/236246382): Check support for device extension;
@@ -7941,44 +7658,6 @@
         return has1_3OrHigher ? (void*)entry_vkGetDeviceImageSparseMemoryRequirements : nullptr;
     }
 #endif
-#ifdef VK_KHR_swapchain
-    if (!strcmp(name, "vkCreateSwapchainKHR")) {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
-        return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
-    }
-    if (!strcmp(name, "vkDestroySwapchainKHR")) {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
-        return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
-    }
-    if (!strcmp(name, "vkGetSwapchainImagesKHR")) {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
-        return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
-    }
-    if (!strcmp(name, "vkAcquireNextImageKHR")) {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
-        return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
-    }
-    if (!strcmp(name, "vkQueuePresentKHR")) {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
-        return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
-    }
-    if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR")) {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
-        return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
-    }
-    if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR")) {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
-        return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
-    }
-    if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR")) {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
-        return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
-    }
-    if (!strcmp(name, "vkAcquireNextImage2KHR")) {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
-        return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
-    }
-#endif
 #ifdef VK_KHR_android_surface
     if (!strcmp(name, "vkCreateAndroidSurfaceKHR")) {
         bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_android_surface");
@@ -8412,12 +8091,6 @@
         return hasExt ? (void*)entry_vkGetImageSubresourceLayout2EXT : nullptr;
     }
 #endif
-#ifdef VK_EXT_swapchain_maintenance1
-    if (!strcmp(name, "vkReleaseSwapchainImagesEXT")) {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_swapchain_maintenance1");
-        return hasExt ? (void*)entry_vkReleaseSwapchainImagesEXT : nullptr;
-    }
-#endif
 #ifdef VK_EXT_private_data
     if (!strcmp(name, "vkCreatePrivateDataSlotEXT")) {
         bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_private_data");
diff --git a/guest/vulkan_enc/goldfish_vk_counting_guest.cpp b/guest/vulkan_enc/goldfish_vk_counting_guest.cpp
index af0a807..ae32081 100644
--- a/guest/vulkan_enc/goldfish_vk_counting_guest.cpp
+++ b/guest/vulkan_enc/goldfish_vk_counting_guest.cpp
@@ -5711,177 +5711,6 @@
 #ifdef VK_KHR_surface
 #endif
 #ifdef VK_KHR_swapchain
-void count_VkSwapchainCreateInfoKHR(uint32_t featureBits, VkStructureType rootType,
-                                    const VkSwapchainCreateInfoKHR* 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(VkSwapchainCreateFlagsKHR);
-    uint64_t cgen_var_0;
-    *count += 1 * 8;
-    *count += sizeof(uint32_t);
-    *count += sizeof(VkFormat);
-    *count += sizeof(VkColorSpaceKHR);
-    count_VkExtent2D(featureBits, rootType, (VkExtent2D*)(&toCount->imageExtent), count);
-    *count += sizeof(uint32_t);
-    *count += sizeof(VkImageUsageFlags);
-    *count += sizeof(VkSharingMode);
-    *count += sizeof(uint32_t);
-    // WARNING PTR CHECK
-    *count += 8;
-    if (toCount->pQueueFamilyIndices) {
-        if (toCount) {
-            *count += toCount->queueFamilyIndexCount * sizeof(const uint32_t);
-        }
-    }
-    *count += sizeof(VkSurfaceTransformFlagBitsKHR);
-    *count += sizeof(VkCompositeAlphaFlagBitsKHR);
-    *count += sizeof(VkPresentModeKHR);
-    *count += sizeof(VkBool32);
-    uint64_t cgen_var_1;
-    *count += 1 * 8;
-}
-
-void count_VkPresentInfoKHR(uint32_t featureBits, VkStructureType rootType,
-                            const VkPresentInfoKHR* 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->waitSemaphoreCount) {
-        *count += toCount->waitSemaphoreCount * 8;
-    }
-    *count += sizeof(uint32_t);
-    if (toCount->swapchainCount) {
-        *count += toCount->swapchainCount * 8;
-    }
-    if (toCount) {
-        *count += toCount->swapchainCount * sizeof(const uint32_t);
-    }
-    // WARNING PTR CHECK
-    *count += 8;
-    if (toCount->pResults) {
-        if (toCount) {
-            *count += toCount->swapchainCount * sizeof(VkResult);
-        }
-    }
-}
-
-void count_VkImageSwapchainCreateInfoKHR(uint32_t featureBits, VkStructureType rootType,
-                                         const VkImageSwapchainCreateInfoKHR* 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;
-}
-
-void count_VkBindImageMemorySwapchainInfoKHR(uint32_t featureBits, VkStructureType rootType,
-                                             const VkBindImageMemorySwapchainInfoKHR* 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_VkAcquireNextImageInfoKHR(uint32_t featureBits, VkStructureType rootType,
-                                     const VkAcquireNextImageInfoKHR* 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);
-    uint64_t cgen_var_1;
-    *count += 1 * 8;
-    uint64_t cgen_var_2;
-    *count += 1 * 8;
-    *count += sizeof(uint32_t);
-}
-
-void count_VkDeviceGroupPresentCapabilitiesKHR(uint32_t featureBits, VkStructureType rootType,
-                                               const VkDeviceGroupPresentCapabilitiesKHR* 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 += VK_MAX_DEVICE_GROUP_SIZE * sizeof(uint32_t);
-    *count += sizeof(VkDeviceGroupPresentModeFlagsKHR);
-}
-
-void count_VkDeviceGroupPresentInfoKHR(uint32_t featureBits, VkStructureType rootType,
-                                       const VkDeviceGroupPresentInfoKHR* 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->swapchainCount * sizeof(const uint32_t);
-    }
-    *count += sizeof(VkDeviceGroupPresentModeFlagBitsKHR);
-}
-
-void count_VkDeviceGroupSwapchainCreateInfoKHR(uint32_t featureBits, VkStructureType rootType,
-                                               const VkDeviceGroupSwapchainCreateInfoKHR* 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(VkDeviceGroupPresentModeFlagsKHR);
-}
-
 #endif
 #ifdef VK_KHR_xcb_surface
 #endif
@@ -6960,112 +6789,6 @@
 
 #endif
 #ifdef VK_EXT_swapchain_maintenance1
-void count_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-    uint32_t featureBits, VkStructureType rootType,
-    const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* 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_VkSwapchainPresentFenceInfoEXT(uint32_t featureBits, VkStructureType rootType,
-                                          const VkSwapchainPresentFenceInfoEXT* 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->swapchainCount) {
-        *count += toCount->swapchainCount * 8;
-    }
-}
-
-void count_VkSwapchainPresentModesCreateInfoEXT(uint32_t featureBits, VkStructureType rootType,
-                                                const VkSwapchainPresentModesCreateInfoEXT* 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->presentModeCount * sizeof(const VkPresentModeKHR);
-    }
-}
-
-void count_VkSwapchainPresentModeInfoEXT(uint32_t featureBits, VkStructureType rootType,
-                                         const VkSwapchainPresentModeInfoEXT* 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->swapchainCount * sizeof(const VkPresentModeKHR);
-    }
-}
-
-void count_VkSwapchainPresentScalingCreateInfoEXT(
-    uint32_t featureBits, VkStructureType rootType,
-    const VkSwapchainPresentScalingCreateInfoEXT* 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(VkPresentScalingFlagsEXT);
-    *count += sizeof(VkPresentGravityFlagsEXT);
-    *count += sizeof(VkPresentGravityFlagsEXT);
-}
-
-void count_VkReleaseSwapchainImagesInfoEXT(uint32_t featureBits, VkStructureType rootType,
-                                           const VkReleaseSwapchainImagesInfoEXT* 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);
-    if (toCount) {
-        *count += toCount->imageIndexCount * sizeof(const uint32_t);
-    }
-}
-
 #endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 #endif
@@ -8213,33 +7936,6 @@
             break;
         }
 #endif
-#ifdef VK_KHR_swapchain
-        case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: {
-            count_VkImageSwapchainCreateInfoKHR(
-                featureBits, rootType,
-                reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>(structExtension), count);
-            break;
-        }
-        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: {
-            count_VkBindImageMemorySwapchainInfoKHR(
-                featureBits, rootType,
-                reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>(structExtension), count);
-            break;
-        }
-        case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: {
-            count_VkDeviceGroupPresentInfoKHR(
-                featureBits, rootType,
-                reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>(structExtension), count);
-            break;
-        }
-        case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: {
-            count_VkDeviceGroupSwapchainCreateInfoKHR(
-                featureBits, rootType,
-                reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension),
-                count);
-            break;
-        }
-#endif
 #ifdef VK_KHR_dynamic_rendering
         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
             count_VkRenderingFragmentShadingRateAttachmentInfoKHR(
@@ -8462,42 +8158,6 @@
             break;
         }
 #endif
-#ifdef VK_EXT_swapchain_maintenance1
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: {
-            count_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-                featureBits, rootType,
-                reinterpret_cast<const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT*>(
-                    structExtension),
-                count);
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: {
-            count_VkSwapchainPresentFenceInfoEXT(
-                featureBits, rootType,
-                reinterpret_cast<const VkSwapchainPresentFenceInfoEXT*>(structExtension), count);
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: {
-            count_VkSwapchainPresentModesCreateInfoEXT(
-                featureBits, rootType,
-                reinterpret_cast<const VkSwapchainPresentModesCreateInfoEXT*>(structExtension),
-                count);
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: {
-            count_VkSwapchainPresentModeInfoEXT(
-                featureBits, rootType,
-                reinterpret_cast<const VkSwapchainPresentModeInfoEXT*>(structExtension), count);
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: {
-            count_VkSwapchainPresentScalingCreateInfoEXT(
-                featureBits, rootType,
-                reinterpret_cast<const VkSwapchainPresentScalingCreateInfoEXT*>(structExtension),
-                count);
-            break;
-        }
-#endif
 #ifdef VK_EXT_texel_buffer_alignment
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
             count_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
diff --git a/guest/vulkan_enc/goldfish_vk_counting_guest.h b/guest/vulkan_enc/goldfish_vk_counting_guest.h
index 7634a0e..2ca5b5c 100644
--- a/guest/vulkan_enc/goldfish_vk_counting_guest.h
+++ b/guest/vulkan_enc/goldfish_vk_counting_guest.h
@@ -1036,34 +1036,6 @@
 #ifdef VK_KHR_surface
 #endif
 #ifdef VK_KHR_swapchain
-void count_VkSwapchainCreateInfoKHR(uint32_t featureBits, VkStructureType rootType,
-                                    const VkSwapchainCreateInfoKHR* toCount, size_t* count);
-
-void count_VkPresentInfoKHR(uint32_t featureBits, VkStructureType rootType,
-                            const VkPresentInfoKHR* toCount, size_t* count);
-
-void count_VkImageSwapchainCreateInfoKHR(uint32_t featureBits, VkStructureType rootType,
-                                         const VkImageSwapchainCreateInfoKHR* toCount,
-                                         size_t* count);
-
-void count_VkBindImageMemorySwapchainInfoKHR(uint32_t featureBits, VkStructureType rootType,
-                                             const VkBindImageMemorySwapchainInfoKHR* toCount,
-                                             size_t* count);
-
-void count_VkAcquireNextImageInfoKHR(uint32_t featureBits, VkStructureType rootType,
-                                     const VkAcquireNextImageInfoKHR* toCount, size_t* count);
-
-void count_VkDeviceGroupPresentCapabilitiesKHR(uint32_t featureBits, VkStructureType rootType,
-                                               const VkDeviceGroupPresentCapabilitiesKHR* toCount,
-                                               size_t* count);
-
-void count_VkDeviceGroupPresentInfoKHR(uint32_t featureBits, VkStructureType rootType,
-                                       const VkDeviceGroupPresentInfoKHR* toCount, size_t* count);
-
-void count_VkDeviceGroupSwapchainCreateInfoKHR(uint32_t featureBits, VkStructureType rootType,
-                                               const VkDeviceGroupSwapchainCreateInfoKHR* toCount,
-                                               size_t* count);
-
 #endif
 #ifdef VK_KHR_xcb_surface
 #endif
@@ -1672,30 +1644,6 @@
 
 #endif
 #ifdef VK_EXT_swapchain_maintenance1
-void count_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-    uint32_t featureBits, VkStructureType rootType,
-    const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* toCount, size_t* count);
-
-void count_VkSwapchainPresentFenceInfoEXT(uint32_t featureBits, VkStructureType rootType,
-                                          const VkSwapchainPresentFenceInfoEXT* toCount,
-                                          size_t* count);
-
-void count_VkSwapchainPresentModesCreateInfoEXT(uint32_t featureBits, VkStructureType rootType,
-                                                const VkSwapchainPresentModesCreateInfoEXT* toCount,
-                                                size_t* count);
-
-void count_VkSwapchainPresentModeInfoEXT(uint32_t featureBits, VkStructureType rootType,
-                                         const VkSwapchainPresentModeInfoEXT* toCount,
-                                         size_t* count);
-
-void count_VkSwapchainPresentScalingCreateInfoEXT(
-    uint32_t featureBits, VkStructureType rootType,
-    const VkSwapchainPresentScalingCreateInfoEXT* toCount, size_t* count);
-
-void count_VkReleaseSwapchainImagesInfoEXT(uint32_t featureBits, VkStructureType rootType,
-                                           const VkReleaseSwapchainImagesInfoEXT* toCount,
-                                           size_t* count);
-
 #endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures,
diff --git a/guest/vulkan_enc/goldfish_vk_deepcopy_guest.cpp b/guest/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
index 0f3007e..2067f9c 100644
--- a/guest/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
+++ b/guest/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
@@ -6506,213 +6506,6 @@
 #ifdef VK_KHR_surface
 #endif
 #ifdef VK_KHR_swapchain
-void deepcopy_VkSwapchainCreateInfoKHR(Allocator* alloc, VkStructureType rootType,
-                                       const VkSwapchainCreateInfoKHR* from,
-                                       VkSwapchainCreateInfoKHR* 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->imageExtent, (VkExtent2D*)(&to->imageExtent));
-    to->pQueueFamilyIndices = nullptr;
-    if (from->pQueueFamilyIndices) {
-        to->pQueueFamilyIndices = (uint32_t*)alloc->dupArray(
-            from->pQueueFamilyIndices, from->queueFamilyIndexCount * sizeof(const uint32_t));
-    }
-}
-
-void deepcopy_VkPresentInfoKHR(Allocator* alloc, VkStructureType rootType,
-                               const VkPresentInfoKHR* from, VkPresentInfoKHR* 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->pWaitSemaphores = nullptr;
-    if (from->pWaitSemaphores) {
-        to->pWaitSemaphores = (VkSemaphore*)alloc->dupArray(
-            from->pWaitSemaphores, from->waitSemaphoreCount * sizeof(const VkSemaphore));
-    }
-    to->pSwapchains = nullptr;
-    if (from->pSwapchains) {
-        to->pSwapchains = (VkSwapchainKHR*)alloc->dupArray(
-            from->pSwapchains, from->swapchainCount * sizeof(const VkSwapchainKHR));
-    }
-    to->pImageIndices = nullptr;
-    if (from->pImageIndices) {
-        to->pImageIndices = (uint32_t*)alloc->dupArray(
-            from->pImageIndices, from->swapchainCount * sizeof(const uint32_t));
-    }
-    to->pResults = nullptr;
-    if (from->pResults) {
-        to->pResults =
-            (VkResult*)alloc->dupArray(from->pResults, from->swapchainCount * sizeof(VkResult));
-    }
-}
-
-void deepcopy_VkImageSwapchainCreateInfoKHR(Allocator* alloc, VkStructureType rootType,
-                                            const VkImageSwapchainCreateInfoKHR* from,
-                                            VkImageSwapchainCreateInfoKHR* 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_VkBindImageMemorySwapchainInfoKHR(Allocator* alloc, VkStructureType rootType,
-                                                const VkBindImageMemorySwapchainInfoKHR* from,
-                                                VkBindImageMemorySwapchainInfoKHR* 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_VkAcquireNextImageInfoKHR(Allocator* alloc, VkStructureType rootType,
-                                        const VkAcquireNextImageInfoKHR* from,
-                                        VkAcquireNextImageInfoKHR* 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_VkDeviceGroupPresentCapabilitiesKHR(Allocator* alloc, VkStructureType rootType,
-                                                  const VkDeviceGroupPresentCapabilitiesKHR* from,
-                                                  VkDeviceGroupPresentCapabilitiesKHR* 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->presentMask, from->presentMask, VK_MAX_DEVICE_GROUP_SIZE * sizeof(uint32_t));
-}
-
-void deepcopy_VkDeviceGroupPresentInfoKHR(Allocator* alloc, VkStructureType rootType,
-                                          const VkDeviceGroupPresentInfoKHR* from,
-                                          VkDeviceGroupPresentInfoKHR* 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->pDeviceMasks = nullptr;
-    if (from->pDeviceMasks) {
-        to->pDeviceMasks = (uint32_t*)alloc->dupArray(
-            from->pDeviceMasks, from->swapchainCount * sizeof(const uint32_t));
-    }
-}
-
-void deepcopy_VkDeviceGroupSwapchainCreateInfoKHR(Allocator* alloc, VkStructureType rootType,
-                                                  const VkDeviceGroupSwapchainCreateInfoKHR* from,
-                                                  VkDeviceGroupSwapchainCreateInfoKHR* 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_xcb_surface
 #endif
@@ -8108,159 +7901,6 @@
 
 #endif
 #ifdef VK_EXT_swapchain_maintenance1
-void deepcopy_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-    Allocator* alloc, VkStructureType rootType,
-    const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* from,
-    VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* 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_VkSwapchainPresentFenceInfoEXT(Allocator* alloc, VkStructureType rootType,
-                                             const VkSwapchainPresentFenceInfoEXT* from,
-                                             VkSwapchainPresentFenceInfoEXT* 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->pFences = nullptr;
-    if (from->pFences) {
-        to->pFences =
-            (VkFence*)alloc->dupArray(from->pFences, from->swapchainCount * sizeof(const VkFence));
-    }
-}
-
-void deepcopy_VkSwapchainPresentModesCreateInfoEXT(Allocator* alloc, VkStructureType rootType,
-                                                   const VkSwapchainPresentModesCreateInfoEXT* from,
-                                                   VkSwapchainPresentModesCreateInfoEXT* 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->pPresentModes = nullptr;
-    if (from->pPresentModes) {
-        to->pPresentModes = (VkPresentModeKHR*)alloc->dupArray(
-            from->pPresentModes, from->presentModeCount * sizeof(const VkPresentModeKHR));
-    }
-}
-
-void deepcopy_VkSwapchainPresentModeInfoEXT(Allocator* alloc, VkStructureType rootType,
-                                            const VkSwapchainPresentModeInfoEXT* from,
-                                            VkSwapchainPresentModeInfoEXT* 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->pPresentModes = nullptr;
-    if (from->pPresentModes) {
-        to->pPresentModes = (VkPresentModeKHR*)alloc->dupArray(
-            from->pPresentModes, from->swapchainCount * sizeof(const VkPresentModeKHR));
-    }
-}
-
-void deepcopy_VkSwapchainPresentScalingCreateInfoEXT(
-    Allocator* alloc, VkStructureType rootType, const VkSwapchainPresentScalingCreateInfoEXT* from,
-    VkSwapchainPresentScalingCreateInfoEXT* 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_VkReleaseSwapchainImagesInfoEXT(Allocator* alloc, VkStructureType rootType,
-                                              const VkReleaseSwapchainImagesInfoEXT* from,
-                                              VkReleaseSwapchainImagesInfoEXT* 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->pImageIndices = nullptr;
-    if (from->pImageIndices) {
-        to->pImageIndices = (uint32_t*)alloc->dupArray(
-            from->pImageIndices, from->imageIndexCount * sizeof(const uint32_t));
-    }
-}
-
 #endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 #endif
@@ -9597,36 +9237,6 @@
             break;
         }
 #endif
-#ifdef VK_KHR_swapchain
-        case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: {
-            deepcopy_VkImageSwapchainCreateInfoKHR(
-                alloc, rootType,
-                reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>(structExtension),
-                reinterpret_cast<VkImageSwapchainCreateInfoKHR*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: {
-            deepcopy_VkBindImageMemorySwapchainInfoKHR(
-                alloc, rootType,
-                reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>(structExtension),
-                reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: {
-            deepcopy_VkDeviceGroupPresentInfoKHR(
-                alloc, rootType,
-                reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>(structExtension),
-                reinterpret_cast<VkDeviceGroupPresentInfoKHR*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: {
-            deepcopy_VkDeviceGroupSwapchainCreateInfoKHR(
-                alloc, rootType,
-                reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension),
-                reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension_out));
-            break;
-        }
-#endif
 #ifdef VK_KHR_dynamic_rendering
         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
             deepcopy_VkRenderingFragmentShadingRateAttachmentInfoKHR(
@@ -9864,45 +9474,6 @@
             break;
         }
 #endif
-#ifdef VK_EXT_swapchain_maintenance1
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: {
-            deepcopy_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-                alloc, rootType,
-                reinterpret_cast<const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT*>(
-                    structExtension),
-                reinterpret_cast<VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT*>(
-                    structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: {
-            deepcopy_VkSwapchainPresentFenceInfoEXT(
-                alloc, rootType,
-                reinterpret_cast<const VkSwapchainPresentFenceInfoEXT*>(structExtension),
-                reinterpret_cast<VkSwapchainPresentFenceInfoEXT*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: {
-            deepcopy_VkSwapchainPresentModesCreateInfoEXT(
-                alloc, rootType,
-                reinterpret_cast<const VkSwapchainPresentModesCreateInfoEXT*>(structExtension),
-                reinterpret_cast<VkSwapchainPresentModesCreateInfoEXT*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: {
-            deepcopy_VkSwapchainPresentModeInfoEXT(
-                alloc, rootType,
-                reinterpret_cast<const VkSwapchainPresentModeInfoEXT*>(structExtension),
-                reinterpret_cast<VkSwapchainPresentModeInfoEXT*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: {
-            deepcopy_VkSwapchainPresentScalingCreateInfoEXT(
-                alloc, rootType,
-                reinterpret_cast<const VkSwapchainPresentScalingCreateInfoEXT*>(structExtension),
-                reinterpret_cast<VkSwapchainPresentScalingCreateInfoEXT*>(structExtension_out));
-            break;
-        }
-#endif
 #ifdef VK_EXT_texel_buffer_alignment
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
             deepcopy_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
diff --git a/guest/vulkan_enc/goldfish_vk_deepcopy_guest.h b/guest/vulkan_enc/goldfish_vk_deepcopy_guest.h
index a596199..a0bac21 100644
--- a/guest/vulkan_enc/goldfish_vk_deepcopy_guest.h
+++ b/guest/vulkan_enc/goldfish_vk_deepcopy_guest.h
@@ -1150,37 +1150,6 @@
 #ifdef VK_KHR_surface
 #endif
 #ifdef VK_KHR_swapchain
-void deepcopy_VkSwapchainCreateInfoKHR(Allocator* alloc, VkStructureType rootType,
-                                       const VkSwapchainCreateInfoKHR* from,
-                                       VkSwapchainCreateInfoKHR* to);
-
-void deepcopy_VkPresentInfoKHR(Allocator* alloc, VkStructureType rootType,
-                               const VkPresentInfoKHR* from, VkPresentInfoKHR* to);
-
-void deepcopy_VkImageSwapchainCreateInfoKHR(Allocator* alloc, VkStructureType rootType,
-                                            const VkImageSwapchainCreateInfoKHR* from,
-                                            VkImageSwapchainCreateInfoKHR* to);
-
-void deepcopy_VkBindImageMemorySwapchainInfoKHR(Allocator* alloc, VkStructureType rootType,
-                                                const VkBindImageMemorySwapchainInfoKHR* from,
-                                                VkBindImageMemorySwapchainInfoKHR* to);
-
-void deepcopy_VkAcquireNextImageInfoKHR(Allocator* alloc, VkStructureType rootType,
-                                        const VkAcquireNextImageInfoKHR* from,
-                                        VkAcquireNextImageInfoKHR* to);
-
-void deepcopy_VkDeviceGroupPresentCapabilitiesKHR(Allocator* alloc, VkStructureType rootType,
-                                                  const VkDeviceGroupPresentCapabilitiesKHR* from,
-                                                  VkDeviceGroupPresentCapabilitiesKHR* to);
-
-void deepcopy_VkDeviceGroupPresentInfoKHR(Allocator* alloc, VkStructureType rootType,
-                                          const VkDeviceGroupPresentInfoKHR* from,
-                                          VkDeviceGroupPresentInfoKHR* to);
-
-void deepcopy_VkDeviceGroupSwapchainCreateInfoKHR(Allocator* alloc, VkStructureType rootType,
-                                                  const VkDeviceGroupSwapchainCreateInfoKHR* from,
-                                                  VkDeviceGroupSwapchainCreateInfoKHR* to);
-
 #endif
 #ifdef VK_KHR_xcb_surface
 #endif
@@ -1833,31 +1802,6 @@
 
 #endif
 #ifdef VK_EXT_swapchain_maintenance1
-void deepcopy_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-    Allocator* alloc, VkStructureType rootType,
-    const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* from,
-    VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* to);
-
-void deepcopy_VkSwapchainPresentFenceInfoEXT(Allocator* alloc, VkStructureType rootType,
-                                             const VkSwapchainPresentFenceInfoEXT* from,
-                                             VkSwapchainPresentFenceInfoEXT* to);
-
-void deepcopy_VkSwapchainPresentModesCreateInfoEXT(Allocator* alloc, VkStructureType rootType,
-                                                   const VkSwapchainPresentModesCreateInfoEXT* from,
-                                                   VkSwapchainPresentModesCreateInfoEXT* to);
-
-void deepcopy_VkSwapchainPresentModeInfoEXT(Allocator* alloc, VkStructureType rootType,
-                                            const VkSwapchainPresentModeInfoEXT* from,
-                                            VkSwapchainPresentModeInfoEXT* to);
-
-void deepcopy_VkSwapchainPresentScalingCreateInfoEXT(
-    Allocator* alloc, VkStructureType rootType, const VkSwapchainPresentScalingCreateInfoEXT* from,
-    VkSwapchainPresentScalingCreateInfoEXT* to);
-
-void deepcopy_VkReleaseSwapchainImagesInfoEXT(Allocator* alloc, VkStructureType rootType,
-                                              const VkReleaseSwapchainImagesInfoEXT* from,
-                                              VkReleaseSwapchainImagesInfoEXT* to);
-
 #endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures,
diff --git a/guest/vulkan_enc/goldfish_vk_extension_structs_guest.cpp b/guest/vulkan_enc/goldfish_vk_extension_structs_guest.cpp
index e95c7da..8e600e2 100644
--- a/guest/vulkan_enc/goldfish_vk_extension_structs_guest.cpp
+++ b/guest/vulkan_enc/goldfish_vk_extension_structs_guest.cpp
@@ -546,20 +546,6 @@
             return sizeof(VkPhysicalDeviceMaintenance4Properties);
         }
 #endif
-#ifdef VK_KHR_swapchain
-        case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: {
-            return sizeof(VkImageSwapchainCreateInfoKHR);
-        }
-        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: {
-            return sizeof(VkBindImageMemorySwapchainInfoKHR);
-        }
-        case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: {
-            return sizeof(VkDeviceGroupPresentInfoKHR);
-        }
-        case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: {
-            return sizeof(VkDeviceGroupSwapchainCreateInfoKHR);
-        }
-#endif
 #ifdef VK_KHR_dynamic_rendering
         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
             return sizeof(VkRenderingFragmentShadingRateAttachmentInfoKHR);
@@ -665,23 +651,6 @@
             return sizeof(VkHostImageCopyDevicePerformanceQueryEXT);
         }
 #endif
-#ifdef VK_EXT_swapchain_maintenance1
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: {
-            return sizeof(VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT);
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: {
-            return sizeof(VkSwapchainPresentFenceInfoEXT);
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: {
-            return sizeof(VkSwapchainPresentModesCreateInfoEXT);
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: {
-            return sizeof(VkSwapchainPresentModeInfoEXT);
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: {
-            return sizeof(VkSwapchainPresentScalingCreateInfoEXT);
-        }
-#endif
 #ifdef VK_EXT_texel_buffer_alignment
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
             return sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT);
@@ -1111,20 +1080,6 @@
             return sizeof(VkPhysicalDeviceMaintenance4Properties);
         }
 #endif
-#ifdef VK_KHR_swapchain
-        case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: {
-            return sizeof(VkImageSwapchainCreateInfoKHR);
-        }
-        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: {
-            return sizeof(VkBindImageMemorySwapchainInfoKHR);
-        }
-        case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: {
-            return sizeof(VkDeviceGroupPresentInfoKHR);
-        }
-        case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: {
-            return sizeof(VkDeviceGroupSwapchainCreateInfoKHR);
-        }
-#endif
 #ifdef VK_KHR_dynamic_rendering
         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
             return sizeof(VkRenderingFragmentShadingRateAttachmentInfoKHR);
@@ -1230,23 +1185,6 @@
             return sizeof(VkHostImageCopyDevicePerformanceQueryEXT);
         }
 #endif
-#ifdef VK_EXT_swapchain_maintenance1
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: {
-            return sizeof(VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT);
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: {
-            return sizeof(VkSwapchainPresentFenceInfoEXT);
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: {
-            return sizeof(VkSwapchainPresentModesCreateInfoEXT);
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: {
-            return sizeof(VkSwapchainPresentModeInfoEXT);
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: {
-            return sizeof(VkSwapchainPresentScalingCreateInfoEXT);
-        }
-#endif
 #ifdef VK_EXT_texel_buffer_alignment
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
             return sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT);
diff --git a/guest/vulkan_enc/goldfish_vk_marshaling_guest.cpp b/guest/vulkan_enc/goldfish_vk_marshaling_guest.cpp
index c9343ca..ccdd3d1 100644
--- a/guest/vulkan_enc/goldfish_vk_marshaling_guest.cpp
+++ b/guest/vulkan_enc/goldfish_vk_marshaling_guest.cpp
@@ -10810,361 +10810,6 @@
 #ifdef VK_KHR_surface
 #endif
 #ifdef VK_KHR_swapchain
-void marshal_VkSwapchainCreateInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                      const VkSwapchainCreateInfoKHR* 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((VkSwapchainCreateFlagsKHR*)&forMarshaling->flags,
-                    sizeof(VkSwapchainCreateFlagsKHR));
-    uint64_t cgen_var_0;
-    vkStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&forMarshaling->surface, &cgen_var_0, 1);
-    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
-    vkStream->write((uint32_t*)&forMarshaling->minImageCount, sizeof(uint32_t));
-    vkStream->write((VkFormat*)&forMarshaling->imageFormat, sizeof(VkFormat));
-    vkStream->write((VkColorSpaceKHR*)&forMarshaling->imageColorSpace, sizeof(VkColorSpaceKHR));
-    marshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->imageExtent));
-    vkStream->write((uint32_t*)&forMarshaling->imageArrayLayers, sizeof(uint32_t));
-    vkStream->write((VkImageUsageFlags*)&forMarshaling->imageUsage, sizeof(VkImageUsageFlags));
-    vkStream->write((VkSharingMode*)&forMarshaling->imageSharingMode, sizeof(VkSharingMode));
-    vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
-    // WARNING PTR CHECK
-    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
-    vkStream->putBe64(cgen_var_1);
-    if (forMarshaling->pQueueFamilyIndices) {
-        vkStream->write((const uint32_t*)forMarshaling->pQueueFamilyIndices,
-                        forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
-    }
-    vkStream->write((VkSurfaceTransformFlagBitsKHR*)&forMarshaling->preTransform,
-                    sizeof(VkSurfaceTransformFlagBitsKHR));
-    vkStream->write((VkCompositeAlphaFlagBitsKHR*)&forMarshaling->compositeAlpha,
-                    sizeof(VkCompositeAlphaFlagBitsKHR));
-    vkStream->write((VkPresentModeKHR*)&forMarshaling->presentMode, sizeof(VkPresentModeKHR));
-    vkStream->write((VkBool32*)&forMarshaling->clipped, sizeof(VkBool32));
-    uint64_t cgen_var_2;
-    vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->oldSwapchain,
-                                                             &cgen_var_2, 1);
-    vkStream->write((uint64_t*)&cgen_var_2, 1 * 8);
-}
-
-void unmarshal_VkSwapchainCreateInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                        VkSwapchainCreateInfoKHR* 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((VkSwapchainCreateFlagsKHR*)&forUnmarshaling->flags,
-                   sizeof(VkSwapchainCreateFlagsKHR));
-    uint64_t cgen_var_0;
-    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkSurfaceKHR(
-        &cgen_var_0, (VkSurfaceKHR*)&forUnmarshaling->surface, 1);
-    vkStream->read((uint32_t*)&forUnmarshaling->minImageCount, sizeof(uint32_t));
-    vkStream->read((VkFormat*)&forUnmarshaling->imageFormat, sizeof(VkFormat));
-    vkStream->read((VkColorSpaceKHR*)&forUnmarshaling->imageColorSpace, sizeof(VkColorSpaceKHR));
-    unmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forUnmarshaling->imageExtent));
-    vkStream->read((uint32_t*)&forUnmarshaling->imageArrayLayers, sizeof(uint32_t));
-    vkStream->read((VkImageUsageFlags*)&forUnmarshaling->imageUsage, sizeof(VkImageUsageFlags));
-    vkStream->read((VkSharingMode*)&forUnmarshaling->imageSharingMode, sizeof(VkSharingMode));
-    vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndexCount, sizeof(uint32_t));
-    // WARNING PTR CHECK
-    const uint32_t* check_pQueueFamilyIndices;
-    check_pQueueFamilyIndices = (const uint32_t*)(uintptr_t)vkStream->getBe64();
-    if (forUnmarshaling->pQueueFamilyIndices) {
-        if (!(check_pQueueFamilyIndices)) {
-            fprintf(stderr,
-                    "fatal: forUnmarshaling->pQueueFamilyIndices inconsistent between guest and "
-                    "host\n");
-        }
-        vkStream->read((uint32_t*)forUnmarshaling->pQueueFamilyIndices,
-                       forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
-    }
-    vkStream->read((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->preTransform,
-                   sizeof(VkSurfaceTransformFlagBitsKHR));
-    vkStream->read((VkCompositeAlphaFlagBitsKHR*)&forUnmarshaling->compositeAlpha,
-                   sizeof(VkCompositeAlphaFlagBitsKHR));
-    vkStream->read((VkPresentModeKHR*)&forUnmarshaling->presentMode, sizeof(VkPresentModeKHR));
-    vkStream->read((VkBool32*)&forUnmarshaling->clipped, sizeof(VkBool32));
-    uint64_t cgen_var_2;
-    vkStream->read((uint64_t*)&cgen_var_2, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(
-        &cgen_var_2, (VkSwapchainKHR*)&forUnmarshaling->oldSwapchain, 1);
-}
-
-void marshal_VkPresentInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                              const VkPresentInfoKHR* 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->waitSemaphoreCount, sizeof(uint32_t));
-    if (forMarshaling->waitSemaphoreCount) {
-        uint64_t* cgen_var_0;
-        vkStream->alloc((void**)&cgen_var_0, forMarshaling->waitSemaphoreCount * 8);
-        vkStream->handleMapping()->mapHandles_VkSemaphore_u64(
-            forMarshaling->pWaitSemaphores, cgen_var_0, forMarshaling->waitSemaphoreCount);
-        vkStream->write((uint64_t*)cgen_var_0, forMarshaling->waitSemaphoreCount * 8);
-    }
-    vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
-    if (forMarshaling->swapchainCount) {
-        uint64_t* cgen_var_1;
-        vkStream->alloc((void**)&cgen_var_1, forMarshaling->swapchainCount * 8);
-        vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(
-            forMarshaling->pSwapchains, cgen_var_1, forMarshaling->swapchainCount);
-        vkStream->write((uint64_t*)cgen_var_1, forMarshaling->swapchainCount * 8);
-    }
-    vkStream->write((const uint32_t*)forMarshaling->pImageIndices,
-                    forMarshaling->swapchainCount * sizeof(const uint32_t));
-    // WARNING PTR CHECK
-    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pResults;
-    vkStream->putBe64(cgen_var_2);
-    if (forMarshaling->pResults) {
-        vkStream->write((VkResult*)forMarshaling->pResults,
-                        forMarshaling->swapchainCount * sizeof(VkResult));
-    }
-}
-
-void unmarshal_VkPresentInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                VkPresentInfoKHR* 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->waitSemaphoreCount, sizeof(uint32_t));
-    if (forUnmarshaling->waitSemaphoreCount) {
-        uint64_t* cgen_var_0;
-        vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->waitSemaphoreCount * 8);
-        vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->waitSemaphoreCount * 8);
-        vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
-            cgen_var_0, (VkSemaphore*)forUnmarshaling->pWaitSemaphores,
-            forUnmarshaling->waitSemaphoreCount);
-    }
-    vkStream->read((uint32_t*)&forUnmarshaling->swapchainCount, sizeof(uint32_t));
-    if (forUnmarshaling->swapchainCount) {
-        uint64_t* cgen_var_1;
-        vkStream->alloc((void**)&cgen_var_1, forUnmarshaling->swapchainCount * 8);
-        vkStream->read((uint64_t*)cgen_var_1, forUnmarshaling->swapchainCount * 8);
-        vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(
-            cgen_var_1, (VkSwapchainKHR*)forUnmarshaling->pSwapchains,
-            forUnmarshaling->swapchainCount);
-    }
-    vkStream->read((uint32_t*)forUnmarshaling->pImageIndices,
-                   forUnmarshaling->swapchainCount * sizeof(const uint32_t));
-    // WARNING PTR CHECK
-    VkResult* check_pResults;
-    check_pResults = (VkResult*)(uintptr_t)vkStream->getBe64();
-    if (forUnmarshaling->pResults) {
-        if (!(check_pResults)) {
-            fprintf(stderr,
-                    "fatal: forUnmarshaling->pResults inconsistent between guest and host\n");
-        }
-        vkStream->read((VkResult*)forUnmarshaling->pResults,
-                       forUnmarshaling->swapchainCount * sizeof(VkResult));
-    }
-}
-
-void marshal_VkImageSwapchainCreateInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                           const VkImageSwapchainCreateInfoKHR* 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_VkSwapchainKHR_u64(&forMarshaling->swapchain, &cgen_var_0,
-                                                             1);
-    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
-}
-
-void unmarshal_VkImageSwapchainCreateInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                             VkImageSwapchainCreateInfoKHR* 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_VkSwapchainKHR(
-        &cgen_var_0, (VkSwapchainKHR*)&forUnmarshaling->swapchain, 1);
-}
-
-void marshal_VkBindImageMemorySwapchainInfoKHR(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkBindImageMemorySwapchainInfoKHR* 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_VkSwapchainKHR_u64(&forMarshaling->swapchain, &cgen_var_0,
-                                                             1);
-    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
-    vkStream->write((uint32_t*)&forMarshaling->imageIndex, sizeof(uint32_t));
-}
-
-void unmarshal_VkBindImageMemorySwapchainInfoKHR(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    VkBindImageMemorySwapchainInfoKHR* 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_VkSwapchainKHR(
-        &cgen_var_0, (VkSwapchainKHR*)&forUnmarshaling->swapchain, 1);
-    vkStream->read((uint32_t*)&forUnmarshaling->imageIndex, sizeof(uint32_t));
-}
-
-void marshal_VkAcquireNextImageInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                       const VkAcquireNextImageInfoKHR* 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_VkSwapchainKHR_u64(&forMarshaling->swapchain, &cgen_var_0,
-                                                             1);
-    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
-    vkStream->write((uint64_t*)&forMarshaling->timeout, sizeof(uint64_t));
-    uint64_t cgen_var_1;
-    vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_1,
-                                                          1);
-    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
-    uint64_t cgen_var_2;
-    vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_2, 1);
-    vkStream->write((uint64_t*)&cgen_var_2, 1 * 8);
-    vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
-}
-
-void unmarshal_VkAcquireNextImageInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                         VkAcquireNextImageInfoKHR* 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_VkSwapchainKHR(
-        &cgen_var_0, (VkSwapchainKHR*)&forUnmarshaling->swapchain, 1);
-    vkStream->read((uint64_t*)&forUnmarshaling->timeout, sizeof(uint64_t));
-    uint64_t cgen_var_1;
-    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkSemaphore(
-        &cgen_var_1, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
-    uint64_t cgen_var_2;
-    vkStream->read((uint64_t*)&cgen_var_2, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_2,
-                                                      (VkFence*)&forUnmarshaling->fence, 1);
-    vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
-}
-
-void marshal_VkDeviceGroupPresentCapabilitiesKHR(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkDeviceGroupPresentCapabilitiesKHR* 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->presentMask,
-                    VK_MAX_DEVICE_GROUP_SIZE * sizeof(uint32_t));
-    vkStream->write((VkDeviceGroupPresentModeFlagsKHR*)&forMarshaling->modes,
-                    sizeof(VkDeviceGroupPresentModeFlagsKHR));
-}
-
-void unmarshal_VkDeviceGroupPresentCapabilitiesKHR(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    VkDeviceGroupPresentCapabilitiesKHR* 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->presentMask,
-                   VK_MAX_DEVICE_GROUP_SIZE * sizeof(uint32_t));
-    vkStream->read((VkDeviceGroupPresentModeFlagsKHR*)&forUnmarshaling->modes,
-                   sizeof(VkDeviceGroupPresentModeFlagsKHR));
-}
-
-void marshal_VkDeviceGroupPresentInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                         const VkDeviceGroupPresentInfoKHR* 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));
-    vkStream->write((const uint32_t*)forMarshaling->pDeviceMasks,
-                    forMarshaling->swapchainCount * sizeof(const uint32_t));
-    vkStream->write((VkDeviceGroupPresentModeFlagBitsKHR*)&forMarshaling->mode,
-                    sizeof(VkDeviceGroupPresentModeFlagBitsKHR));
-}
-
-void unmarshal_VkDeviceGroupPresentInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                           VkDeviceGroupPresentInfoKHR* 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));
-    vkStream->read((uint32_t*)forUnmarshaling->pDeviceMasks,
-                   forUnmarshaling->swapchainCount * sizeof(const uint32_t));
-    vkStream->read((VkDeviceGroupPresentModeFlagBitsKHR*)&forUnmarshaling->mode,
-                   sizeof(VkDeviceGroupPresentModeFlagBitsKHR));
-}
-
-void marshal_VkDeviceGroupSwapchainCreateInfoKHR(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkDeviceGroupSwapchainCreateInfoKHR* 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((VkDeviceGroupPresentModeFlagsKHR*)&forMarshaling->modes,
-                    sizeof(VkDeviceGroupPresentModeFlagsKHR));
-}
-
-void unmarshal_VkDeviceGroupSwapchainCreateInfoKHR(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    VkDeviceGroupSwapchainCreateInfoKHR* 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((VkDeviceGroupPresentModeFlagsKHR*)&forUnmarshaling->modes,
-                   sizeof(VkDeviceGroupPresentModeFlagsKHR));
-}
-
 #endif
 #ifdef VK_KHR_xcb_surface
 #endif
@@ -13014,189 +12659,6 @@
 
 #endif
 #ifdef VK_EXT_swapchain_maintenance1
-void marshal_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* 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->swapchainMaintenance1, sizeof(VkBool32));
-}
-
-void unmarshal_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* 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->swapchainMaintenance1, sizeof(VkBool32));
-}
-
-void marshal_VkSwapchainPresentFenceInfoEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                            const VkSwapchainPresentFenceInfoEXT* 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));
-    if (forMarshaling->swapchainCount) {
-        uint64_t* cgen_var_0;
-        vkStream->alloc((void**)&cgen_var_0, forMarshaling->swapchainCount * 8);
-        vkStream->handleMapping()->mapHandles_VkFence_u64(forMarshaling->pFences, cgen_var_0,
-                                                          forMarshaling->swapchainCount);
-        vkStream->write((uint64_t*)cgen_var_0, forMarshaling->swapchainCount * 8);
-    }
-}
-
-void unmarshal_VkSwapchainPresentFenceInfoEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                              VkSwapchainPresentFenceInfoEXT* 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));
-    if (forUnmarshaling->swapchainCount) {
-        uint64_t* cgen_var_0;
-        vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->swapchainCount * 8);
-        vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->swapchainCount * 8);
-        vkStream->handleMapping()->mapHandles_u64_VkFence(
-            cgen_var_0, (VkFence*)forUnmarshaling->pFences, forUnmarshaling->swapchainCount);
-    }
-}
-
-void marshal_VkSwapchainPresentModesCreateInfoEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkSwapchainPresentModesCreateInfoEXT* 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->presentModeCount, sizeof(uint32_t));
-    vkStream->write((const VkPresentModeKHR*)forMarshaling->pPresentModes,
-                    forMarshaling->presentModeCount * sizeof(const VkPresentModeKHR));
-}
-
-void unmarshal_VkSwapchainPresentModesCreateInfoEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    VkSwapchainPresentModesCreateInfoEXT* 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->presentModeCount, sizeof(uint32_t));
-    vkStream->read((VkPresentModeKHR*)forUnmarshaling->pPresentModes,
-                   forUnmarshaling->presentModeCount * sizeof(const VkPresentModeKHR));
-}
-
-void marshal_VkSwapchainPresentModeInfoEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                           const VkSwapchainPresentModeInfoEXT* 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));
-    vkStream->write((const VkPresentModeKHR*)forMarshaling->pPresentModes,
-                    forMarshaling->swapchainCount * sizeof(const VkPresentModeKHR));
-}
-
-void unmarshal_VkSwapchainPresentModeInfoEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                             VkSwapchainPresentModeInfoEXT* 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));
-    vkStream->read((VkPresentModeKHR*)forUnmarshaling->pPresentModes,
-                   forUnmarshaling->swapchainCount * sizeof(const VkPresentModeKHR));
-}
-
-void marshal_VkSwapchainPresentScalingCreateInfoEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkSwapchainPresentScalingCreateInfoEXT* 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((VkPresentScalingFlagsEXT*)&forMarshaling->scalingBehavior,
-                    sizeof(VkPresentScalingFlagsEXT));
-    vkStream->write((VkPresentGravityFlagsEXT*)&forMarshaling->presentGravityX,
-                    sizeof(VkPresentGravityFlagsEXT));
-    vkStream->write((VkPresentGravityFlagsEXT*)&forMarshaling->presentGravityY,
-                    sizeof(VkPresentGravityFlagsEXT));
-}
-
-void unmarshal_VkSwapchainPresentScalingCreateInfoEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    VkSwapchainPresentScalingCreateInfoEXT* 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((VkPresentScalingFlagsEXT*)&forUnmarshaling->scalingBehavior,
-                   sizeof(VkPresentScalingFlagsEXT));
-    vkStream->read((VkPresentGravityFlagsEXT*)&forUnmarshaling->presentGravityX,
-                   sizeof(VkPresentGravityFlagsEXT));
-    vkStream->read((VkPresentGravityFlagsEXT*)&forUnmarshaling->presentGravityY,
-                   sizeof(VkPresentGravityFlagsEXT));
-}
-
-void marshal_VkReleaseSwapchainImagesInfoEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                             const VkReleaseSwapchainImagesInfoEXT* 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_VkSwapchainKHR_u64(&forMarshaling->swapchain, &cgen_var_0,
-                                                             1);
-    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
-    vkStream->write((uint32_t*)&forMarshaling->imageIndexCount, sizeof(uint32_t));
-    vkStream->write((const uint32_t*)forMarshaling->pImageIndices,
-                    forMarshaling->imageIndexCount * sizeof(const uint32_t));
-}
-
-void unmarshal_VkReleaseSwapchainImagesInfoEXT(VulkanStreamGuest* vkStream,
-                                               VkStructureType rootType,
-                                               VkReleaseSwapchainImagesInfoEXT* 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_VkSwapchainKHR(
-        &cgen_var_0, (VkSwapchainKHR*)&forUnmarshaling->swapchain, 1);
-    vkStream->read((uint32_t*)&forUnmarshaling->imageIndexCount, sizeof(uint32_t));
-    vkStream->read((uint32_t*)forUnmarshaling->pImageIndices,
-                   forUnmarshaling->imageIndexCount * sizeof(const uint32_t));
-}
-
 #endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 #endif
@@ -14524,32 +13986,6 @@
             break;
         }
 #endif
-#ifdef VK_KHR_swapchain
-        case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: {
-            marshal_VkImageSwapchainCreateInfoKHR(
-                vkStream, rootType,
-                reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>(structExtension));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: {
-            marshal_VkBindImageMemorySwapchainInfoKHR(
-                vkStream, rootType,
-                reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>(structExtension));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: {
-            marshal_VkDeviceGroupPresentInfoKHR(
-                vkStream, rootType,
-                reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>(structExtension));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: {
-            marshal_VkDeviceGroupSwapchainCreateInfoKHR(
-                vkStream, rootType,
-                reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension));
-            break;
-        }
-#endif
 #ifdef VK_KHR_dynamic_rendering
         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
             marshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
@@ -14751,39 +14187,6 @@
             break;
         }
 #endif
-#ifdef VK_EXT_swapchain_maintenance1
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: {
-            marshal_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-                vkStream, rootType,
-                reinterpret_cast<const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT*>(
-                    structExtension));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: {
-            marshal_VkSwapchainPresentFenceInfoEXT(
-                vkStream, rootType,
-                reinterpret_cast<const VkSwapchainPresentFenceInfoEXT*>(structExtension));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: {
-            marshal_VkSwapchainPresentModesCreateInfoEXT(
-                vkStream, rootType,
-                reinterpret_cast<const VkSwapchainPresentModesCreateInfoEXT*>(structExtension));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: {
-            marshal_VkSwapchainPresentModeInfoEXT(
-                vkStream, rootType,
-                reinterpret_cast<const VkSwapchainPresentModeInfoEXT*>(structExtension));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: {
-            marshal_VkSwapchainPresentScalingCreateInfoEXT(
-                vkStream, rootType,
-                reinterpret_cast<const VkSwapchainPresentScalingCreateInfoEXT*>(structExtension));
-            break;
-        }
-#endif
 #ifdef VK_EXT_texel_buffer_alignment
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
             marshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
@@ -15645,32 +15048,6 @@
             break;
         }
 #endif
-#ifdef VK_KHR_swapchain
-        case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: {
-            unmarshal_VkImageSwapchainCreateInfoKHR(
-                vkStream, rootType,
-                reinterpret_cast<VkImageSwapchainCreateInfoKHR*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: {
-            unmarshal_VkBindImageMemorySwapchainInfoKHR(
-                vkStream, rootType,
-                reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: {
-            unmarshal_VkDeviceGroupPresentInfoKHR(
-                vkStream, rootType,
-                reinterpret_cast<VkDeviceGroupPresentInfoKHR*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: {
-            unmarshal_VkDeviceGroupSwapchainCreateInfoKHR(
-                vkStream, rootType,
-                reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension_out));
-            break;
-        }
-#endif
 #ifdef VK_KHR_dynamic_rendering
         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
             unmarshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
@@ -15867,39 +15244,6 @@
             break;
         }
 #endif
-#ifdef VK_EXT_swapchain_maintenance1
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: {
-            unmarshal_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-                vkStream, rootType,
-                reinterpret_cast<VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT*>(
-                    structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: {
-            unmarshal_VkSwapchainPresentFenceInfoEXT(
-                vkStream, rootType,
-                reinterpret_cast<VkSwapchainPresentFenceInfoEXT*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: {
-            unmarshal_VkSwapchainPresentModesCreateInfoEXT(
-                vkStream, rootType,
-                reinterpret_cast<VkSwapchainPresentModesCreateInfoEXT*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: {
-            unmarshal_VkSwapchainPresentModeInfoEXT(
-                vkStream, rootType,
-                reinterpret_cast<VkSwapchainPresentModeInfoEXT*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: {
-            unmarshal_VkSwapchainPresentScalingCreateInfoEXT(
-                vkStream, rootType,
-                reinterpret_cast<VkSwapchainPresentScalingCreateInfoEXT*>(structExtension_out));
-            break;
-        }
-#endif
 #ifdef VK_EXT_texel_buffer_alignment
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
             unmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
@@ -16559,35 +15903,6 @@
             return "OP_vkGetDescriptorSetLayoutSupport";
         }
 #endif
-#ifdef VK_KHR_swapchain
-        case OP_vkCreateSwapchainKHR: {
-            return "OP_vkCreateSwapchainKHR";
-        }
-        case OP_vkDestroySwapchainKHR: {
-            return "OP_vkDestroySwapchainKHR";
-        }
-        case OP_vkGetSwapchainImagesKHR: {
-            return "OP_vkGetSwapchainImagesKHR";
-        }
-        case OP_vkAcquireNextImageKHR: {
-            return "OP_vkAcquireNextImageKHR";
-        }
-        case OP_vkQueuePresentKHR: {
-            return "OP_vkQueuePresentKHR";
-        }
-        case OP_vkGetDeviceGroupPresentCapabilitiesKHR: {
-            return "OP_vkGetDeviceGroupPresentCapabilitiesKHR";
-        }
-        case OP_vkGetDeviceGroupSurfacePresentModesKHR: {
-            return "OP_vkGetDeviceGroupSurfacePresentModesKHR";
-        }
-        case OP_vkGetPhysicalDevicePresentRectanglesKHR: {
-            return "OP_vkGetPhysicalDevicePresentRectanglesKHR";
-        }
-        case OP_vkAcquireNextImage2KHR: {
-            return "OP_vkAcquireNextImage2KHR";
-        }
-#endif
 #ifdef VK_KHR_get_physical_device_properties2
         case OP_vkGetPhysicalDeviceFeatures2KHR: {
             return "OP_vkGetPhysicalDeviceFeatures2KHR";
@@ -16914,13 +16229,6 @@
         case OP_vkCmdSetPrimitiveRestartEnable: {
             return "OP_vkCmdSetPrimitiveRestartEnable";
         }
-#endif
-#ifdef VK_EXT_swapchain_maintenance1
-        case OP_vkReleaseSwapchainImagesEXT: {
-            return "OP_vkReleaseSwapchainImagesEXT";
-        }
-#endif
-#ifdef VK_VERSION_1_3
         case OP_vkCmdSetEvent2: {
             return "OP_vkCmdSetEvent2";
         }
diff --git a/guest/vulkan_enc/goldfish_vk_marshaling_guest.h b/guest/vulkan_enc/goldfish_vk_marshaling_guest.h
index 563fec0..fae1b9a 100644
--- a/guest/vulkan_enc/goldfish_vk_marshaling_guest.h
+++ b/guest/vulkan_enc/goldfish_vk_marshaling_guest.h
@@ -2206,69 +2206,6 @@
 #ifdef VK_KHR_surface
 #endif
 #ifdef VK_KHR_swapchain
-void marshal_VkSwapchainCreateInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                      const VkSwapchainCreateInfoKHR* forMarshaling);
-
-void unmarshal_VkSwapchainCreateInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                        VkSwapchainCreateInfoKHR* forUnmarshaling);
-
-void marshal_VkPresentInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                              const VkPresentInfoKHR* forMarshaling);
-
-void unmarshal_VkPresentInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                VkPresentInfoKHR* forUnmarshaling);
-
-#define OP_vkCreateSwapchainKHR 20170
-#define OP_vkDestroySwapchainKHR 20171
-#define OP_vkGetSwapchainImagesKHR 20172
-#define OP_vkAcquireNextImageKHR 20173
-#define OP_vkQueuePresentKHR 20174
-void marshal_VkImageSwapchainCreateInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                           const VkImageSwapchainCreateInfoKHR* forMarshaling);
-
-void unmarshal_VkImageSwapchainCreateInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                             VkImageSwapchainCreateInfoKHR* forUnmarshaling);
-
-void marshal_VkBindImageMemorySwapchainInfoKHR(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkBindImageMemorySwapchainInfoKHR* forMarshaling);
-
-void unmarshal_VkBindImageMemorySwapchainInfoKHR(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    VkBindImageMemorySwapchainInfoKHR* forUnmarshaling);
-
-void marshal_VkAcquireNextImageInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                       const VkAcquireNextImageInfoKHR* forMarshaling);
-
-void unmarshal_VkAcquireNextImageInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                         VkAcquireNextImageInfoKHR* forUnmarshaling);
-
-void marshal_VkDeviceGroupPresentCapabilitiesKHR(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkDeviceGroupPresentCapabilitiesKHR* forMarshaling);
-
-void unmarshal_VkDeviceGroupPresentCapabilitiesKHR(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    VkDeviceGroupPresentCapabilitiesKHR* forUnmarshaling);
-
-void marshal_VkDeviceGroupPresentInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                         const VkDeviceGroupPresentInfoKHR* forMarshaling);
-
-void unmarshal_VkDeviceGroupPresentInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                           VkDeviceGroupPresentInfoKHR* forUnmarshaling);
-
-void marshal_VkDeviceGroupSwapchainCreateInfoKHR(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkDeviceGroupSwapchainCreateInfoKHR* forMarshaling);
-
-void unmarshal_VkDeviceGroupSwapchainCreateInfoKHR(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    VkDeviceGroupSwapchainCreateInfoKHR* forUnmarshaling);
-
-#define OP_vkGetDeviceGroupPresentCapabilitiesKHR 20175
-#define OP_vkGetDeviceGroupSurfacePresentModesKHR 20176
-#define OP_vkGetPhysicalDevicePresentRectanglesKHR 20177
-#define OP_vkAcquireNextImage2KHR 20178
 #endif
 #ifdef VK_KHR_xcb_surface
 #endif
@@ -3461,50 +3398,6 @@
 #define OP_vkGetImageSubresourceLayout2EXT 296152177
 #endif
 #ifdef VK_EXT_swapchain_maintenance1
-void marshal_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* forMarshaling);
-
-void unmarshal_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* forUnmarshaling);
-
-void marshal_VkSwapchainPresentFenceInfoEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                            const VkSwapchainPresentFenceInfoEXT* forMarshaling);
-
-void unmarshal_VkSwapchainPresentFenceInfoEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                              VkSwapchainPresentFenceInfoEXT* forUnmarshaling);
-
-void marshal_VkSwapchainPresentModesCreateInfoEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkSwapchainPresentModesCreateInfoEXT* forMarshaling);
-
-void unmarshal_VkSwapchainPresentModesCreateInfoEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    VkSwapchainPresentModesCreateInfoEXT* forUnmarshaling);
-
-void marshal_VkSwapchainPresentModeInfoEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                           const VkSwapchainPresentModeInfoEXT* forMarshaling);
-
-void unmarshal_VkSwapchainPresentModeInfoEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                             VkSwapchainPresentModeInfoEXT* forUnmarshaling);
-
-void marshal_VkSwapchainPresentScalingCreateInfoEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkSwapchainPresentScalingCreateInfoEXT* forMarshaling);
-
-void unmarshal_VkSwapchainPresentScalingCreateInfoEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    VkSwapchainPresentScalingCreateInfoEXT* forUnmarshaling);
-
-void marshal_VkReleaseSwapchainImagesInfoEXT(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                             const VkReleaseSwapchainImagesInfoEXT* forMarshaling);
-
-void unmarshal_VkReleaseSwapchainImagesInfoEXT(VulkanStreamGuest* vkStream,
-                                               VkStructureType rootType,
-                                               VkReleaseSwapchainImagesInfoEXT* forUnmarshaling);
-
-#define OP_vkReleaseSwapchainImagesEXT 230545069
 #endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures,
diff --git a/guest/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp b/guest/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp
index 2dab02c..246ed95 100644
--- a/guest/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp
+++ b/guest/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp
@@ -7294,237 +7294,6 @@
 #ifdef VK_KHR_surface
 #endif
 #ifdef VK_KHR_swapchain
-void reservedmarshal_VkSwapchainCreateInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                              const VkSwapchainCreateInfoKHR* 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, (VkSwapchainCreateFlagsKHR*)&forMarshaling->flags,
-           sizeof(VkSwapchainCreateFlagsKHR));
-    *ptr += sizeof(VkSwapchainCreateFlagsKHR);
-    uint64_t cgen_var_0;
-    *&cgen_var_0 = get_host_u64_VkSurfaceKHR((*&forMarshaling->surface));
-    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (uint32_t*)&forMarshaling->minImageCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (VkFormat*)&forMarshaling->imageFormat, sizeof(VkFormat));
-    *ptr += sizeof(VkFormat);
-    memcpy(*ptr, (VkColorSpaceKHR*)&forMarshaling->imageColorSpace, sizeof(VkColorSpaceKHR));
-    *ptr += sizeof(VkColorSpaceKHR);
-    reservedmarshal_VkExtent2D(vkStream, rootType, (VkExtent2D*)(&forMarshaling->imageExtent), ptr);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->imageArrayLayers, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (VkImageUsageFlags*)&forMarshaling->imageUsage, sizeof(VkImageUsageFlags));
-    *ptr += sizeof(VkImageUsageFlags);
-    memcpy(*ptr, (VkSharingMode*)&forMarshaling->imageSharingMode, sizeof(VkSharingMode));
-    *ptr += sizeof(VkSharingMode);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    // WARNING PTR CHECK
-    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
-    memcpy((*ptr), &cgen_var_1, 8);
-    gfxstream::guest::Stream::toBe64((uint8_t*)(*ptr));
-    *ptr += 8;
-    if (forMarshaling->pQueueFamilyIndices) {
-        memcpy(*ptr, (const uint32_t*)forMarshaling->pQueueFamilyIndices,
-               forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
-        *ptr += forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t);
-    }
-    memcpy(*ptr, (VkSurfaceTransformFlagBitsKHR*)&forMarshaling->preTransform,
-           sizeof(VkSurfaceTransformFlagBitsKHR));
-    *ptr += sizeof(VkSurfaceTransformFlagBitsKHR);
-    memcpy(*ptr, (VkCompositeAlphaFlagBitsKHR*)&forMarshaling->compositeAlpha,
-           sizeof(VkCompositeAlphaFlagBitsKHR));
-    *ptr += sizeof(VkCompositeAlphaFlagBitsKHR);
-    memcpy(*ptr, (VkPresentModeKHR*)&forMarshaling->presentMode, sizeof(VkPresentModeKHR));
-    *ptr += sizeof(VkPresentModeKHR);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->clipped, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    uint64_t cgen_var_2;
-    *&cgen_var_2 = get_host_u64_VkSwapchainKHR((*&forMarshaling->oldSwapchain));
-    memcpy(*ptr, (uint64_t*)&cgen_var_2, 1 * 8);
-    *ptr += 1 * 8;
-}
-
-void reservedmarshal_VkPresentInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                      const VkPresentInfoKHR* 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->waitSemaphoreCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    if (forMarshaling->waitSemaphoreCount) {
-        uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
-        if (forMarshaling) {
-            for (uint32_t k = 0; k < forMarshaling->waitSemaphoreCount; ++k) {
-                uint64_t tmpval = get_host_u64_VkSemaphore(forMarshaling->pWaitSemaphores[k]);
-                memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
-            }
-        }
-        *ptr += 8 * forMarshaling->waitSemaphoreCount;
-    }
-    memcpy(*ptr, (uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    if (forMarshaling->swapchainCount) {
-        uint8_t* cgen_var_1_ptr = (uint8_t*)(*ptr);
-        if (forMarshaling) {
-            for (uint32_t k = 0; k < forMarshaling->swapchainCount; ++k) {
-                uint64_t tmpval = get_host_u64_VkSwapchainKHR(forMarshaling->pSwapchains[k]);
-                memcpy(cgen_var_1_ptr + k * 8, &tmpval, sizeof(uint64_t));
-            }
-        }
-        *ptr += 8 * forMarshaling->swapchainCount;
-    }
-    memcpy(*ptr, (const uint32_t*)forMarshaling->pImageIndices,
-           forMarshaling->swapchainCount * sizeof(const uint32_t));
-    *ptr += forMarshaling->swapchainCount * sizeof(const uint32_t);
-    // WARNING PTR CHECK
-    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pResults;
-    memcpy((*ptr), &cgen_var_2, 8);
-    gfxstream::guest::Stream::toBe64((uint8_t*)(*ptr));
-    *ptr += 8;
-    if (forMarshaling->pResults) {
-        memcpy(*ptr, (VkResult*)forMarshaling->pResults,
-               forMarshaling->swapchainCount * sizeof(VkResult));
-        *ptr += forMarshaling->swapchainCount * sizeof(VkResult);
-    }
-}
-
-void reservedmarshal_VkImageSwapchainCreateInfoKHR(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkImageSwapchainCreateInfoKHR* 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_VkSwapchainKHR((*&forMarshaling->swapchain));
-    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
-    *ptr += 1 * 8;
-}
-
-void reservedmarshal_VkBindImageMemorySwapchainInfoKHR(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkBindImageMemorySwapchainInfoKHR* 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_VkSwapchainKHR((*&forMarshaling->swapchain));
-    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (uint32_t*)&forMarshaling->imageIndex, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-}
-
-void reservedmarshal_VkAcquireNextImageInfoKHR(VulkanStreamGuest* vkStream,
-                                               VkStructureType rootType,
-                                               const VkAcquireNextImageInfoKHR* 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_VkSwapchainKHR((*&forMarshaling->swapchain));
-    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (uint64_t*)&forMarshaling->timeout, sizeof(uint64_t));
-    *ptr += sizeof(uint64_t);
-    uint64_t cgen_var_1;
-    *&cgen_var_1 = get_host_u64_VkSemaphore((*&forMarshaling->semaphore));
-    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
-    *ptr += 1 * 8;
-    uint64_t cgen_var_2;
-    *&cgen_var_2 = get_host_u64_VkFence((*&forMarshaling->fence));
-    memcpy(*ptr, (uint64_t*)&cgen_var_2, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-}
-
-void reservedmarshal_VkDeviceGroupPresentCapabilitiesKHR(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkDeviceGroupPresentCapabilitiesKHR* 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->presentMask,
-           VK_MAX_DEVICE_GROUP_SIZE * sizeof(uint32_t));
-    *ptr += VK_MAX_DEVICE_GROUP_SIZE * sizeof(uint32_t);
-    memcpy(*ptr, (VkDeviceGroupPresentModeFlagsKHR*)&forMarshaling->modes,
-           sizeof(VkDeviceGroupPresentModeFlagsKHR));
-    *ptr += sizeof(VkDeviceGroupPresentModeFlagsKHR);
-}
-
-void reservedmarshal_VkDeviceGroupPresentInfoKHR(VulkanStreamGuest* vkStream,
-                                                 VkStructureType rootType,
-                                                 const VkDeviceGroupPresentInfoKHR* 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);
-    memcpy(*ptr, (const uint32_t*)forMarshaling->pDeviceMasks,
-           forMarshaling->swapchainCount * sizeof(const uint32_t));
-    *ptr += forMarshaling->swapchainCount * sizeof(const uint32_t);
-    memcpy(*ptr, (VkDeviceGroupPresentModeFlagBitsKHR*)&forMarshaling->mode,
-           sizeof(VkDeviceGroupPresentModeFlagBitsKHR));
-    *ptr += sizeof(VkDeviceGroupPresentModeFlagBitsKHR);
-}
-
-void reservedmarshal_VkDeviceGroupSwapchainCreateInfoKHR(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkDeviceGroupSwapchainCreateInfoKHR* 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, (VkDeviceGroupPresentModeFlagsKHR*)&forMarshaling->modes,
-           sizeof(VkDeviceGroupPresentModeFlagsKHR));
-    *ptr += sizeof(VkDeviceGroupPresentModeFlagsKHR);
-}
-
 #endif
 #ifdef VK_KHR_xcb_surface
 #endif
@@ -8741,126 +8510,6 @@
 
 #endif
 #ifdef VK_EXT_swapchain_maintenance1
-void reservedmarshal_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* 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->swapchainMaintenance1, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-}
-
-void reservedmarshal_VkSwapchainPresentFenceInfoEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkSwapchainPresentFenceInfoEXT* 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);
-    if (forMarshaling->swapchainCount) {
-        uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
-        if (forMarshaling) {
-            for (uint32_t k = 0; k < forMarshaling->swapchainCount; ++k) {
-                uint64_t tmpval = get_host_u64_VkFence(forMarshaling->pFences[k]);
-                memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
-            }
-        }
-        *ptr += 8 * forMarshaling->swapchainCount;
-    }
-}
-
-void reservedmarshal_VkSwapchainPresentModesCreateInfoEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkSwapchainPresentModesCreateInfoEXT* 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->presentModeCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (const VkPresentModeKHR*)forMarshaling->pPresentModes,
-           forMarshaling->presentModeCount * sizeof(const VkPresentModeKHR));
-    *ptr += forMarshaling->presentModeCount * sizeof(const VkPresentModeKHR);
-}
-
-void reservedmarshal_VkSwapchainPresentModeInfoEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkSwapchainPresentModeInfoEXT* 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);
-    memcpy(*ptr, (const VkPresentModeKHR*)forMarshaling->pPresentModes,
-           forMarshaling->swapchainCount * sizeof(const VkPresentModeKHR));
-    *ptr += forMarshaling->swapchainCount * sizeof(const VkPresentModeKHR);
-}
-
-void reservedmarshal_VkSwapchainPresentScalingCreateInfoEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkSwapchainPresentScalingCreateInfoEXT* 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, (VkPresentScalingFlagsEXT*)&forMarshaling->scalingBehavior,
-           sizeof(VkPresentScalingFlagsEXT));
-    *ptr += sizeof(VkPresentScalingFlagsEXT);
-    memcpy(*ptr, (VkPresentGravityFlagsEXT*)&forMarshaling->presentGravityX,
-           sizeof(VkPresentGravityFlagsEXT));
-    *ptr += sizeof(VkPresentGravityFlagsEXT);
-    memcpy(*ptr, (VkPresentGravityFlagsEXT*)&forMarshaling->presentGravityY,
-           sizeof(VkPresentGravityFlagsEXT));
-    *ptr += sizeof(VkPresentGravityFlagsEXT);
-}
-
-void reservedmarshal_VkReleaseSwapchainImagesInfoEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkReleaseSwapchainImagesInfoEXT* 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_VkSwapchainKHR((*&forMarshaling->swapchain));
-    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (uint32_t*)&forMarshaling->imageIndexCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (const uint32_t*)forMarshaling->pImageIndices,
-           forMarshaling->imageIndexCount * sizeof(const uint32_t));
-    *ptr += forMarshaling->imageIndexCount * sizeof(const uint32_t);
-}
-
 #endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 #endif
@@ -10041,32 +9690,6 @@
             break;
         }
 #endif
-#ifdef VK_KHR_swapchain
-        case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: {
-            reservedmarshal_VkImageSwapchainCreateInfoKHR(
-                vkStream, rootType,
-                reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>(structExtension), ptr);
-            break;
-        }
-        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: {
-            reservedmarshal_VkBindImageMemorySwapchainInfoKHR(
-                vkStream, rootType,
-                reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>(structExtension), ptr);
-            break;
-        }
-        case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: {
-            reservedmarshal_VkDeviceGroupPresentInfoKHR(
-                vkStream, rootType,
-                reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>(structExtension), ptr);
-            break;
-        }
-        case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: {
-            reservedmarshal_VkDeviceGroupSwapchainCreateInfoKHR(
-                vkStream, rootType,
-                reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension), ptr);
-            break;
-        }
-#endif
 #ifdef VK_KHR_dynamic_rendering
         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
             reservedmarshal_VkRenderingFragmentShadingRateAttachmentInfoKHR(
@@ -10287,42 +9910,6 @@
             break;
         }
 #endif
-#ifdef VK_EXT_swapchain_maintenance1
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: {
-            reservedmarshal_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-                vkStream, rootType,
-                reinterpret_cast<const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT*>(
-                    structExtension),
-                ptr);
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: {
-            reservedmarshal_VkSwapchainPresentFenceInfoEXT(
-                vkStream, rootType,
-                reinterpret_cast<const VkSwapchainPresentFenceInfoEXT*>(structExtension), ptr);
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: {
-            reservedmarshal_VkSwapchainPresentModesCreateInfoEXT(
-                vkStream, rootType,
-                reinterpret_cast<const VkSwapchainPresentModesCreateInfoEXT*>(structExtension),
-                ptr);
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: {
-            reservedmarshal_VkSwapchainPresentModeInfoEXT(
-                vkStream, rootType,
-                reinterpret_cast<const VkSwapchainPresentModeInfoEXT*>(structExtension), ptr);
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: {
-            reservedmarshal_VkSwapchainPresentScalingCreateInfoEXT(
-                vkStream, rootType,
-                reinterpret_cast<const VkSwapchainPresentScalingCreateInfoEXT*>(structExtension),
-                ptr);
-            break;
-        }
-#endif
 #ifdef VK_EXT_texel_buffer_alignment
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
             reservedmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
diff --git a/guest/vulkan_enc/goldfish_vk_reserved_marshaling_guest.h b/guest/vulkan_enc/goldfish_vk_reserved_marshaling_guest.h
index 072a133..4cedd05 100644
--- a/guest/vulkan_enc/goldfish_vk_reserved_marshaling_guest.h
+++ b/guest/vulkan_enc/goldfish_vk_reserved_marshaling_guest.h
@@ -1159,39 +1159,6 @@
 #ifdef VK_KHR_surface
 #endif
 #ifdef VK_KHR_swapchain
-void reservedmarshal_VkSwapchainCreateInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                              const VkSwapchainCreateInfoKHR* forMarshaling,
-                                              uint8_t** ptr);
-
-void reservedmarshal_VkPresentInfoKHR(VulkanStreamGuest* vkStream, VkStructureType rootType,
-                                      const VkPresentInfoKHR* forMarshaling, uint8_t** ptr);
-
-void reservedmarshal_VkImageSwapchainCreateInfoKHR(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkImageSwapchainCreateInfoKHR* forMarshaling, uint8_t** ptr);
-
-void reservedmarshal_VkBindImageMemorySwapchainInfoKHR(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkBindImageMemorySwapchainInfoKHR* forMarshaling, uint8_t** ptr);
-
-void reservedmarshal_VkAcquireNextImageInfoKHR(VulkanStreamGuest* vkStream,
-                                               VkStructureType rootType,
-                                               const VkAcquireNextImageInfoKHR* forMarshaling,
-                                               uint8_t** ptr);
-
-void reservedmarshal_VkDeviceGroupPresentCapabilitiesKHR(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkDeviceGroupPresentCapabilitiesKHR* forMarshaling, uint8_t** ptr);
-
-void reservedmarshal_VkDeviceGroupPresentInfoKHR(VulkanStreamGuest* vkStream,
-                                                 VkStructureType rootType,
-                                                 const VkDeviceGroupPresentInfoKHR* forMarshaling,
-                                                 uint8_t** ptr);
-
-void reservedmarshal_VkDeviceGroupSwapchainCreateInfoKHR(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkDeviceGroupSwapchainCreateInfoKHR* forMarshaling, uint8_t** ptr);
-
 #endif
 #ifdef VK_KHR_xcb_surface
 #endif
@@ -1862,30 +1829,6 @@
 
 #endif
 #ifdef VK_EXT_swapchain_maintenance1
-void reservedmarshal_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* forMarshaling, uint8_t** ptr);
-
-void reservedmarshal_VkSwapchainPresentFenceInfoEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkSwapchainPresentFenceInfoEXT* forMarshaling, uint8_t** ptr);
-
-void reservedmarshal_VkSwapchainPresentModesCreateInfoEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkSwapchainPresentModesCreateInfoEXT* forMarshaling, uint8_t** ptr);
-
-void reservedmarshal_VkSwapchainPresentModeInfoEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkSwapchainPresentModeInfoEXT* forMarshaling, uint8_t** ptr);
-
-void reservedmarshal_VkSwapchainPresentScalingCreateInfoEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkSwapchainPresentScalingCreateInfoEXT* forMarshaling, uint8_t** ptr);
-
-void reservedmarshal_VkReleaseSwapchainImagesInfoEXT(
-    VulkanStreamGuest* vkStream, VkStructureType rootType,
-    const VkReleaseSwapchainImagesInfoEXT* forMarshaling, uint8_t** ptr);
-
 #endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures,
diff --git a/guest/vulkan_enc/goldfish_vk_transform_guest.cpp b/guest/vulkan_enc/goldfish_vk_transform_guest.cpp
index 02f5c20..82e7351 100644
--- a/guest/vulkan_enc/goldfish_vk_transform_guest.cpp
+++ b/guest/vulkan_enc/goldfish_vk_transform_guest.cpp
@@ -6089,152 +6089,6 @@
 #ifdef VK_KHR_surface
 #endif
 #ifdef VK_KHR_swapchain
-void transform_tohost_VkSwapchainCreateInfoKHR(ResourceTracker* resourceTracker,
-                                               VkSwapchainCreateInfoKHR* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->imageExtent));
-}
-
-void transform_fromhost_VkSwapchainCreateInfoKHR(ResourceTracker* resourceTracker,
-                                                 VkSwapchainCreateInfoKHR* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->imageExtent));
-}
-
-void transform_tohost_VkPresentInfoKHR(ResourceTracker* resourceTracker,
-                                       VkPresentInfoKHR* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkPresentInfoKHR(ResourceTracker* resourceTracker,
-                                         VkPresentInfoKHR* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkImageSwapchainCreateInfoKHR(ResourceTracker* resourceTracker,
-                                                    VkImageSwapchainCreateInfoKHR* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkImageSwapchainCreateInfoKHR(ResourceTracker* resourceTracker,
-                                                      VkImageSwapchainCreateInfoKHR* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkBindImageMemorySwapchainInfoKHR(
-    ResourceTracker* resourceTracker, VkBindImageMemorySwapchainInfoKHR* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkBindImageMemorySwapchainInfoKHR(
-    ResourceTracker* resourceTracker, VkBindImageMemorySwapchainInfoKHR* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkAcquireNextImageInfoKHR(ResourceTracker* resourceTracker,
-                                                VkAcquireNextImageInfoKHR* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkAcquireNextImageInfoKHR(ResourceTracker* resourceTracker,
-                                                  VkAcquireNextImageInfoKHR* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkDeviceGroupPresentCapabilitiesKHR(
-    ResourceTracker* resourceTracker, VkDeviceGroupPresentCapabilitiesKHR* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkDeviceGroupPresentCapabilitiesKHR(
-    ResourceTracker* resourceTracker, VkDeviceGroupPresentCapabilitiesKHR* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkDeviceGroupPresentInfoKHR(ResourceTracker* resourceTracker,
-                                                  VkDeviceGroupPresentInfoKHR* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkDeviceGroupPresentInfoKHR(ResourceTracker* resourceTracker,
-                                                    VkDeviceGroupPresentInfoKHR* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkDeviceGroupSwapchainCreateInfoKHR(
-    ResourceTracker* resourceTracker, VkDeviceGroupSwapchainCreateInfoKHR* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkDeviceGroupSwapchainCreateInfoKHR(
-    ResourceTracker* resourceTracker, VkDeviceGroupSwapchainCreateInfoKHR* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
 #endif
 #ifdef VK_KHR_xcb_surface
 #endif
@@ -7445,116 +7299,6 @@
 
 #endif
 #ifdef VK_EXT_swapchain_maintenance1
-void transform_tohost_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkSwapchainPresentFenceInfoEXT(ResourceTracker* resourceTracker,
-                                                     VkSwapchainPresentFenceInfoEXT* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkSwapchainPresentFenceInfoEXT(
-    ResourceTracker* resourceTracker, VkSwapchainPresentFenceInfoEXT* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkSwapchainPresentModesCreateInfoEXT(
-    ResourceTracker* resourceTracker, VkSwapchainPresentModesCreateInfoEXT* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkSwapchainPresentModesCreateInfoEXT(
-    ResourceTracker* resourceTracker, VkSwapchainPresentModesCreateInfoEXT* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkSwapchainPresentModeInfoEXT(ResourceTracker* resourceTracker,
-                                                    VkSwapchainPresentModeInfoEXT* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkSwapchainPresentModeInfoEXT(ResourceTracker* resourceTracker,
-                                                      VkSwapchainPresentModeInfoEXT* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkSwapchainPresentScalingCreateInfoEXT(
-    ResourceTracker* resourceTracker, VkSwapchainPresentScalingCreateInfoEXT* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkSwapchainPresentScalingCreateInfoEXT(
-    ResourceTracker* resourceTracker, VkSwapchainPresentScalingCreateInfoEXT* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkReleaseSwapchainImagesInfoEXT(
-    ResourceTracker* resourceTracker, VkReleaseSwapchainImagesInfoEXT* toTransform) {
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext) {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkReleaseSwapchainImagesInfoEXT(
-    ResourceTracker* resourceTracker, VkReleaseSwapchainImagesInfoEXT* 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
 #endif
@@ -8657,32 +8401,6 @@
             break;
         }
 #endif
-#ifdef VK_KHR_swapchain
-        case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: {
-            transform_tohost_VkImageSwapchainCreateInfoKHR(
-                resourceTracker,
-                reinterpret_cast<VkImageSwapchainCreateInfoKHR*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: {
-            transform_tohost_VkBindImageMemorySwapchainInfoKHR(
-                resourceTracker,
-                reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: {
-            transform_tohost_VkDeviceGroupPresentInfoKHR(
-                resourceTracker,
-                reinterpret_cast<VkDeviceGroupPresentInfoKHR*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: {
-            transform_tohost_VkDeviceGroupSwapchainCreateInfoKHR(
-                resourceTracker,
-                reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension_out));
-            break;
-        }
-#endif
 #ifdef VK_KHR_dynamic_rendering
         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
             transform_tohost_VkRenderingFragmentShadingRateAttachmentInfoKHR(
@@ -8869,39 +8587,6 @@
             break;
         }
 #endif
-#ifdef VK_EXT_swapchain_maintenance1
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: {
-            transform_tohost_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-                resourceTracker,
-                reinterpret_cast<VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT*>(
-                    structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: {
-            transform_tohost_VkSwapchainPresentFenceInfoEXT(
-                resourceTracker,
-                reinterpret_cast<VkSwapchainPresentFenceInfoEXT*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: {
-            transform_tohost_VkSwapchainPresentModesCreateInfoEXT(
-                resourceTracker,
-                reinterpret_cast<VkSwapchainPresentModesCreateInfoEXT*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: {
-            transform_tohost_VkSwapchainPresentModeInfoEXT(
-                resourceTracker,
-                reinterpret_cast<VkSwapchainPresentModeInfoEXT*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: {
-            transform_tohost_VkSwapchainPresentScalingCreateInfoEXT(
-                resourceTracker,
-                reinterpret_cast<VkSwapchainPresentScalingCreateInfoEXT*>(structExtension_out));
-            break;
-        }
-#endif
 #ifdef VK_EXT_texel_buffer_alignment
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
             transform_tohost_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
@@ -9725,32 +9410,6 @@
             break;
         }
 #endif
-#ifdef VK_KHR_swapchain
-        case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: {
-            transform_fromhost_VkImageSwapchainCreateInfoKHR(
-                resourceTracker,
-                reinterpret_cast<VkImageSwapchainCreateInfoKHR*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: {
-            transform_fromhost_VkBindImageMemorySwapchainInfoKHR(
-                resourceTracker,
-                reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: {
-            transform_fromhost_VkDeviceGroupPresentInfoKHR(
-                resourceTracker,
-                reinterpret_cast<VkDeviceGroupPresentInfoKHR*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: {
-            transform_fromhost_VkDeviceGroupSwapchainCreateInfoKHR(
-                resourceTracker,
-                reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(structExtension_out));
-            break;
-        }
-#endif
 #ifdef VK_KHR_dynamic_rendering
         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
             transform_fromhost_VkRenderingFragmentShadingRateAttachmentInfoKHR(
@@ -9937,39 +9596,6 @@
             break;
         }
 #endif
-#ifdef VK_EXT_swapchain_maintenance1
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: {
-            transform_fromhost_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-                resourceTracker,
-                reinterpret_cast<VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT*>(
-                    structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: {
-            transform_fromhost_VkSwapchainPresentFenceInfoEXT(
-                resourceTracker,
-                reinterpret_cast<VkSwapchainPresentFenceInfoEXT*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: {
-            transform_fromhost_VkSwapchainPresentModesCreateInfoEXT(
-                resourceTracker,
-                reinterpret_cast<VkSwapchainPresentModesCreateInfoEXT*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: {
-            transform_fromhost_VkSwapchainPresentModeInfoEXT(
-                resourceTracker,
-                reinterpret_cast<VkSwapchainPresentModeInfoEXT*>(structExtension_out));
-            break;
-        }
-        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: {
-            transform_fromhost_VkSwapchainPresentScalingCreateInfoEXT(
-                resourceTracker,
-                reinterpret_cast<VkSwapchainPresentScalingCreateInfoEXT*>(structExtension_out));
-            break;
-        }
-#endif
 #ifdef VK_EXT_texel_buffer_alignment
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
             transform_fromhost_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
diff --git a/guest/vulkan_enc/goldfish_vk_transform_guest.h b/guest/vulkan_enc/goldfish_vk_transform_guest.h
index 4af1555..e45db10 100644
--- a/guest/vulkan_enc/goldfish_vk_transform_guest.h
+++ b/guest/vulkan_enc/goldfish_vk_transform_guest.h
@@ -1762,54 +1762,6 @@
 #ifdef VK_KHR_surface
 #endif
 #ifdef VK_KHR_swapchain
-void transform_tohost_VkSwapchainCreateInfoKHR(ResourceTracker* resourceTracker,
-                                               VkSwapchainCreateInfoKHR* toTransform);
-
-void transform_fromhost_VkSwapchainCreateInfoKHR(ResourceTracker* resourceTracker,
-                                                 VkSwapchainCreateInfoKHR* toTransform);
-
-void transform_tohost_VkPresentInfoKHR(ResourceTracker* resourceTracker,
-                                       VkPresentInfoKHR* toTransform);
-
-void transform_fromhost_VkPresentInfoKHR(ResourceTracker* resourceTracker,
-                                         VkPresentInfoKHR* toTransform);
-
-void transform_tohost_VkImageSwapchainCreateInfoKHR(ResourceTracker* resourceTracker,
-                                                    VkImageSwapchainCreateInfoKHR* toTransform);
-
-void transform_fromhost_VkImageSwapchainCreateInfoKHR(ResourceTracker* resourceTracker,
-                                                      VkImageSwapchainCreateInfoKHR* toTransform);
-
-void transform_tohost_VkBindImageMemorySwapchainInfoKHR(
-    ResourceTracker* resourceTracker, VkBindImageMemorySwapchainInfoKHR* toTransform);
-
-void transform_fromhost_VkBindImageMemorySwapchainInfoKHR(
-    ResourceTracker* resourceTracker, VkBindImageMemorySwapchainInfoKHR* toTransform);
-
-void transform_tohost_VkAcquireNextImageInfoKHR(ResourceTracker* resourceTracker,
-                                                VkAcquireNextImageInfoKHR* toTransform);
-
-void transform_fromhost_VkAcquireNextImageInfoKHR(ResourceTracker* resourceTracker,
-                                                  VkAcquireNextImageInfoKHR* toTransform);
-
-void transform_tohost_VkDeviceGroupPresentCapabilitiesKHR(
-    ResourceTracker* resourceTracker, VkDeviceGroupPresentCapabilitiesKHR* toTransform);
-
-void transform_fromhost_VkDeviceGroupPresentCapabilitiesKHR(
-    ResourceTracker* resourceTracker, VkDeviceGroupPresentCapabilitiesKHR* toTransform);
-
-void transform_tohost_VkDeviceGroupPresentInfoKHR(ResourceTracker* resourceTracker,
-                                                  VkDeviceGroupPresentInfoKHR* toTransform);
-
-void transform_fromhost_VkDeviceGroupPresentInfoKHR(ResourceTracker* resourceTracker,
-                                                    VkDeviceGroupPresentInfoKHR* toTransform);
-
-void transform_tohost_VkDeviceGroupSwapchainCreateInfoKHR(
-    ResourceTracker* resourceTracker, VkDeviceGroupSwapchainCreateInfoKHR* toTransform);
-
-void transform_fromhost_VkDeviceGroupSwapchainCreateInfoKHR(
-    ResourceTracker* resourceTracker, VkDeviceGroupSwapchainCreateInfoKHR* toTransform);
-
 #endif
 #ifdef VK_KHR_xcb_surface
 #endif
@@ -2926,44 +2878,6 @@
 
 #endif
 #ifdef VK_EXT_swapchain_maintenance1
-void transform_tohost_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* toTransform);
-
-void transform_fromhost_VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* toTransform);
-
-void transform_tohost_VkSwapchainPresentFenceInfoEXT(ResourceTracker* resourceTracker,
-                                                     VkSwapchainPresentFenceInfoEXT* toTransform);
-
-void transform_fromhost_VkSwapchainPresentFenceInfoEXT(ResourceTracker* resourceTracker,
-                                                       VkSwapchainPresentFenceInfoEXT* toTransform);
-
-void transform_tohost_VkSwapchainPresentModesCreateInfoEXT(
-    ResourceTracker* resourceTracker, VkSwapchainPresentModesCreateInfoEXT* toTransform);
-
-void transform_fromhost_VkSwapchainPresentModesCreateInfoEXT(
-    ResourceTracker* resourceTracker, VkSwapchainPresentModesCreateInfoEXT* toTransform);
-
-void transform_tohost_VkSwapchainPresentModeInfoEXT(ResourceTracker* resourceTracker,
-                                                    VkSwapchainPresentModeInfoEXT* toTransform);
-
-void transform_fromhost_VkSwapchainPresentModeInfoEXT(ResourceTracker* resourceTracker,
-                                                      VkSwapchainPresentModeInfoEXT* toTransform);
-
-void transform_tohost_VkSwapchainPresentScalingCreateInfoEXT(
-    ResourceTracker* resourceTracker, VkSwapchainPresentScalingCreateInfoEXT* toTransform);
-
-void transform_fromhost_VkSwapchainPresentScalingCreateInfoEXT(
-    ResourceTracker* resourceTracker, VkSwapchainPresentScalingCreateInfoEXT* toTransform);
-
-void transform_tohost_VkReleaseSwapchainImagesInfoEXT(ResourceTracker* resourceTracker,
-                                                      VkReleaseSwapchainImagesInfoEXT* toTransform);
-
-void transform_fromhost_VkReleaseSwapchainImagesInfoEXT(
-    ResourceTracker* resourceTracker, VkReleaseSwapchainImagesInfoEXT* toTransform);
-
 #endif
 #ifdef VK_EXT_shader_demote_to_helper_invocation
 DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures,