[base] Tracing library for Vulkan (guest, atrace)

bug: 125506300

- Vulkan function entry points are all traced
- VulkanStream read/write traced
- Rename guest VulkanStream to VulkanStreamGuest

Change-Id: I21e882f7ba3a9ce0c8f4d2d575b19078405f0862
diff --git a/BUILD.gn b/BUILD.gn
index 4efc6d8..117d514 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -12,6 +12,8 @@
     "android-emu/android/base/files/Stream.h",
     "android-emu/android/base/files/StreamSerializing.cpp",
     "android-emu/android/base/files/StreamSerializing.h",
+    "android-emu/android/base/Tracing.cpp",
+    "android-emu/android/base/Tracing.h",
     "shared/OpenglCodecCommon/ChecksumCalculator.cpp",
     "shared/OpenglCodecCommon/ChecksumCalculator.h",
     "shared/OpenglCodecCommon/glUtils.cpp",
@@ -45,8 +47,8 @@
     "system/vulkan_enc/VkEncoder.h",
     "system/vulkan_enc/VulkanHandleMapping.cpp",
     "system/vulkan_enc/VulkanHandleMapping.h",
-    "system/vulkan_enc/VulkanStream.cpp",
-    "system/vulkan_enc/VulkanStream.h",
+    "system/vulkan_enc/VulkanStreamGuest.cpp",
+    "system/vulkan_enc/VulkanStreamGuest.h",
     "system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp",
     "system/vulkan_enc/goldfish_vk_deepcopy_guest.h",
     "system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp",
diff --git a/android-emu/Android.mk b/android-emu/Android.mk
index 51837d0..5bc64dd 100644
--- a/android-emu/Android.mk
+++ b/android-emu/Android.mk
@@ -18,6 +18,7 @@
     android/base/Pool.cpp \
     android/base/StringFormat.cpp \
     android/base/SubAllocator.cpp \
+    android/base/Tracing.cpp \
     android/utils/debug.c \
 
 $(call emugl-end-module)
diff --git a/android-emu/CMakeLists.txt b/android-emu/CMakeLists.txt
index 2d377cc..2691b00 100644
--- a/android-emu/CMakeLists.txt
+++ b/android-emu/CMakeLists.txt
@@ -1,8 +1,8 @@
 # This is an autogenerated file! Do not edit!
 # instead run make from .../device/generic/goldfish-opengl
 # which will re-generate this file.
-android_validate_sha256("${GOLDFISH_DEVICE_ROOT}/android-emu/Android.mk" "2d1fb60d778a81ae1a2d6ea96bc46f111bde70877d160fd0dde63dcfec2e7ce4")
-set(androidemu_src android/base/AlignedBuf.cpp android/base/files/MemStream.cpp android/base/files/Stream.cpp android/base/files/StreamSerializing.cpp android/base/Pool.cpp android/base/StringFormat.cpp android/base/SubAllocator.cpp android/utils/debug.c)
+android_validate_sha256("${GOLDFISH_DEVICE_ROOT}/android-emu/Android.mk" "7bcf3be99b2f95203390d08a2710b7bdc2bd6248403850b1f713a39869b2dfd1")
+set(androidemu_src android/base/AlignedBuf.cpp android/base/files/MemStream.cpp android/base/files/Stream.cpp android/base/files/StreamSerializing.cpp android/base/Pool.cpp android/base/StringFormat.cpp android/base/SubAllocator.cpp android/base/Tracing.cpp android/utils/debug.c)
 android_add_library(androidemu)
 target_include_directories(androidemu PRIVATE ${GOLDFISH_DEVICE_ROOT}/android-emu ${GOLDFISH_DEVICE_ROOT}/./host/include/libOpenglRender ${GOLDFISH_DEVICE_ROOT}/./system/include ${GOLDFISH_DEVICE_ROOT}/./../../../external/qemu/android/android-emugl/guest)
 target_compile_definitions(androidemu PRIVATE "-DWITH_GLES2" "-DPLATFORM_SDK_VERSION=29" "-DGOLDFISH_HIDL_GRALLOC" "-DEMULATOR_OPENGL_POST_O=1" "-DHOST_BUILD" "-DANDROID" "-DGL_GLEXT_PROTOTYPES" "-DPAGE_SIZE=4096" "-DGOLDFISH_VULKAN" "-DLOG_TAG=\"androidemu\"")
diff --git a/android-emu/android/base/Tracing.cpp b/android-emu/android/base/Tracing.cpp
new file mode 100644
index 0000000..652e13c
--- /dev/null
+++ b/android-emu/android/base/Tracing.cpp
@@ -0,0 +1,50 @@
+// Copyright (C) 2019 The Android Open Source Project
+// Copyright (C) 2019 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+#include "android/base/Tracing.h"
+
+#if defined(__ANDROID__) || defined(HOST_BUILD)
+
+#include <cutils/trace.h>
+
+#define VK_TRACE_TAG ATRACE_TAG_GRAPHICS
+
+namespace android {
+namespace base {
+
+void ScopedTrace::beginTraceImpl(const char* name) {
+    atrace_begin(VK_TRACE_TAG, name);
+}
+
+void ScopedTrace::endTraceImpl() {
+    atrace_end(VK_TRACE_TAG);
+}
+
+} // namespace base
+} // namespace android
+
+#elif __Fuchsia__
+
+namespace android {
+namespace base {
+
+// TODO
+void ScopedTrace::beginTraceImpl(const char*) { }
+void ScopedTrace::endTraceImpl()
+
+} // namespace base
+} // namespace android
+
+#endif
+
diff --git a/android-emu/android/base/Tracing.h b/android-emu/android/base/Tracing.h
new file mode 100644
index 0000000..9044b72
--- /dev/null
+++ b/android-emu/android/base/Tracing.h
@@ -0,0 +1,43 @@
+// Copyright (C) 2019 The Android Open Source Project
+// Copyright (C) 2019 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+#pragma once
+
+// Library to perform tracing. Talks to platform-specific
+// tracing libraries.
+namespace android {
+namespace base {
+
+class ScopedTrace {
+public:
+    ScopedTrace(const char* name) {
+        beginTraceImpl(name);
+    }
+
+    ~ScopedTrace() {
+        endTraceImpl();
+    }
+private:
+    void beginTraceImpl(const char* name);
+    void endTraceImpl();
+};
+
+} // namespace base
+} // namespace android
+
+#define __AEMU_GENSYM2(x,y) x##y
+#define __AEMU_GENSYM1(x,y) __AEMU_GENSYM2(x,y)
+#define AEMU_GENSYM(x) __AEMU_GENSYM1(x,__COUNTER__)
+
+#define AEMU_SCOPED_TRACE(tag) __attribute__ ((unused)) android::base::ScopedTrace AEMU_GENSYM(aemuScopedTrace_)(tag)
\ No newline at end of file
diff --git a/system/vulkan/func_table.cpp b/system/vulkan/func_table.cpp
index 2e89514..ff12cfe 100644
--- a/system/vulkan/func_table.cpp
+++ b/system/vulkan/func_table.cpp
@@ -47,6 +47,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkInstance* pInstance)
 {
+    AEMU_SCOPED_TRACE("vkCreateInstance");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateInstance_VkResult_return = (VkResult)0;
     vkCreateInstance_VkResult_return = vkEnc->vkCreateInstance(pCreateInfo, pAllocator, pInstance);
@@ -56,6 +57,7 @@
     VkInstance instance,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyInstance");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyInstance(instance, pAllocator);
 }
@@ -64,6 +66,7 @@
     uint32_t* pPhysicalDeviceCount,
     VkPhysicalDevice* pPhysicalDevices)
 {
+    AEMU_SCOPED_TRACE("vkEnumeratePhysicalDevices");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkEnumeratePhysicalDevices_VkResult_return = (VkResult)0;
     auto resources = ResourceTracker::get();
@@ -74,6 +77,7 @@
     VkPhysicalDevice physicalDevice,
     VkPhysicalDeviceFeatures* pFeatures)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceFeatures(physicalDevice, pFeatures);
 }
@@ -82,6 +86,7 @@
     VkFormat format,
     VkFormatProperties* pFormatProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties);
 }
@@ -94,6 +99,7 @@
     VkImageCreateFlags flags,
     VkImageFormatProperties* pImageFormatProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetPhysicalDeviceImageFormatProperties_VkResult_return = (VkResult)0;
     vkGetPhysicalDeviceImageFormatProperties_VkResult_return = vkEnc->vkGetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
@@ -103,6 +109,7 @@
     VkPhysicalDevice physicalDevice,
     VkPhysicalDeviceProperties* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceProperties(physicalDevice, pProperties);
 }
@@ -111,6 +118,7 @@
     uint32_t* pQueueFamilyPropertyCount,
     VkQueueFamilyProperties* pQueueFamilyProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
 }
@@ -118,6 +126,7 @@
     VkPhysicalDevice physicalDevice,
     VkPhysicalDeviceMemoryProperties* pMemoryProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties);
 }
@@ -125,6 +134,7 @@
     VkInstance instance,
     const char* pName)
 {
+    AEMU_SCOPED_TRACE("vkGetInstanceProcAddr");
     auto vkEnc = HostConnection::get()->vkEncoder();
     PFN_vkVoidFunction vkGetInstanceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
     vkGetInstanceProcAddr_PFN_vkVoidFunction_return = vkEnc->vkGetInstanceProcAddr(instance, pName);
@@ -134,6 +144,7 @@
     VkDevice device,
     const char* pName)
 {
+    AEMU_SCOPED_TRACE("vkGetDeviceProcAddr");
     auto vkEnc = HostConnection::get()->vkEncoder();
     PFN_vkVoidFunction vkGetDeviceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
     vkGetDeviceProcAddr_PFN_vkVoidFunction_return = vkEnc->vkGetDeviceProcAddr(device, pName);
@@ -145,6 +156,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkDevice* pDevice)
 {
+    AEMU_SCOPED_TRACE("vkCreateDevice");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateDevice_VkResult_return = (VkResult)0;
     vkCreateDevice_VkResult_return = vkEnc->vkCreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice);
@@ -154,6 +166,7 @@
     VkDevice device,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyDevice");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyDevice(device, pAllocator);
 }
@@ -162,6 +175,7 @@
     uint32_t* pPropertyCount,
     VkExtensionProperties* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkEnumerateInstanceExtensionProperties");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkEnumerateInstanceExtensionProperties_VkResult_return = (VkResult)0;
     auto resources = ResourceTracker::get();
@@ -174,6 +188,7 @@
     uint32_t* pPropertyCount,
     VkExtensionProperties* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkEnumerateDeviceExtensionProperties");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkEnumerateDeviceExtensionProperties_VkResult_return = (VkResult)0;
     auto resources = ResourceTracker::get();
@@ -184,6 +199,7 @@
     uint32_t* pPropertyCount,
     VkLayerProperties* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkEnumerateInstanceLayerProperties");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkEnumerateInstanceLayerProperties_VkResult_return = (VkResult)0;
     vkEnumerateInstanceLayerProperties_VkResult_return = vkEnc->vkEnumerateInstanceLayerProperties(pPropertyCount, pProperties);
@@ -194,6 +210,7 @@
     uint32_t* pPropertyCount,
     VkLayerProperties* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkEnumerateDeviceLayerProperties");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkEnumerateDeviceLayerProperties_VkResult_return = (VkResult)0;
     vkEnumerateDeviceLayerProperties_VkResult_return = vkEnc->vkEnumerateDeviceLayerProperties(physicalDevice, pPropertyCount, pProperties);
@@ -205,6 +222,7 @@
     uint32_t queueIndex,
     VkQueue* pQueue)
 {
+    AEMU_SCOPED_TRACE("vkGetDeviceQueue");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue);
 }
@@ -214,6 +232,7 @@
     const VkSubmitInfo* pSubmits,
     VkFence fence)
 {
+    AEMU_SCOPED_TRACE("vkQueueSubmit");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkQueueSubmit_VkResult_return = (VkResult)0;
     vkQueueSubmit_VkResult_return = vkEnc->vkQueueSubmit(queue, submitCount, pSubmits, fence);
@@ -222,6 +241,7 @@
 static VkResult entry_vkQueueWaitIdle(
     VkQueue queue)
 {
+    AEMU_SCOPED_TRACE("vkQueueWaitIdle");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkQueueWaitIdle_VkResult_return = (VkResult)0;
     vkQueueWaitIdle_VkResult_return = vkEnc->vkQueueWaitIdle(queue);
@@ -230,6 +250,7 @@
 static VkResult entry_vkDeviceWaitIdle(
     VkDevice device)
 {
+    AEMU_SCOPED_TRACE("vkDeviceWaitIdle");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkDeviceWaitIdle_VkResult_return = (VkResult)0;
     vkDeviceWaitIdle_VkResult_return = vkEnc->vkDeviceWaitIdle(device);
@@ -241,6 +262,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkDeviceMemory* pMemory)
 {
+    AEMU_SCOPED_TRACE("vkAllocateMemory");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkAllocateMemory_VkResult_return = (VkResult)0;
     auto resources = ResourceTracker::get();
@@ -252,6 +274,7 @@
     VkDeviceMemory memory,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkFreeMemory");
     auto vkEnc = HostConnection::get()->vkEncoder();
     auto resources = ResourceTracker::get();
     resources->on_vkFreeMemory(vkEnc, device, memory, pAllocator);
@@ -264,6 +287,7 @@
     VkMemoryMapFlags flags,
     void** ppData)
 {
+    AEMU_SCOPED_TRACE("vkMapMemory");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkMapMemory_VkResult_return = (VkResult)0;
     vkMapMemory_VkResult_return = vkEnc->vkMapMemory(device, memory, offset, size, flags, ppData);
@@ -273,6 +297,7 @@
     VkDevice device,
     VkDeviceMemory memory)
 {
+    AEMU_SCOPED_TRACE("vkUnmapMemory");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkUnmapMemory(device, memory);
 }
@@ -281,6 +306,7 @@
     uint32_t memoryRangeCount,
     const VkMappedMemoryRange* pMemoryRanges)
 {
+    AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkFlushMappedMemoryRanges_VkResult_return = (VkResult)0;
     vkFlushMappedMemoryRanges_VkResult_return = vkEnc->vkFlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
@@ -291,6 +317,7 @@
     uint32_t memoryRangeCount,
     const VkMappedMemoryRange* pMemoryRanges)
 {
+    AEMU_SCOPED_TRACE("vkInvalidateMappedMemoryRanges");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkInvalidateMappedMemoryRanges_VkResult_return = (VkResult)0;
     vkInvalidateMappedMemoryRanges_VkResult_return = vkEnc->vkInvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
@@ -301,6 +328,7 @@
     VkDeviceMemory memory,
     VkDeviceSize* pCommittedMemoryInBytes)
 {
+    AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes);
 }
@@ -310,6 +338,7 @@
     VkDeviceMemory memory,
     VkDeviceSize memoryOffset)
 {
+    AEMU_SCOPED_TRACE("vkBindBufferMemory");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkBindBufferMemory_VkResult_return = (VkResult)0;
     auto resources = ResourceTracker::get();
@@ -322,6 +351,7 @@
     VkDeviceMemory memory,
     VkDeviceSize memoryOffset)
 {
+    AEMU_SCOPED_TRACE("vkBindImageMemory");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkBindImageMemory_VkResult_return = (VkResult)0;
     auto resources = ResourceTracker::get();
@@ -333,6 +363,7 @@
     VkBuffer buffer,
     VkMemoryRequirements* pMemoryRequirements)
 {
+    AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements");
     auto vkEnc = HostConnection::get()->vkEncoder();
     auto resources = ResourceTracker::get();
     resources->on_vkGetBufferMemoryRequirements(vkEnc, device, buffer, pMemoryRequirements);
@@ -342,6 +373,7 @@
     VkImage image,
     VkMemoryRequirements* pMemoryRequirements)
 {
+    AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements");
     auto vkEnc = HostConnection::get()->vkEncoder();
     auto resources = ResourceTracker::get();
     resources->on_vkGetImageMemoryRequirements(vkEnc, device, image, pMemoryRequirements);
@@ -352,6 +384,7 @@
     uint32_t* pSparseMemoryRequirementCount,
     VkSparseImageMemoryRequirements* pSparseMemoryRequirements)
 {
+    AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
 }
@@ -365,6 +398,7 @@
     uint32_t* pPropertyCount,
     VkSparseImageFormatProperties* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
 }
@@ -374,6 +408,7 @@
     const VkBindSparseInfo* pBindInfo,
     VkFence fence)
 {
+    AEMU_SCOPED_TRACE("vkQueueBindSparse");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkQueueBindSparse_VkResult_return = (VkResult)0;
     vkQueueBindSparse_VkResult_return = vkEnc->vkQueueBindSparse(queue, bindInfoCount, pBindInfo, fence);
@@ -385,6 +420,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkFence* pFence)
 {
+    AEMU_SCOPED_TRACE("vkCreateFence");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateFence_VkResult_return = (VkResult)0;
     vkCreateFence_VkResult_return = vkEnc->vkCreateFence(device, pCreateInfo, pAllocator, pFence);
@@ -395,6 +431,7 @@
     VkFence fence,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyFence");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyFence(device, fence, pAllocator);
 }
@@ -403,6 +440,7 @@
     uint32_t fenceCount,
     const VkFence* pFences)
 {
+    AEMU_SCOPED_TRACE("vkResetFences");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkResetFences_VkResult_return = (VkResult)0;
     vkResetFences_VkResult_return = vkEnc->vkResetFences(device, fenceCount, pFences);
@@ -412,6 +450,7 @@
     VkDevice device,
     VkFence fence)
 {
+    AEMU_SCOPED_TRACE("vkGetFenceStatus");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetFenceStatus_VkResult_return = (VkResult)0;
     vkGetFenceStatus_VkResult_return = vkEnc->vkGetFenceStatus(device, fence);
@@ -424,6 +463,7 @@
     VkBool32 waitAll,
     uint64_t timeout)
 {
+    AEMU_SCOPED_TRACE("vkWaitForFences");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkWaitForFences_VkResult_return = (VkResult)0;
     vkWaitForFences_VkResult_return = vkEnc->vkWaitForFences(device, fenceCount, pFences, waitAll, timeout);
@@ -435,6 +475,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSemaphore* pSemaphore)
 {
+    AEMU_SCOPED_TRACE("vkCreateSemaphore");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateSemaphore_VkResult_return = (VkResult)0;
     auto resources = ResourceTracker::get();
@@ -446,6 +487,7 @@
     VkSemaphore semaphore,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroySemaphore");
     auto vkEnc = HostConnection::get()->vkEncoder();
     auto resources = ResourceTracker::get();
     resources->on_vkDestroySemaphore(vkEnc, device, semaphore, pAllocator);
@@ -456,6 +498,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkEvent* pEvent)
 {
+    AEMU_SCOPED_TRACE("vkCreateEvent");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateEvent_VkResult_return = (VkResult)0;
     vkCreateEvent_VkResult_return = vkEnc->vkCreateEvent(device, pCreateInfo, pAllocator, pEvent);
@@ -466,6 +509,7 @@
     VkEvent event,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyEvent");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyEvent(device, event, pAllocator);
 }
@@ -473,6 +517,7 @@
     VkDevice device,
     VkEvent event)
 {
+    AEMU_SCOPED_TRACE("vkGetEventStatus");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetEventStatus_VkResult_return = (VkResult)0;
     vkGetEventStatus_VkResult_return = vkEnc->vkGetEventStatus(device, event);
@@ -482,6 +527,7 @@
     VkDevice device,
     VkEvent event)
 {
+    AEMU_SCOPED_TRACE("vkSetEvent");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkSetEvent_VkResult_return = (VkResult)0;
     vkSetEvent_VkResult_return = vkEnc->vkSetEvent(device, event);
@@ -491,6 +537,7 @@
     VkDevice device,
     VkEvent event)
 {
+    AEMU_SCOPED_TRACE("vkResetEvent");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkResetEvent_VkResult_return = (VkResult)0;
     vkResetEvent_VkResult_return = vkEnc->vkResetEvent(device, event);
@@ -502,6 +549,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkQueryPool* pQueryPool)
 {
+    AEMU_SCOPED_TRACE("vkCreateQueryPool");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateQueryPool_VkResult_return = (VkResult)0;
     vkCreateQueryPool_VkResult_return = vkEnc->vkCreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool);
@@ -512,6 +560,7 @@
     VkQueryPool queryPool,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyQueryPool");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyQueryPool(device, queryPool, pAllocator);
 }
@@ -525,6 +574,7 @@
     VkDeviceSize stride,
     VkQueryResultFlags flags)
 {
+    AEMU_SCOPED_TRACE("vkGetQueryPoolResults");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetQueryPoolResults_VkResult_return = (VkResult)0;
     vkGetQueryPoolResults_VkResult_return = vkEnc->vkGetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags);
@@ -536,6 +586,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkBuffer* pBuffer)
 {
+    AEMU_SCOPED_TRACE("vkCreateBuffer");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateBuffer_VkResult_return = (VkResult)0;
     auto resources = ResourceTracker::get();
@@ -547,6 +598,7 @@
     VkBuffer buffer,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyBuffer");
     auto vkEnc = HostConnection::get()->vkEncoder();
     auto resources = ResourceTracker::get();
     resources->on_vkDestroyBuffer(vkEnc, device, buffer, pAllocator);
@@ -557,6 +609,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkBufferView* pView)
 {
+    AEMU_SCOPED_TRACE("vkCreateBufferView");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateBufferView_VkResult_return = (VkResult)0;
     vkCreateBufferView_VkResult_return = vkEnc->vkCreateBufferView(device, pCreateInfo, pAllocator, pView);
@@ -567,6 +620,7 @@
     VkBufferView bufferView,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyBufferView");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyBufferView(device, bufferView, pAllocator);
 }
@@ -576,6 +630,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkImage* pImage)
 {
+    AEMU_SCOPED_TRACE("vkCreateImage");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateImage_VkResult_return = (VkResult)0;
     auto resources = ResourceTracker::get();
@@ -587,6 +642,7 @@
     VkImage image,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyImage");
     auto vkEnc = HostConnection::get()->vkEncoder();
     auto resources = ResourceTracker::get();
     resources->on_vkDestroyImage(vkEnc, device, image, pAllocator);
@@ -597,6 +653,7 @@
     const VkImageSubresource* pSubresource,
     VkSubresourceLayout* pLayout)
 {
+    AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetImageSubresourceLayout(device, image, pSubresource, pLayout);
 }
@@ -606,6 +663,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkImageView* pView)
 {
+    AEMU_SCOPED_TRACE("vkCreateImageView");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateImageView_VkResult_return = (VkResult)0;
     vkCreateImageView_VkResult_return = vkEnc->vkCreateImageView(device, pCreateInfo, pAllocator, pView);
@@ -616,6 +674,7 @@
     VkImageView imageView,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyImageView");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyImageView(device, imageView, pAllocator);
 }
@@ -625,6 +684,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkShaderModule* pShaderModule)
 {
+    AEMU_SCOPED_TRACE("vkCreateShaderModule");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateShaderModule_VkResult_return = (VkResult)0;
     vkCreateShaderModule_VkResult_return = vkEnc->vkCreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule);
@@ -635,6 +695,7 @@
     VkShaderModule shaderModule,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyShaderModule");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyShaderModule(device, shaderModule, pAllocator);
 }
@@ -644,6 +705,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkPipelineCache* pPipelineCache)
 {
+    AEMU_SCOPED_TRACE("vkCreatePipelineCache");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreatePipelineCache_VkResult_return = (VkResult)0;
     vkCreatePipelineCache_VkResult_return = vkEnc->vkCreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache);
@@ -654,6 +716,7 @@
     VkPipelineCache pipelineCache,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyPipelineCache");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyPipelineCache(device, pipelineCache, pAllocator);
 }
@@ -663,6 +726,7 @@
     size_t* pDataSize,
     void* pData)
 {
+    AEMU_SCOPED_TRACE("vkGetPipelineCacheData");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetPipelineCacheData_VkResult_return = (VkResult)0;
     vkGetPipelineCacheData_VkResult_return = vkEnc->vkGetPipelineCacheData(device, pipelineCache, pDataSize, pData);
@@ -674,6 +738,7 @@
     uint32_t srcCacheCount,
     const VkPipelineCache* pSrcCaches)
 {
+    AEMU_SCOPED_TRACE("vkMergePipelineCaches");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkMergePipelineCaches_VkResult_return = (VkResult)0;
     vkMergePipelineCaches_VkResult_return = vkEnc->vkMergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches);
@@ -687,6 +752,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkPipeline* pPipelines)
 {
+    AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateGraphicsPipelines_VkResult_return = (VkResult)0;
     vkCreateGraphicsPipelines_VkResult_return = vkEnc->vkCreateGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
@@ -700,6 +766,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkPipeline* pPipelines)
 {
+    AEMU_SCOPED_TRACE("vkCreateComputePipelines");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateComputePipelines_VkResult_return = (VkResult)0;
     vkCreateComputePipelines_VkResult_return = vkEnc->vkCreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
@@ -710,6 +777,7 @@
     VkPipeline pipeline,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyPipeline");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyPipeline(device, pipeline, pAllocator);
 }
@@ -719,6 +787,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkPipelineLayout* pPipelineLayout)
 {
+    AEMU_SCOPED_TRACE("vkCreatePipelineLayout");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreatePipelineLayout_VkResult_return = (VkResult)0;
     vkCreatePipelineLayout_VkResult_return = vkEnc->vkCreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout);
@@ -729,6 +798,7 @@
     VkPipelineLayout pipelineLayout,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyPipelineLayout");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyPipelineLayout(device, pipelineLayout, pAllocator);
 }
@@ -738,6 +808,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSampler* pSampler)
 {
+    AEMU_SCOPED_TRACE("vkCreateSampler");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateSampler_VkResult_return = (VkResult)0;
     vkCreateSampler_VkResult_return = vkEnc->vkCreateSampler(device, pCreateInfo, pAllocator, pSampler);
@@ -748,6 +819,7 @@
     VkSampler sampler,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroySampler");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroySampler(device, sampler, pAllocator);
 }
@@ -757,6 +829,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkDescriptorSetLayout* pSetLayout)
 {
+    AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateDescriptorSetLayout_VkResult_return = (VkResult)0;
     vkCreateDescriptorSetLayout_VkResult_return = vkEnc->vkCreateDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout);
@@ -767,6 +840,7 @@
     VkDescriptorSetLayout descriptorSetLayout,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator);
 }
@@ -776,6 +850,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkDescriptorPool* pDescriptorPool)
 {
+    AEMU_SCOPED_TRACE("vkCreateDescriptorPool");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateDescriptorPool_VkResult_return = (VkResult)0;
     vkCreateDescriptorPool_VkResult_return = vkEnc->vkCreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool);
@@ -786,6 +861,7 @@
     VkDescriptorPool descriptorPool,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyDescriptorPool");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyDescriptorPool(device, descriptorPool, pAllocator);
 }
@@ -794,6 +870,7 @@
     VkDescriptorPool descriptorPool,
     VkDescriptorPoolResetFlags flags)
 {
+    AEMU_SCOPED_TRACE("vkResetDescriptorPool");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkResetDescriptorPool_VkResult_return = (VkResult)0;
     vkResetDescriptorPool_VkResult_return = vkEnc->vkResetDescriptorPool(device, descriptorPool, flags);
@@ -804,6 +881,7 @@
     const VkDescriptorSetAllocateInfo* pAllocateInfo,
     VkDescriptorSet* pDescriptorSets)
 {
+    AEMU_SCOPED_TRACE("vkAllocateDescriptorSets");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkAllocateDescriptorSets_VkResult_return = (VkResult)0;
     vkAllocateDescriptorSets_VkResult_return = vkEnc->vkAllocateDescriptorSets(device, pAllocateInfo, pDescriptorSets);
@@ -815,6 +893,7 @@
     uint32_t descriptorSetCount,
     const VkDescriptorSet* pDescriptorSets)
 {
+    AEMU_SCOPED_TRACE("vkFreeDescriptorSets");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkFreeDescriptorSets_VkResult_return = (VkResult)0;
     vkFreeDescriptorSets_VkResult_return = vkEnc->vkFreeDescriptorSets(device, descriptorPool, descriptorSetCount, pDescriptorSets);
@@ -827,6 +906,7 @@
     uint32_t descriptorCopyCount,
     const VkCopyDescriptorSet* pDescriptorCopies)
 {
+    AEMU_SCOPED_TRACE("vkUpdateDescriptorSets");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkUpdateDescriptorSets(device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies);
 }
@@ -836,6 +916,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkFramebuffer* pFramebuffer)
 {
+    AEMU_SCOPED_TRACE("vkCreateFramebuffer");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateFramebuffer_VkResult_return = (VkResult)0;
     vkCreateFramebuffer_VkResult_return = vkEnc->vkCreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer);
@@ -846,6 +927,7 @@
     VkFramebuffer framebuffer,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyFramebuffer");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyFramebuffer(device, framebuffer, pAllocator);
 }
@@ -855,6 +937,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkRenderPass* pRenderPass)
 {
+    AEMU_SCOPED_TRACE("vkCreateRenderPass");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateRenderPass_VkResult_return = (VkResult)0;
     vkCreateRenderPass_VkResult_return = vkEnc->vkCreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass);
@@ -865,6 +948,7 @@
     VkRenderPass renderPass,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyRenderPass");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyRenderPass(device, renderPass, pAllocator);
 }
@@ -873,6 +957,7 @@
     VkRenderPass renderPass,
     VkExtent2D* pGranularity)
 {
+    AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetRenderAreaGranularity(device, renderPass, pGranularity);
 }
@@ -882,6 +967,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkCommandPool* pCommandPool)
 {
+    AEMU_SCOPED_TRACE("vkCreateCommandPool");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateCommandPool_VkResult_return = (VkResult)0;
     vkCreateCommandPool_VkResult_return = vkEnc->vkCreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool);
@@ -892,6 +978,7 @@
     VkCommandPool commandPool,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyCommandPool");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyCommandPool(device, commandPool, pAllocator);
 }
@@ -900,6 +987,7 @@
     VkCommandPool commandPool,
     VkCommandPoolResetFlags flags)
 {
+    AEMU_SCOPED_TRACE("vkResetCommandPool");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkResetCommandPool_VkResult_return = (VkResult)0;
     vkResetCommandPool_VkResult_return = vkEnc->vkResetCommandPool(device, commandPool, flags);
@@ -910,6 +998,7 @@
     const VkCommandBufferAllocateInfo* pAllocateInfo,
     VkCommandBuffer* pCommandBuffers)
 {
+    AEMU_SCOPED_TRACE("vkAllocateCommandBuffers");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkAllocateCommandBuffers_VkResult_return = (VkResult)0;
     vkAllocateCommandBuffers_VkResult_return = vkEnc->vkAllocateCommandBuffers(device, pAllocateInfo, pCommandBuffers);
@@ -921,6 +1010,7 @@
     uint32_t commandBufferCount,
     const VkCommandBuffer* pCommandBuffers)
 {
+    AEMU_SCOPED_TRACE("vkFreeCommandBuffers");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkFreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers);
 }
@@ -928,6 +1018,7 @@
     VkCommandBuffer commandBuffer,
     const VkCommandBufferBeginInfo* pBeginInfo)
 {
+    AEMU_SCOPED_TRACE("vkBeginCommandBuffer");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkBeginCommandBuffer_VkResult_return = (VkResult)0;
     vkBeginCommandBuffer_VkResult_return = vkEnc->vkBeginCommandBuffer(commandBuffer, pBeginInfo);
@@ -936,6 +1027,7 @@
 static VkResult entry_vkEndCommandBuffer(
     VkCommandBuffer commandBuffer)
 {
+    AEMU_SCOPED_TRACE("vkEndCommandBuffer");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkEndCommandBuffer_VkResult_return = (VkResult)0;
     vkEndCommandBuffer_VkResult_return = vkEnc->vkEndCommandBuffer(commandBuffer);
@@ -945,6 +1037,7 @@
     VkCommandBuffer commandBuffer,
     VkCommandBufferResetFlags flags)
 {
+    AEMU_SCOPED_TRACE("vkResetCommandBuffer");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkResetCommandBuffer_VkResult_return = (VkResult)0;
     vkResetCommandBuffer_VkResult_return = vkEnc->vkResetCommandBuffer(commandBuffer, flags);
@@ -955,6 +1048,7 @@
     VkPipelineBindPoint pipelineBindPoint,
     VkPipeline pipeline)
 {
+    AEMU_SCOPED_TRACE("vkCmdBindPipeline");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline);
 }
@@ -964,6 +1058,7 @@
     uint32_t viewportCount,
     const VkViewport* pViewports)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetViewport");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports);
 }
@@ -973,6 +1068,7 @@
     uint32_t scissorCount,
     const VkRect2D* pScissors)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetScissor");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors);
 }
@@ -980,6 +1076,7 @@
     VkCommandBuffer commandBuffer,
     float lineWidth)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetLineWidth");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdSetLineWidth(commandBuffer, lineWidth);
 }
@@ -989,6 +1086,7 @@
     float depthBiasClamp,
     float depthBiasSlopeFactor)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetDepthBias");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
 }
@@ -996,6 +1094,7 @@
     VkCommandBuffer commandBuffer,
     const float blendConstants)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetBlendConstants");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdSetBlendConstants(commandBuffer, blendConstants);
 }
@@ -1004,6 +1103,7 @@
     float minDepthBounds,
     float maxDepthBounds)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetDepthBounds");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds);
 }
@@ -1012,6 +1112,7 @@
     VkStencilFaceFlags faceMask,
     uint32_t compareMask)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdSetStencilCompareMask(commandBuffer, faceMask, compareMask);
 }
@@ -1020,6 +1121,7 @@
     VkStencilFaceFlags faceMask,
     uint32_t writeMask)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdSetStencilWriteMask(commandBuffer, faceMask, writeMask);
 }
@@ -1028,6 +1130,7 @@
     VkStencilFaceFlags faceMask,
     uint32_t reference)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetStencilReference");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdSetStencilReference(commandBuffer, faceMask, reference);
 }
@@ -1041,6 +1144,7 @@
     uint32_t dynamicOffsetCount,
     const uint32_t* pDynamicOffsets)
 {
+    AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
 }
@@ -1050,6 +1154,7 @@
     VkDeviceSize offset,
     VkIndexType indexType)
 {
+    AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdBindIndexBuffer(commandBuffer, buffer, offset, indexType);
 }
@@ -1060,6 +1165,7 @@
     const VkBuffer* pBuffers,
     const VkDeviceSize* pOffsets)
 {
+    AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets);
 }
@@ -1070,6 +1176,7 @@
     uint32_t firstVertex,
     uint32_t firstInstance)
 {
+    AEMU_SCOPED_TRACE("vkCmdDraw");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance);
 }
@@ -1081,6 +1188,7 @@
     int32_t vertexOffset,
     uint32_t firstInstance)
 {
+    AEMU_SCOPED_TRACE("vkCmdDrawIndexed");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
 }
@@ -1091,6 +1199,7 @@
     uint32_t drawCount,
     uint32_t stride)
 {
+    AEMU_SCOPED_TRACE("vkCmdDrawIndirect");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride);
 }
@@ -1101,6 +1210,7 @@
     uint32_t drawCount,
     uint32_t stride)
 {
+    AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride);
 }
@@ -1110,6 +1220,7 @@
     uint32_t groupCountY,
     uint32_t groupCountZ)
 {
+    AEMU_SCOPED_TRACE("vkCmdDispatch");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ);
 }
@@ -1118,6 +1229,7 @@
     VkBuffer buffer,
     VkDeviceSize offset)
 {
+    AEMU_SCOPED_TRACE("vkCmdDispatchIndirect");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdDispatchIndirect(commandBuffer, buffer, offset);
 }
@@ -1128,6 +1240,7 @@
     uint32_t regionCount,
     const VkBufferCopy* pRegions)
 {
+    AEMU_SCOPED_TRACE("vkCmdCopyBuffer");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions);
 }
@@ -1140,6 +1253,7 @@
     uint32_t regionCount,
     const VkImageCopy* pRegions)
 {
+    AEMU_SCOPED_TRACE("vkCmdCopyImage");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
 }
@@ -1153,6 +1267,7 @@
     const VkImageBlit* pRegions,
     VkFilter filter)
 {
+    AEMU_SCOPED_TRACE("vkCmdBlitImage");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter);
 }
@@ -1164,6 +1279,7 @@
     uint32_t regionCount,
     const VkBufferImageCopy* pRegions)
 {
+    AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions);
 }
@@ -1175,6 +1291,7 @@
     uint32_t regionCount,
     const VkBufferImageCopy* pRegions)
 {
+    AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions);
 }
@@ -1185,6 +1302,7 @@
     VkDeviceSize dataSize,
     const void* pData)
 {
+    AEMU_SCOPED_TRACE("vkCmdUpdateBuffer");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData);
 }
@@ -1195,6 +1313,7 @@
     VkDeviceSize size,
     uint32_t data)
 {
+    AEMU_SCOPED_TRACE("vkCmdFillBuffer");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data);
 }
@@ -1206,6 +1325,7 @@
     uint32_t rangeCount,
     const VkImageSubresourceRange* pRanges)
 {
+    AEMU_SCOPED_TRACE("vkCmdClearColorImage");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges);
 }
@@ -1217,6 +1337,7 @@
     uint32_t rangeCount,
     const VkImageSubresourceRange* pRanges)
 {
+    AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges);
 }
@@ -1227,6 +1348,7 @@
     uint32_t rectCount,
     const VkClearRect* pRects)
 {
+    AEMU_SCOPED_TRACE("vkCmdClearAttachments");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects);
 }
@@ -1239,6 +1361,7 @@
     uint32_t regionCount,
     const VkImageResolve* pRegions)
 {
+    AEMU_SCOPED_TRACE("vkCmdResolveImage");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
 }
@@ -1247,6 +1370,7 @@
     VkEvent event,
     VkPipelineStageFlags stageMask)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetEvent");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdSetEvent(commandBuffer, event, stageMask);
 }
@@ -1255,6 +1379,7 @@
     VkEvent event,
     VkPipelineStageFlags stageMask)
 {
+    AEMU_SCOPED_TRACE("vkCmdResetEvent");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdResetEvent(commandBuffer, event, stageMask);
 }
@@ -1271,6 +1396,7 @@
     uint32_t imageMemoryBarrierCount,
     const VkImageMemoryBarrier* pImageMemoryBarriers)
 {
+    AEMU_SCOPED_TRACE("vkCmdWaitEvents");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
 }
@@ -1286,6 +1412,7 @@
     uint32_t imageMemoryBarrierCount,
     const VkImageMemoryBarrier* pImageMemoryBarriers)
 {
+    AEMU_SCOPED_TRACE("vkCmdPipelineBarrier");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
 }
@@ -1295,6 +1422,7 @@
     uint32_t query,
     VkQueryControlFlags flags)
 {
+    AEMU_SCOPED_TRACE("vkCmdBeginQuery");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdBeginQuery(commandBuffer, queryPool, query, flags);
 }
@@ -1303,6 +1431,7 @@
     VkQueryPool queryPool,
     uint32_t query)
 {
+    AEMU_SCOPED_TRACE("vkCmdEndQuery");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdEndQuery(commandBuffer, queryPool, query);
 }
@@ -1312,6 +1441,7 @@
     uint32_t firstQuery,
     uint32_t queryCount)
 {
+    AEMU_SCOPED_TRACE("vkCmdResetQueryPool");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount);
 }
@@ -1321,6 +1451,7 @@
     VkQueryPool queryPool,
     uint32_t query)
 {
+    AEMU_SCOPED_TRACE("vkCmdWriteTimestamp");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query);
 }
@@ -1334,6 +1465,7 @@
     VkDeviceSize stride,
     VkQueryResultFlags flags)
 {
+    AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags);
 }
@@ -1345,6 +1477,7 @@
     uint32_t size,
     const void* pValues)
 {
+    AEMU_SCOPED_TRACE("vkCmdPushConstants");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues);
 }
@@ -1353,6 +1486,7 @@
     const VkRenderPassBeginInfo* pRenderPassBegin,
     VkSubpassContents contents)
 {
+    AEMU_SCOPED_TRACE("vkCmdBeginRenderPass");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents);
 }
@@ -1360,12 +1494,14 @@
     VkCommandBuffer commandBuffer,
     VkSubpassContents contents)
 {
+    AEMU_SCOPED_TRACE("vkCmdNextSubpass");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdNextSubpass(commandBuffer, contents);
 }
 static void entry_vkCmdEndRenderPass(
     VkCommandBuffer commandBuffer)
 {
+    AEMU_SCOPED_TRACE("vkCmdEndRenderPass");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdEndRenderPass(commandBuffer);
 }
@@ -1374,6 +1510,7 @@
     uint32_t commandBufferCount,
     const VkCommandBuffer* pCommandBuffers)
 {
+    AEMU_SCOPED_TRACE("vkCmdExecuteCommands");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
 }
@@ -1382,6 +1519,7 @@
 static VkResult entry_vkEnumerateInstanceVersion(
     uint32_t* pApiVersion)
 {
+    AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkEnumerateInstanceVersion_VkResult_return = (VkResult)0;
     vkEnumerateInstanceVersion_VkResult_return = vkEnc->vkEnumerateInstanceVersion(pApiVersion);
@@ -1392,6 +1530,7 @@
     uint32_t bindInfoCount,
     const VkBindBufferMemoryInfo* pBindInfos)
 {
+    AEMU_SCOPED_TRACE("vkBindBufferMemory2");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkBindBufferMemory2_VkResult_return = (VkResult)0;
     auto resources = ResourceTracker::get();
@@ -1403,6 +1542,7 @@
     uint32_t bindInfoCount,
     const VkBindImageMemoryInfo* pBindInfos)
 {
+    AEMU_SCOPED_TRACE("vkBindImageMemory2");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkBindImageMemory2_VkResult_return = (VkResult)0;
     auto resources = ResourceTracker::get();
@@ -1416,6 +1556,7 @@
     uint32_t remoteDeviceIndex,
     VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
 {
+    AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
 }
@@ -1423,6 +1564,7 @@
     VkCommandBuffer commandBuffer,
     uint32_t deviceMask)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetDeviceMask");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdSetDeviceMask(commandBuffer, deviceMask);
 }
@@ -1435,6 +1577,7 @@
     uint32_t groupCountY,
     uint32_t groupCountZ)
 {
+    AEMU_SCOPED_TRACE("vkCmdDispatchBase");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
 }
@@ -1443,6 +1586,7 @@
     uint32_t* pPhysicalDeviceGroupCount,
     VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
 {
+    AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkEnumeratePhysicalDeviceGroups_VkResult_return = (VkResult)0;
     vkEnumeratePhysicalDeviceGroups_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroups(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
@@ -1453,6 +1597,7 @@
     const VkImageMemoryRequirementsInfo2* pInfo,
     VkMemoryRequirements2* pMemoryRequirements)
 {
+    AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2");
     auto vkEnc = HostConnection::get()->vkEncoder();
     auto resources = ResourceTracker::get();
     resources->on_vkGetImageMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
@@ -1462,6 +1607,7 @@
     const VkBufferMemoryRequirementsInfo2* pInfo,
     VkMemoryRequirements2* pMemoryRequirements)
 {
+    AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2");
     auto vkEnc = HostConnection::get()->vkEncoder();
     auto resources = ResourceTracker::get();
     resources->on_vkGetBufferMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
@@ -1472,6 +1618,7 @@
     uint32_t* pSparseMemoryRequirementCount,
     VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
 {
+    AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
 }
@@ -1479,6 +1626,7 @@
     VkPhysicalDevice physicalDevice,
     VkPhysicalDeviceFeatures2* pFeatures)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceFeatures2(physicalDevice, pFeatures);
 }
@@ -1486,6 +1634,7 @@
     VkPhysicalDevice physicalDevice,
     VkPhysicalDeviceProperties2* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceProperties2(physicalDevice, pProperties);
 }
@@ -1494,6 +1643,7 @@
     VkFormat format,
     VkFormatProperties2* pFormatProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceFormatProperties2(physicalDevice, format, pFormatProperties);
 }
@@ -1502,6 +1652,7 @@
     const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
     VkImageFormatProperties2* pImageFormatProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = (VkResult)0;
     vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = vkEnc->vkGetPhysicalDeviceImageFormatProperties2(physicalDevice, pImageFormatInfo, pImageFormatProperties);
@@ -1512,6 +1663,7 @@
     uint32_t* pQueueFamilyPropertyCount,
     VkQueueFamilyProperties2* pQueueFamilyProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
 }
@@ -1519,6 +1671,7 @@
     VkPhysicalDevice physicalDevice,
     VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceMemoryProperties2(physicalDevice, pMemoryProperties);
 }
@@ -1528,6 +1681,7 @@
     uint32_t* pPropertyCount,
     VkSparseImageFormatProperties2* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
 }
@@ -1536,6 +1690,7 @@
     VkCommandPool commandPool,
     VkCommandPoolTrimFlags flags)
 {
+    AEMU_SCOPED_TRACE("vkTrimCommandPool");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkTrimCommandPool(device, commandPool, flags);
 }
@@ -1544,6 +1699,7 @@
     const VkDeviceQueueInfo2* pQueueInfo,
     VkQueue* pQueue)
 {
+    AEMU_SCOPED_TRACE("vkGetDeviceQueue2");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetDeviceQueue2(device, pQueueInfo, pQueue);
 }
@@ -1553,6 +1709,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSamplerYcbcrConversion* pYcbcrConversion)
 {
+    AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0;
     vkCreateSamplerYcbcrConversion_VkResult_return = vkEnc->vkCreateSamplerYcbcrConversion(device, pCreateInfo, pAllocator, pYcbcrConversion);
@@ -1563,6 +1720,7 @@
     VkSamplerYcbcrConversion ycbcrConversion,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroySamplerYcbcrConversion(device, ycbcrConversion, pAllocator);
 }
@@ -1572,6 +1730,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
 {
+    AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
     vkCreateDescriptorUpdateTemplate_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
@@ -1582,6 +1741,7 @@
     VkDescriptorUpdateTemplate descriptorUpdateTemplate,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator);
 }
@@ -1591,6 +1751,7 @@
     VkDescriptorUpdateTemplate descriptorUpdateTemplate,
     const void* pData)
 {
+    AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkUpdateDescriptorSetWithTemplate(device, descriptorSet, descriptorUpdateTemplate, pData);
 }
@@ -1599,6 +1760,7 @@
     const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
     VkExternalBufferProperties* pExternalBufferProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceExternalBufferProperties(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
 }
@@ -1607,6 +1769,7 @@
     const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
     VkExternalFenceProperties* pExternalFenceProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceExternalFenceProperties(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
 }
@@ -1615,6 +1778,7 @@
     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
     VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceExternalSemaphoreProperties(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
 }
@@ -1623,6 +1787,7 @@
     const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
     VkDescriptorSetLayoutSupport* pSupport)
 {
+    AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport);
 }
@@ -1633,6 +1798,7 @@
     VkSurfaceKHR surface,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroySurfaceKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroySurfaceKHR(instance, surface, pAllocator);
 }
@@ -1642,6 +1808,7 @@
     VkSurfaceKHR surface,
     VkBool32* pSupported)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = (VkResult)0;
     vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
@@ -1652,6 +1819,7 @@
     VkSurfaceKHR surface,
     VkSurfaceCapabilitiesKHR* pSurfaceCapabilities)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0;
     vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
@@ -1663,6 +1831,7 @@
     uint32_t* pSurfaceFormatCount,
     VkSurfaceFormatKHR* pSurfaceFormats)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0;
     vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
@@ -1674,6 +1843,7 @@
     uint32_t* pPresentModeCount,
     VkPresentModeKHR* pPresentModes)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = (VkResult)0;
     vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
@@ -1687,6 +1857,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSwapchainKHR* pSwapchain)
 {
+    AEMU_SCOPED_TRACE("vkCreateSwapchainKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
     vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
@@ -1697,6 +1868,7 @@
     VkSwapchainKHR swapchain,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroySwapchainKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator);
 }
@@ -1706,6 +1878,7 @@
     uint32_t* pSwapchainImageCount,
     VkImage* pSwapchainImages)
 {
+    AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
     vkGetSwapchainImagesKHR_VkResult_return = vkEnc->vkGetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
@@ -1719,6 +1892,7 @@
     VkFence fence,
     uint32_t* pImageIndex)
 {
+    AEMU_SCOPED_TRACE("vkAcquireNextImageKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
     vkAcquireNextImageKHR_VkResult_return = vkEnc->vkAcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
@@ -1728,6 +1902,7 @@
     VkQueue queue,
     const VkPresentInfoKHR* pPresentInfo)
 {
+    AEMU_SCOPED_TRACE("vkQueuePresentKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0;
     vkQueuePresentKHR_VkResult_return = vkEnc->vkQueuePresentKHR(queue, pPresentInfo);
@@ -1737,6 +1912,7 @@
     VkDevice device,
     VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities)
 {
+    AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
     vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = vkEnc->vkGetDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities);
@@ -1747,6 +1923,7 @@
     VkSurfaceKHR surface,
     VkDeviceGroupPresentModeFlagsKHR* pModes)
 {
+    AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
     vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModesKHR(device, surface, pModes);
@@ -1758,6 +1935,7 @@
     uint32_t* pRectCount,
     VkRect2D* pRects)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0;
     vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = vkEnc->vkGetPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, pRectCount, pRects);
@@ -1768,6 +1946,7 @@
     const VkAcquireNextImageInfoKHR* pAcquireInfo,
     uint32_t* pImageIndex)
 {
+    AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
     vkAcquireNextImage2KHR_VkResult_return = vkEnc->vkAcquireNextImage2KHR(device, pAcquireInfo, pImageIndex);
@@ -1780,6 +1959,7 @@
     uint32_t* pPropertyCount,
     VkDisplayPropertiesKHR* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0;
     vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPropertiesKHR(physicalDevice, pPropertyCount, pProperties);
@@ -1790,6 +1970,7 @@
     uint32_t* pPropertyCount,
     VkDisplayPlanePropertiesKHR* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0;
     vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, pPropertyCount, pProperties);
@@ -1801,6 +1982,7 @@
     uint32_t* pDisplayCount,
     VkDisplayKHR* pDisplays)
 {
+    AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = (VkResult)0;
     vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = vkEnc->vkGetDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, pDisplayCount, pDisplays);
@@ -1812,6 +1994,7 @@
     uint32_t* pPropertyCount,
     VkDisplayModePropertiesKHR* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0;
     vkGetDisplayModePropertiesKHR_VkResult_return = vkEnc->vkGetDisplayModePropertiesKHR(physicalDevice, display, pPropertyCount, pProperties);
@@ -1824,6 +2007,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkDisplayModeKHR* pMode)
 {
+    AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateDisplayModeKHR_VkResult_return = (VkResult)0;
     vkCreateDisplayModeKHR_VkResult_return = vkEnc->vkCreateDisplayModeKHR(physicalDevice, display, pCreateInfo, pAllocator, pMode);
@@ -1835,6 +2019,7 @@
     uint32_t planeIndex,
     VkDisplayPlaneCapabilitiesKHR* pCapabilities)
 {
+    AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = (VkResult)0;
     vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, pCapabilities);
@@ -1846,6 +2031,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSurfaceKHR* pSurface)
 {
+    AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateDisplayPlaneSurfaceKHR_VkResult_return = (VkResult)0;
     vkCreateDisplayPlaneSurfaceKHR_VkResult_return = vkEnc->vkCreateDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
@@ -1860,6 +2046,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSwapchainKHR* pSwapchains)
 {
+    AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0;
     vkCreateSharedSwapchainsKHR_VkResult_return = vkEnc->vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
@@ -1873,6 +2060,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSurfaceKHR* pSurface)
 {
+    AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateXlibSurfaceKHR_VkResult_return = (VkResult)0;
     vkCreateXlibSurfaceKHR_VkResult_return = vkEnc->vkCreateXlibSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
@@ -1884,6 +2072,7 @@
     Display* dpy,
     VisualID visualID)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = (VkBool32)0;
     vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice, queueFamilyIndex, dpy, visualID);
@@ -1897,6 +2086,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSurfaceKHR* pSurface)
 {
+    AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateXcbSurfaceKHR_VkResult_return = (VkResult)0;
     vkCreateXcbSurfaceKHR_VkResult_return = vkEnc->vkCreateXcbSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
@@ -1908,6 +2098,7 @@
     xcb_connection_t* connection,
     xcb_visualid_t visual_id)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = (VkBool32)0;
     vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection, visual_id);
@@ -1921,6 +2112,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSurfaceKHR* pSurface)
 {
+    AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateWaylandSurfaceKHR_VkResult_return = (VkResult)0;
     vkCreateWaylandSurfaceKHR_VkResult_return = vkEnc->vkCreateWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
@@ -1931,6 +2123,7 @@
     uint32_t queueFamilyIndex,
     wl_display* display)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = (VkBool32)0;
     vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice, queueFamilyIndex, display);
@@ -1944,6 +2137,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSurfaceKHR* pSurface)
 {
+    AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateMirSurfaceKHR_VkResult_return = (VkResult)0;
     vkCreateMirSurfaceKHR_VkResult_return = vkEnc->vkCreateMirSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
@@ -1954,6 +2148,7 @@
     uint32_t queueFamilyIndex,
     MirConnection* connection)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = (VkBool32)0;
     vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceMirPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection);
@@ -1967,6 +2162,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSurfaceKHR* pSurface)
 {
+    AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0;
     vkCreateAndroidSurfaceKHR_VkResult_return = vkEnc->vkCreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
@@ -1980,6 +2176,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSurfaceKHR* pSurface)
 {
+    AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateWin32SurfaceKHR_VkResult_return = (VkResult)0;
     vkCreateWin32SurfaceKHR_VkResult_return = vkEnc->vkCreateWin32SurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
@@ -1989,6 +2186,7 @@
     VkPhysicalDevice physicalDevice,
     uint32_t queueFamilyIndex)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = (VkBool32)0;
     vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex);
@@ -2004,6 +2202,7 @@
     VkPhysicalDevice physicalDevice,
     VkPhysicalDeviceFeatures2* pFeatures)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures);
 }
@@ -2011,6 +2210,7 @@
     VkPhysicalDevice physicalDevice,
     VkPhysicalDeviceProperties2* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties);
 }
@@ -2019,6 +2219,7 @@
     VkFormat format,
     VkFormatProperties2* pFormatProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties);
 }
@@ -2027,6 +2228,7 @@
     const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
     VkImageFormatProperties2* pImageFormatProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = (VkResult)0;
     vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties);
@@ -2037,6 +2239,7 @@
     uint32_t* pQueueFamilyPropertyCount,
     VkQueueFamilyProperties2* pQueueFamilyProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
 }
@@ -2044,6 +2247,7 @@
     VkPhysicalDevice physicalDevice,
     VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties);
 }
@@ -2053,6 +2257,7 @@
     uint32_t* pPropertyCount,
     VkSparseImageFormatProperties2* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
 }
@@ -2065,6 +2270,7 @@
     uint32_t remoteDeviceIndex,
     VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
 {
+    AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
 }
@@ -2072,6 +2278,7 @@
     VkCommandBuffer commandBuffer,
     uint32_t deviceMask)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask);
 }
@@ -2084,6 +2291,7 @@
     uint32_t groupCountY,
     uint32_t groupCountZ)
 {
+    AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
 }
@@ -2096,6 +2304,7 @@
     VkCommandPool commandPool,
     VkCommandPoolTrimFlags flags)
 {
+    AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkTrimCommandPoolKHR(device, commandPool, flags);
 }
@@ -2106,6 +2315,7 @@
     uint32_t* pPhysicalDeviceGroupCount,
     VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
 {
+    AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0;
     vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
@@ -2118,6 +2328,7 @@
     const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
     VkExternalBufferProperties* pExternalBufferProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
 }
@@ -2130,6 +2341,7 @@
     const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
     HANDLE* pHandle)
 {
+    AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0;
     vkGetMemoryWin32HandleKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
@@ -2141,6 +2353,7 @@
     HANDLE handle,
     VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0;
     vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
@@ -2153,6 +2366,7 @@
     const VkMemoryGetFdInfoKHR* pGetFdInfo,
     int* pFd)
 {
+    AEMU_SCOPED_TRACE("vkGetMemoryFdKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0;
     vkGetMemoryFdKHR_VkResult_return = vkEnc->vkGetMemoryFdKHR(device, pGetFdInfo, pFd);
@@ -2164,6 +2378,7 @@
     int fd,
     VkMemoryFdPropertiesKHR* pMemoryFdProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0;
     vkGetMemoryFdPropertiesKHR_VkResult_return = vkEnc->vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
@@ -2178,6 +2393,7 @@
     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
     VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
 }
@@ -2189,6 +2405,7 @@
     VkDevice device,
     const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
 {
+    AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
     vkImportSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
@@ -2199,6 +2416,7 @@
     const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
     HANDLE* pHandle)
 {
+    AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
     vkGetSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkGetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
@@ -2210,6 +2428,7 @@
     VkDevice device,
     const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo)
 {
+    AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0;
     vkImportSemaphoreFdKHR_VkResult_return = vkEnc->vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo);
@@ -2220,6 +2439,7 @@
     const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
     int* pFd)
 {
+    AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0;
     vkGetSemaphoreFdKHR_VkResult_return = vkEnc->vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd);
@@ -2235,6 +2455,7 @@
     uint32_t descriptorWriteCount,
     const VkWriteDescriptorSet* pDescriptorWrites)
 {
+    AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
 }
@@ -2245,6 +2466,7 @@
     uint32_t set,
     const void* pData)
 {
+    AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
 }
@@ -2260,6 +2482,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
 {
+    AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0;
     vkCreateDescriptorUpdateTemplateKHR_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
@@ -2270,6 +2493,7 @@
     VkDescriptorUpdateTemplate descriptorUpdateTemplate,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator);
 }
@@ -2279,6 +2503,7 @@
     VkDescriptorUpdateTemplate descriptorUpdateTemplate,
     const void* pData)
 {
+    AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData);
 }
@@ -2290,6 +2515,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkRenderPass* pRenderPass)
 {
+    AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0;
     vkCreateRenderPass2KHR_VkResult_return = vkEnc->vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass);
@@ -2300,6 +2526,7 @@
     const VkRenderPassBeginInfo* pRenderPassBegin,
     const VkSubpassBeginInfoKHR* pSubpassBeginInfo)
 {
+    AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
 }
@@ -2308,6 +2535,7 @@
     const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
     const VkSubpassEndInfoKHR* pSubpassEndInfo)
 {
+    AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
 }
@@ -2315,6 +2543,7 @@
     VkCommandBuffer commandBuffer,
     const VkSubpassEndInfoKHR* pSubpassEndInfo)
 {
+    AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo);
 }
@@ -2324,6 +2553,7 @@
     VkDevice device,
     VkSwapchainKHR swapchain)
 {
+    AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0;
     vkGetSwapchainStatusKHR_VkResult_return = vkEnc->vkGetSwapchainStatusKHR(device, swapchain);
@@ -2336,6 +2566,7 @@
     const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
     VkExternalFenceProperties* pExternalFenceProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
 }
@@ -2347,6 +2578,7 @@
     VkDevice device,
     const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo)
 {
+    AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0;
     vkImportFenceWin32HandleKHR_VkResult_return = vkEnc->vkImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
@@ -2357,6 +2589,7 @@
     const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
     HANDLE* pHandle)
 {
+    AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetFenceWin32HandleKHR_VkResult_return = (VkResult)0;
     vkGetFenceWin32HandleKHR_VkResult_return = vkEnc->vkGetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
@@ -2368,6 +2601,7 @@
     VkDevice device,
     const VkImportFenceFdInfoKHR* pImportFenceFdInfo)
 {
+    AEMU_SCOPED_TRACE("vkImportFenceFdKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkImportFenceFdKHR_VkResult_return = (VkResult)0;
     vkImportFenceFdKHR_VkResult_return = vkEnc->vkImportFenceFdKHR(device, pImportFenceFdInfo);
@@ -2378,6 +2612,7 @@
     const VkFenceGetFdInfoKHR* pGetFdInfo,
     int* pFd)
 {
+    AEMU_SCOPED_TRACE("vkGetFenceFdKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetFenceFdKHR_VkResult_return = (VkResult)0;
     vkGetFenceFdKHR_VkResult_return = vkEnc->vkGetFenceFdKHR(device, pGetFdInfo, pFd);
@@ -2392,6 +2627,7 @@
     const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
     VkSurfaceCapabilities2KHR* pSurfaceCapabilities)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = (VkResult)0;
     vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities);
@@ -2403,6 +2639,7 @@
     uint32_t* pSurfaceFormatCount,
     VkSurfaceFormat2KHR* pSurfaceFormats)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = (VkResult)0;
     vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats);
@@ -2417,6 +2654,7 @@
     uint32_t* pPropertyCount,
     VkDisplayProperties2KHR* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = (VkResult)0;
     vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties);
@@ -2427,6 +2665,7 @@
     uint32_t* pPropertyCount,
     VkDisplayPlaneProperties2KHR* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = (VkResult)0;
     vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties);
@@ -2438,6 +2677,7 @@
     uint32_t* pPropertyCount,
     VkDisplayModeProperties2KHR* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetDisplayModeProperties2KHR_VkResult_return = (VkResult)0;
     vkGetDisplayModeProperties2KHR_VkResult_return = vkEnc->vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties);
@@ -2448,6 +2688,7 @@
     const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
     VkDisplayPlaneCapabilities2KHR* pCapabilities)
 {
+    AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetDisplayPlaneCapabilities2KHR_VkResult_return = (VkResult)0;
     vkGetDisplayPlaneCapabilities2KHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities);
@@ -2466,6 +2707,7 @@
     const VkImageMemoryRequirementsInfo2* pInfo,
     VkMemoryRequirements2* pMemoryRequirements)
 {
+    AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     auto resources = ResourceTracker::get();
     resources->on_vkGetImageMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
@@ -2475,6 +2717,7 @@
     const VkBufferMemoryRequirementsInfo2* pInfo,
     VkMemoryRequirements2* pMemoryRequirements)
 {
+    AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     auto resources = ResourceTracker::get();
     resources->on_vkGetBufferMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
@@ -2485,6 +2728,7 @@
     uint32_t* pSparseMemoryRequirementCount,
     VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
 {
+    AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
 }
@@ -2498,6 +2742,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSamplerYcbcrConversion* pYcbcrConversion)
 {
+    AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateSamplerYcbcrConversionKHR_VkResult_return = (VkResult)0;
     vkCreateSamplerYcbcrConversionKHR_VkResult_return = vkEnc->vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion);
@@ -2508,6 +2753,7 @@
     VkSamplerYcbcrConversion ycbcrConversion,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator);
 }
@@ -2518,6 +2764,7 @@
     uint32_t bindInfoCount,
     const VkBindBufferMemoryInfo* pBindInfos)
 {
+    AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkBindBufferMemory2KHR_VkResult_return = (VkResult)0;
     auto resources = ResourceTracker::get();
@@ -2529,6 +2776,7 @@
     uint32_t bindInfoCount,
     const VkBindImageMemoryInfo* pBindInfos)
 {
+    AEMU_SCOPED_TRACE("vkBindImageMemory2KHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkBindImageMemory2KHR_VkResult_return = (VkResult)0;
     auto resources = ResourceTracker::get();
@@ -2542,6 +2790,7 @@
     const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
     VkDescriptorSetLayoutSupport* pSupport)
 {
+    AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport);
 }
@@ -2556,6 +2805,7 @@
     uint32_t maxDrawCount,
     uint32_t stride)
 {
+    AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
 }
@@ -2568,6 +2818,7 @@
     uint32_t maxDrawCount,
     uint32_t stride)
 {
+    AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
 }
@@ -2581,6 +2832,7 @@
     VkImageUsageFlags imageUsage,
     int* grallocUsage)
 {
+    AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0;
     vkGetSwapchainGrallocUsageANDROID_VkResult_return = vkEnc->vkGetSwapchainGrallocUsageANDROID(device, format, imageUsage, grallocUsage);
@@ -2593,6 +2845,7 @@
     VkSemaphore semaphore,
     VkFence fence)
 {
+    AEMU_SCOPED_TRACE("vkAcquireImageANDROID");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0;
     vkAcquireImageANDROID_VkResult_return = vkEnc->vkAcquireImageANDROID(device, image, nativeFenceFd, semaphore, fence);
@@ -2605,6 +2858,7 @@
     VkImage image,
     int* pNativeFenceFd)
 {
+    AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0;
     vkQueueSignalReleaseImageANDROID_VkResult_return = vkEnc->vkQueueSignalReleaseImageANDROID(queue, waitSemaphoreCount, pWaitSemaphores, image, pNativeFenceFd);
@@ -2618,6 +2872,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkDebugReportCallbackEXT* pCallback)
 {
+    AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateDebugReportCallbackEXT_VkResult_return = (VkResult)0;
     vkCreateDebugReportCallbackEXT_VkResult_return = vkEnc->vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback);
@@ -2628,6 +2883,7 @@
     VkDebugReportCallbackEXT callback,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator);
 }
@@ -2641,6 +2897,7 @@
     const char* pLayerPrefix,
     const char* pMessage)
 {
+    AEMU_SCOPED_TRACE("vkDebugReportMessageEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage);
 }
@@ -2662,6 +2919,7 @@
     VkDevice device,
     const VkDebugMarkerObjectTagInfoEXT* pTagInfo)
 {
+    AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0;
     vkDebugMarkerSetObjectTagEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectTagEXT(device, pTagInfo);
@@ -2671,6 +2929,7 @@
     VkDevice device,
     const VkDebugMarkerObjectNameInfoEXT* pNameInfo)
 {
+    AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0;
     vkDebugMarkerSetObjectNameEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectNameEXT(device, pNameInfo);
@@ -2680,12 +2939,14 @@
     VkCommandBuffer commandBuffer,
     const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
 {
+    AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
 }
 static void entry_vkCmdDebugMarkerEndEXT(
     VkCommandBuffer commandBuffer)
 {
+    AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdDebugMarkerEndEXT(commandBuffer);
 }
@@ -2693,6 +2954,7 @@
     VkCommandBuffer commandBuffer,
     const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
 {
+    AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
 }
@@ -2711,6 +2973,7 @@
     uint32_t maxDrawCount,
     uint32_t stride)
 {
+    AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
 }
@@ -2723,6 +2986,7 @@
     uint32_t maxDrawCount,
     uint32_t stride)
 {
+    AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
 }
@@ -2744,6 +3008,7 @@
     size_t* pInfoSize,
     void* pInfo)
 {
+    AEMU_SCOPED_TRACE("vkGetShaderInfoAMD");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetShaderInfoAMD_VkResult_return = (VkResult)0;
     vkGetShaderInfoAMD_VkResult_return = vkEnc->vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
@@ -2765,6 +3030,7 @@
     VkExternalMemoryHandleTypeFlagsNV externalHandleType,
     VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = (VkResult)0;
     vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = vkEnc->vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties);
@@ -2780,6 +3046,7 @@
     VkExternalMemoryHandleTypeFlagsNV handleType,
     HANDLE* pHandle)
 {
+    AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetMemoryWin32HandleNV_VkResult_return = (VkResult)0;
     vkGetMemoryWin32HandleNV_VkResult_return = vkEnc->vkGetMemoryWin32HandleNV(device, memory, handleType, pHandle);
@@ -2797,6 +3064,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSurfaceKHR* pSurface)
 {
+    AEMU_SCOPED_TRACE("vkCreateViSurfaceNN");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateViSurfaceNN_VkResult_return = (VkResult)0;
     vkCreateViSurfaceNN_VkResult_return = vkEnc->vkCreateViSurfaceNN(instance, pCreateInfo, pAllocator, pSurface);
@@ -2812,12 +3080,14 @@
     VkCommandBuffer commandBuffer,
     const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin)
 {
+    AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin);
 }
 static void entry_vkCmdEndConditionalRenderingEXT(
     VkCommandBuffer commandBuffer)
 {
+    AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdEndConditionalRenderingEXT(commandBuffer);
 }
@@ -2827,6 +3097,7 @@
     VkCommandBuffer commandBuffer,
     const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo)
 {
+    AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdProcessCommandsNVX(commandBuffer, pProcessCommandsInfo);
 }
@@ -2834,6 +3105,7 @@
     VkCommandBuffer commandBuffer,
     const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo)
 {
+    AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdReserveSpaceForCommandsNVX(commandBuffer, pReserveSpaceInfo);
 }
@@ -2843,6 +3115,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout)
 {
+    AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0;
     vkCreateIndirectCommandsLayoutNVX_VkResult_return = vkEnc->vkCreateIndirectCommandsLayoutNVX(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
@@ -2853,6 +3126,7 @@
     VkIndirectCommandsLayoutNVX indirectCommandsLayout,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyIndirectCommandsLayoutNVX(device, indirectCommandsLayout, pAllocator);
 }
@@ -2862,6 +3136,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkObjectTableNVX* pObjectTable)
 {
+    AEMU_SCOPED_TRACE("vkCreateObjectTableNVX");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0;
     vkCreateObjectTableNVX_VkResult_return = vkEnc->vkCreateObjectTableNVX(device, pCreateInfo, pAllocator, pObjectTable);
@@ -2872,6 +3147,7 @@
     VkObjectTableNVX objectTable,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyObjectTableNVX(device, objectTable, pAllocator);
 }
@@ -2882,6 +3158,7 @@
     const VkObjectTableEntryNVX* const* ppObjectTableEntries,
     const uint32_t* pObjectIndices)
 {
+    AEMU_SCOPED_TRACE("vkRegisterObjectsNVX");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkRegisterObjectsNVX_VkResult_return = (VkResult)0;
     vkRegisterObjectsNVX_VkResult_return = vkEnc->vkRegisterObjectsNVX(device, objectTable, objectCount, ppObjectTableEntries, pObjectIndices);
@@ -2894,6 +3171,7 @@
     const VkObjectEntryTypeNVX* pObjectEntryTypes,
     const uint32_t* pObjectIndices)
 {
+    AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkUnregisterObjectsNVX_VkResult_return = (VkResult)0;
     vkUnregisterObjectsNVX_VkResult_return = vkEnc->vkUnregisterObjectsNVX(device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices);
@@ -2904,6 +3182,7 @@
     VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
     VkDeviceGeneratedCommandsLimitsNVX* pLimits)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(physicalDevice, pFeatures, pLimits);
 }
@@ -2915,6 +3194,7 @@
     uint32_t viewportCount,
     const VkViewportWScalingNV* pViewportWScalings)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
 }
@@ -2924,6 +3204,7 @@
     VkPhysicalDevice physicalDevice,
     VkDisplayKHR display)
 {
+    AEMU_SCOPED_TRACE("vkReleaseDisplayEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkReleaseDisplayEXT_VkResult_return = (VkResult)0;
     vkReleaseDisplayEXT_VkResult_return = vkEnc->vkReleaseDisplayEXT(physicalDevice, display);
@@ -2936,6 +3217,7 @@
     Display* dpy,
     VkDisplayKHR display)
 {
+    AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkAcquireXlibDisplayEXT_VkResult_return = (VkResult)0;
     vkAcquireXlibDisplayEXT_VkResult_return = vkEnc->vkAcquireXlibDisplayEXT(physicalDevice, dpy, display);
@@ -2947,6 +3229,7 @@
     RROutput rrOutput,
     VkDisplayKHR* pDisplay)
 {
+    AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetRandROutputDisplayEXT_VkResult_return = (VkResult)0;
     vkGetRandROutputDisplayEXT_VkResult_return = vkEnc->vkGetRandROutputDisplayEXT(physicalDevice, dpy, rrOutput, pDisplay);
@@ -2959,6 +3242,7 @@
     VkSurfaceKHR surface,
     VkSurfaceCapabilities2EXT* pSurfaceCapabilities)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = (VkResult)0;
     vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities);
@@ -2971,6 +3255,7 @@
     VkDisplayKHR display,
     const VkDisplayPowerInfoEXT* pDisplayPowerInfo)
 {
+    AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0;
     vkDisplayPowerControlEXT_VkResult_return = vkEnc->vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo);
@@ -2982,6 +3267,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkFence* pFence)
 {
+    AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0;
     vkRegisterDeviceEventEXT_VkResult_return = vkEnc->vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
@@ -2994,6 +3280,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkFence* pFence)
 {
+    AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0;
     vkRegisterDisplayEventEXT_VkResult_return = vkEnc->vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
@@ -3005,6 +3292,7 @@
     VkSurfaceCounterFlagBitsEXT counter,
     uint64_t* pCounterValue)
 {
+    AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetSwapchainCounterEXT_VkResult_return = (VkResult)0;
     vkGetSwapchainCounterEXT_VkResult_return = vkEnc->vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
@@ -3017,6 +3305,7 @@
     VkSwapchainKHR swapchain,
     VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0;
     vkGetRefreshCycleDurationGOOGLE_VkResult_return = vkEnc->vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
@@ -3028,6 +3317,7 @@
     uint32_t* pPresentationTimingCount,
     VkPastPresentationTimingGOOGLE* pPresentationTimings)
 {
+    AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0;
     vkGetPastPresentationTimingGOOGLE_VkResult_return = vkEnc->vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
@@ -3051,6 +3341,7 @@
     uint32_t discardRectangleCount,
     const VkRect2D* pDiscardRectangles)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
 }
@@ -3066,6 +3357,7 @@
     const VkSwapchainKHR* pSwapchains,
     const VkHdrMetadataEXT* pMetadata)
 {
+    AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
 }
@@ -3077,6 +3369,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSurfaceKHR* pSurface)
 {
+    AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateIOSSurfaceMVK_VkResult_return = (VkResult)0;
     vkCreateIOSSurfaceMVK_VkResult_return = vkEnc->vkCreateIOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
@@ -3090,6 +3383,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSurfaceKHR* pSurface)
 {
+    AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateMacOSSurfaceMVK_VkResult_return = (VkResult)0;
     vkCreateMacOSSurfaceMVK_VkResult_return = vkEnc->vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
@@ -3105,6 +3399,7 @@
     VkDevice device,
     const VkDebugUtilsObjectNameInfoEXT* pNameInfo)
 {
+    AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0;
     vkSetDebugUtilsObjectNameEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectNameEXT(device, pNameInfo);
@@ -3114,6 +3409,7 @@
     VkDevice device,
     const VkDebugUtilsObjectTagInfoEXT* pTagInfo)
 {
+    AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0;
     vkSetDebugUtilsObjectTagEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectTagEXT(device, pTagInfo);
@@ -3123,12 +3419,14 @@
     VkQueue queue,
     const VkDebugUtilsLabelEXT* pLabelInfo)
 {
+    AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
 }
 static void entry_vkQueueEndDebugUtilsLabelEXT(
     VkQueue queue)
 {
+    AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkQueueEndDebugUtilsLabelEXT(queue);
 }
@@ -3136,6 +3434,7 @@
     VkQueue queue,
     const VkDebugUtilsLabelEXT* pLabelInfo)
 {
+    AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
 }
@@ -3143,12 +3442,14 @@
     VkCommandBuffer commandBuffer,
     const VkDebugUtilsLabelEXT* pLabelInfo)
 {
+    AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
 }
 static void entry_vkCmdEndDebugUtilsLabelEXT(
     VkCommandBuffer commandBuffer)
 {
+    AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdEndDebugUtilsLabelEXT(commandBuffer);
 }
@@ -3156,6 +3457,7 @@
     VkCommandBuffer commandBuffer,
     const VkDebugUtilsLabelEXT* pLabelInfo)
 {
+    AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
 }
@@ -3165,6 +3467,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkDebugUtilsMessengerEXT* pMessenger)
 {
+    AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateDebugUtilsMessengerEXT_VkResult_return = (VkResult)0;
     vkCreateDebugUtilsMessengerEXT_VkResult_return = vkEnc->vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger);
@@ -3175,6 +3478,7 @@
     VkDebugUtilsMessengerEXT messenger,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator);
 }
@@ -3184,6 +3488,7 @@
     VkDebugUtilsMessageTypeFlagsEXT messageTypes,
     const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData)
 {
+    AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData);
 }
@@ -3194,6 +3499,7 @@
     const AHardwareBuffer* buffer,
     VkAndroidHardwareBufferPropertiesANDROID* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = (VkResult)0;
     vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = vkEnc->vkGetAndroidHardwareBufferPropertiesANDROID(device, buffer, pProperties);
@@ -3204,6 +3510,7 @@
     const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
     AHardwareBuffer** pBuffer)
 {
+    AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = (VkResult)0;
     vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = vkEnc->vkGetMemoryAndroidHardwareBufferANDROID(device, pInfo, pBuffer);
@@ -3225,6 +3532,7 @@
     VkCommandBuffer commandBuffer,
     const VkSampleLocationsInfoEXT* pSampleLocationsInfo)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
 }
@@ -3233,6 +3541,7 @@
     VkSampleCountFlagBits samples,
     VkMultisamplePropertiesEXT* pMultisampleProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties);
 }
@@ -3254,6 +3563,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkValidationCacheEXT* pValidationCache)
 {
+    AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0;
     vkCreateValidationCacheEXT_VkResult_return = vkEnc->vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
@@ -3264,6 +3574,7 @@
     VkValidationCacheEXT validationCache,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkDestroyValidationCacheEXT(device, validationCache, pAllocator);
 }
@@ -3273,6 +3584,7 @@
     uint32_t srcCacheCount,
     const VkValidationCacheEXT* pSrcCaches)
 {
+    AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkMergeValidationCachesEXT_VkResult_return = (VkResult)0;
     vkMergeValidationCachesEXT_VkResult_return = vkEnc->vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
@@ -3284,6 +3596,7 @@
     size_t* pDataSize,
     void* pData)
 {
+    AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetValidationCacheDataEXT_VkResult_return = (VkResult)0;
     vkGetValidationCacheDataEXT_VkResult_return = vkEnc->vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData);
@@ -3303,6 +3616,7 @@
     const void* pHostPointer,
     VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0;
     vkGetMemoryHostPointerPropertiesEXT_VkResult_return = vkEnc->vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
@@ -3317,6 +3631,7 @@
     VkDeviceSize dstOffset,
     uint32_t marker)
 {
+    AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker);
 }
@@ -3332,6 +3647,7 @@
     VkCommandBuffer commandBuffer,
     const void* pCheckpointMarker)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
 }
@@ -3340,6 +3656,7 @@
     uint32_t* pCheckpointDataCount,
     VkCheckpointDataNV* pCheckpointData)
 {
+    AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV");
     auto vkEnc = HostConnection::get()->vkEncoder();
     vkEnc->vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
 }
@@ -3350,6 +3667,7 @@
     VkDeviceMemory memory,
     uint64_t* pAddress)
 {
+    AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
     vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = vkEnc->vkMapMemoryIntoAddressSpaceGOOGLE(device, memory, pAddress);
@@ -3362,6 +3680,7 @@
     VkImage image,
     uint32_t colorBuffer)
 {
+    AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkRegisterImageColorBufferGOOGLE_VkResult_return = (VkResult)0;
     vkRegisterImageColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterImageColorBufferGOOGLE(device, image, colorBuffer);
@@ -3372,6 +3691,7 @@
     VkBuffer buffer,
     uint32_t colorBuffer)
 {
+    AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE");
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkRegisterBufferColorBufferGOOGLE_VkResult_return = (VkResult)0;
     vkRegisterBufferColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterBufferColorBufferGOOGLE(device, buffer, colorBuffer);
diff --git a/system/vulkan/goldfish_vulkan.cpp b/system/vulkan/goldfish_vulkan.cpp
index 4e80c45..c076aa1 100644
--- a/system/vulkan/goldfish_vulkan.cpp
+++ b/system/vulkan/goldfish_vulkan.cpp
@@ -45,6 +45,7 @@
 EnumerateInstanceExtensionProperties(const char* /*layer_name*/,
                                      uint32_t* count,
                                      VkExtensionProperties* /*properties*/) {
+    AEMU_SCOPED_TRACE("vkstubhal::EnumerateInstanceExtensionProperties");
     *count = 0;
     return VK_SUCCESS;
 }
@@ -52,6 +53,7 @@
 VkResult
 EnumerateInstanceLayerProperties(uint32_t* count,
                                  VkLayerProperties* /*properties*/) {
+    AEMU_SCOPED_TRACE("vkstubhal::EnumerateInstanceLayerProperties");
     *count = 0;
     return VK_SUCCESS;
 }
@@ -59,6 +61,7 @@
 VkResult CreateInstance(const VkInstanceCreateInfo* /*create_info*/,
                         const VkAllocationCallbacks* /*allocator*/,
                         VkInstance* instance) {
+    AEMU_SCOPED_TRACE("vkstubhal::CreateInstance");
     std::lock_guard<std::mutex> lock(g_instance_mutex);
     for (size_t i = 0; i < kMaxInstances; i++) {
         if (!g_instance_used[i]) {
@@ -74,6 +77,7 @@
 
 void DestroyInstance(VkInstance instance,
                      const VkAllocationCallbacks* /*allocator*/) {
+    AEMU_SCOPED_TRACE("vkstubhal::DestroyInstance");
     std::lock_guard<std::mutex> lock(g_instance_mutex);
     ssize_t idx =
         reinterpret_cast<hwvulkan_dispatch_t*>(instance) - &g_instances[0];
@@ -85,6 +89,7 @@
 VkResult EnumeratePhysicalDevices(VkInstance /*instance*/,
                                   uint32_t* count,
                                   VkPhysicalDevice* /*gpus*/) {
+    AEMU_SCOPED_TRACE("vkstubhal::EnumeratePhysicalDevices");
     *count = 0;
     return VK_SUCCESS;
 }
@@ -93,12 +98,14 @@
 EnumeratePhysicalDeviceGroups(VkInstance /*instance*/,
                               uint32_t* count,
                               VkPhysicalDeviceGroupProperties* /*properties*/) {
+    AEMU_SCOPED_TRACE("vkstubhal::EnumeratePhysicalDeviceGroups");
     *count = 0;
     return VK_SUCCESS;
 }
 
 PFN_vkVoidFunction GetInstanceProcAddr(VkInstance instance,
                                        const char* name) {
+    AEMU_SCOPED_TRACE("vkstubhal::GetInstanceProcAddr");
     if (strcmp(name, "vkCreateInstance") == 0)
         return reinterpret_cast<PFN_vkVoidFunction>(CreateInstance);
     if (strcmp(name, "vkDestroyInstance") == 0)
@@ -144,6 +151,7 @@
 };
 
 int CloseDevice(struct hw_device_t* /*device*/) {
+    AEMU_SCOPED_TRACE("goldfish_vulkan::GetInstanceProcAddr");
     // nothing to do - opening a device doesn't allocate any resources
     return 0;
 }
@@ -172,6 +180,7 @@
     const char* layer_name,
     uint32_t* count,
     VkExtensionProperties* properties) {
+    AEMU_SCOPED_TRACE("goldfish_vulkan::EnumerateInstanceExtensionProperties");
 
     VK_HOST_CONNECTION(VK_ERROR_DEVICE_LOST)
 
@@ -196,6 +205,8 @@
 VkResult CreateInstance(const VkInstanceCreateInfo* create_info,
                         const VkAllocationCallbacks* allocator,
                         VkInstance* out_instance) {
+    AEMU_SCOPED_TRACE("goldfish_vulkan::CreateInstance");
+
     VK_HOST_CONNECTION(VK_ERROR_DEVICE_LOST)
 
     if (!hostSupportsVulkan) {
@@ -208,6 +219,8 @@
 }
 
 static PFN_vkVoidFunction GetDeviceProcAddr(VkDevice device, const char* name) {
+    AEMU_SCOPED_TRACE("goldfish_vulkan::GetDeviceProcAddr");
+
     VK_HOST_CONNECTION(nullptr)
 
     if (!hostSupportsVulkan) {
@@ -222,6 +235,8 @@
 
 VKAPI_ATTR
 PFN_vkVoidFunction GetInstanceProcAddr(VkInstance instance, const char* name) {
+    AEMU_SCOPED_TRACE("goldfish_vulkan::GetInstanceProcAddr");
+
     VK_HOST_CONNECTION(nullptr)
 
     if (!hostSupportsVulkan) {
@@ -255,6 +270,8 @@
 int OpenDevice(const hw_module_t* /*module*/,
                const char* id,
                hw_device_t** device) {
+    AEMU_SCOPED_TRACE("goldfish_vulkan::OpenDevice");
+
     if (strcmp(id, HWVULKAN_DEVICE_0) == 0) {
         *device = &goldfish_vulkan_device.common;
         goldfish_vk::ResourceTracker::get();
diff --git a/system/vulkan_enc/Android.mk b/system/vulkan_enc/Android.mk
index d59336f..86d9a4c 100644
--- a/system/vulkan_enc/Android.mk
+++ b/system/vulkan_enc/Android.mk
@@ -46,7 +46,7 @@
     HostVisibleMemoryVirtualization.cpp \
     Resources.cpp \
     Validation.cpp \
-    VulkanStream.cpp \
+    VulkanStreamGuest.cpp \
     VulkanHandleMapping.cpp \
     ResourceTracker.cpp \
     VkEncoder.cpp \
diff --git a/system/vulkan_enc/CMakeLists.txt b/system/vulkan_enc/CMakeLists.txt
index 3b91d56..9d98562 100644
--- a/system/vulkan_enc/CMakeLists.txt
+++ b/system/vulkan_enc/CMakeLists.txt
@@ -1,8 +1,8 @@
 # This is an autogenerated file! Do not edit!
 # instead run make from .../device/generic/goldfish-opengl
 # which will re-generate this file.
-android_validate_sha256("${GOLDFISH_DEVICE_ROOT}/system/vulkan_enc/Android.mk" "8d27c26a3f061872b902d8c89030638903e53faf8467a9e17c13580e71a86452")
-set(vulkan_enc_src AndroidHardwareBuffer.cpp HostVisibleMemoryVirtualization.cpp Resources.cpp Validation.cpp VulkanStream.cpp VulkanHandleMapping.cpp ResourceTracker.cpp VkEncoder.cpp goldfish_vk_extension_structs_guest.cpp goldfish_vk_marshaling_guest.cpp goldfish_vk_deepcopy_guest.cpp goldfish_vk_handlemap_guest.cpp goldfish_vk_transform_guest.cpp)
+android_validate_sha256("${GOLDFISH_DEVICE_ROOT}/system/vulkan_enc/Android.mk" "694b4f97bb916f16f52b9b2f2287d248de5271e6113ae367cf8bf360637659c5")
+set(vulkan_enc_src AndroidHardwareBuffer.cpp HostVisibleMemoryVirtualization.cpp Resources.cpp Validation.cpp VulkanStreamGuest.cpp VulkanHandleMapping.cpp ResourceTracker.cpp VkEncoder.cpp goldfish_vk_extension_structs_guest.cpp goldfish_vk_marshaling_guest.cpp goldfish_vk_deepcopy_guest.cpp goldfish_vk_handlemap_guest.cpp goldfish_vk_transform_guest.cpp)
 android_add_shared_library(vulkan_enc)
 target_include_directories(vulkan_enc PRIVATE ${GOLDFISH_DEVICE_ROOT}/android-emu ${GOLDFISH_DEVICE_ROOT}/shared/OpenglCodecCommon ${GOLDFISH_DEVICE_ROOT}/system/vulkan_enc ${GOLDFISH_DEVICE_ROOT}/./host/include/libOpenglRender ${GOLDFISH_DEVICE_ROOT}/./system/include ${GOLDFISH_DEVICE_ROOT}/./../../../external/qemu/android/android-emugl/guest ${GOLDFISH_DEVICE_ROOT}/./../../../external/qemu/android/android-emugl/host/include ${GOLDFISH_DEVICE_ROOT}/./../../../external/qemu/android/android-emugl/host/include/vulkan)
 target_compile_definitions(vulkan_enc PRIVATE "-DWITH_GLES2" "-DPLATFORM_SDK_VERSION=29" "-DGOLDFISH_HIDL_GRALLOC" "-DEMULATOR_OPENGL_POST_O=1" "-DHOST_BUILD" "-DANDROID" "-DGL_GLEXT_PROTOTYPES" "-DPAGE_SIZE=4096" "-DGOLDFISH_VULKAN" "-DLOG_TAG=\"goldfish_vulkan\"" "-DVK_ANDROID_native_buffer" "-DVK_GOOGLE_address_space" "-DVK_USE_PLATFORM_ANDROID_KHR" "-DVK_NO_PROTOTYPES" "-D__ANDROID_API__=28")
diff --git a/system/vulkan_enc/ResourceTracker.h b/system/vulkan_enc/ResourceTracker.h
index 19e6d56..4cfebba 100644
--- a/system/vulkan_enc/ResourceTracker.h
+++ b/system/vulkan_enc/ResourceTracker.h
@@ -14,6 +14,8 @@
 // limitations under the License.
 #pragma once
 
+#include "android/base/Tracing.h"
+
 #include <vulkan/vulkan.h>
 
 #include "VulkanHandleMapping.h"
diff --git a/system/vulkan_enc/VkEncoder.cpp b/system/vulkan_enc/VkEncoder.cpp
index eaeb08f..874d248 100644
--- a/system/vulkan_enc/VkEncoder.cpp
+++ b/system/vulkan_enc/VkEncoder.cpp
@@ -29,7 +29,7 @@
 #include "Resources.h"
 #include "ResourceTracker.h"
 #include "Validation.h"
-#include "VulkanStream.h"
+#include "VulkanStreamGuest.h"
 
 #include "android/base/AlignedBuf.h"
 #include "android/base/Pool.h"
@@ -63,7 +63,7 @@
         }
     }
     VulkanCountingStream* countingStream() { return &m_countingStream; }
-    VulkanStream* stream() { return &m_stream; }
+    VulkanStreamGuest* stream() { return &m_stream; }
     Pool* pool() { return &m_pool; }
     ResourceTracker* resources() { return ResourceTracker::get(); }
     Validation* validation() { return &m_validation; }
@@ -74,7 +74,7 @@
     }
 private:
     VulkanCountingStream m_countingStream;
-    VulkanStream m_stream;
+    VulkanStreamGuest m_stream;
     Pool m_pool { 8, 4096, 64 };
 
     Validation m_validation;
@@ -98,6 +98,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkInstance* pInstance)
 {
+    AEMU_SCOPED_TRACE("vkCreateInstance encode");
     mImpl->log("start vkCreateInstance");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -159,11 +160,13 @@
     stream->handleMapping()->mapHandles_VkInstance_u64(pInstance, &cgen_var_3, 1);
     stream->write((uint64_t*)&cgen_var_3, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateInstance readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_4;
     stream->read((uint64_t*)&cgen_var_4, 8);
     stream->handleMapping()->mapHandles_u64_VkInstance(&cgen_var_4, (VkInstance*)pInstance, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateInstance returnUnmarshal");
     VkResult vkCreateInstance_VkResult_return = (VkResult)0;
     stream->read(&vkCreateInstance_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -178,6 +181,7 @@
     VkInstance instance,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyInstance encode");
     mImpl->log("start vkDestroyInstance");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -226,6 +230,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyInstance readParams");
+    AEMU_SCOPED_TRACE("vkDestroyInstance returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkInstance((VkInstance*)&instance);
     mImpl->log("finish vkDestroyInstance");;
 }
@@ -235,6 +241,7 @@
     uint32_t* pPhysicalDeviceCount,
     VkPhysicalDevice* pPhysicalDevices)
 {
+    AEMU_SCOPED_TRACE("vkEnumeratePhysicalDevices encode");
     mImpl->log("start vkEnumeratePhysicalDevices");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -299,6 +306,7 @@
         }
     }
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkEnumeratePhysicalDevices readParams");
     // WARNING PTR CHECK
     uint32_t* check_pPhysicalDeviceCount;
     check_pPhysicalDeviceCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -329,6 +337,7 @@
         }
     }
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkEnumeratePhysicalDevices returnUnmarshal");
     VkResult vkEnumeratePhysicalDevices_VkResult_return = (VkResult)0;
     stream->read(&vkEnumeratePhysicalDevices_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -342,6 +351,7 @@
     VkPhysicalDevice physicalDevice,
     VkPhysicalDeviceFeatures* pFeatures)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures encode");
     mImpl->log("start vkGetPhysicalDeviceFeatures");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -366,11 +376,13 @@
     stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_21, 1);
     stream->write((uint64_t*)&cgen_var_21, 1 * 8);
     marshal_VkPhysicalDeviceFeatures(stream, (VkPhysicalDeviceFeatures*)(pFeatures));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures readParams");
     unmarshal_VkPhysicalDeviceFeatures(stream, (VkPhysicalDeviceFeatures*)(pFeatures));
     if (pFeatures)
     {
         transform_fromhost_VkPhysicalDeviceFeatures(mImpl->resources(), (VkPhysicalDeviceFeatures*)(pFeatures));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceFeatures");;
 }
 
@@ -379,6 +391,7 @@
     VkFormat format,
     VkFormatProperties* pFormatProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties encode");
     mImpl->log("start vkGetPhysicalDeviceFormatProperties");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -407,11 +420,13 @@
     stream->write((uint64_t*)&cgen_var_23, 1 * 8);
     stream->write((VkFormat*)&local_format, sizeof(VkFormat));
     marshal_VkFormatProperties(stream, (VkFormatProperties*)(pFormatProperties));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties readParams");
     unmarshal_VkFormatProperties(stream, (VkFormatProperties*)(pFormatProperties));
     if (pFormatProperties)
     {
         transform_fromhost_VkFormatProperties(mImpl->resources(), (VkFormatProperties*)(pFormatProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceFormatProperties");;
 }
 
@@ -424,6 +439,7 @@
     VkImageCreateFlags flags,
     VkImageFormatProperties* pImageFormatProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties encode");
     mImpl->log("start vkGetPhysicalDeviceImageFormatProperties");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -468,11 +484,13 @@
     stream->write((VkImageUsageFlags*)&local_usage, sizeof(VkImageUsageFlags));
     stream->write((VkImageCreateFlags*)&local_flags, sizeof(VkImageCreateFlags));
     marshal_VkImageFormatProperties(stream, (VkImageFormatProperties*)(pImageFormatProperties));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties readParams");
     unmarshal_VkImageFormatProperties(stream, (VkImageFormatProperties*)(pImageFormatProperties));
     if (pImageFormatProperties)
     {
         transform_fromhost_VkImageFormatProperties(mImpl->resources(), (VkImageFormatProperties*)(pImageFormatProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties returnUnmarshal");
     VkResult vkGetPhysicalDeviceImageFormatProperties_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceImageFormatProperties_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -486,6 +504,7 @@
     VkPhysicalDevice physicalDevice,
     VkPhysicalDeviceProperties* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties encode");
     mImpl->log("start vkGetPhysicalDeviceProperties");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -510,11 +529,13 @@
     stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_27, 1);
     stream->write((uint64_t*)&cgen_var_27, 1 * 8);
     marshal_VkPhysicalDeviceProperties(stream, (VkPhysicalDeviceProperties*)(pProperties));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties readParams");
     unmarshal_VkPhysicalDeviceProperties(stream, (VkPhysicalDeviceProperties*)(pProperties));
     if (pProperties)
     {
         transform_fromhost_VkPhysicalDeviceProperties(mImpl->resources(), (VkPhysicalDeviceProperties*)(pProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceProperties");;
 }
 
@@ -523,6 +544,7 @@
     uint32_t* pQueueFamilyPropertyCount,
     VkQueueFamilyProperties* pQueueFamilyProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties encode");
     mImpl->log("start vkGetPhysicalDeviceQueueFamilyProperties");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -579,6 +601,7 @@
             marshal_VkQueueFamilyProperties(stream, (VkQueueFamilyProperties*)(pQueueFamilyProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties readParams");
     // WARNING PTR CHECK
     uint32_t* check_pQueueFamilyPropertyCount;
     check_pQueueFamilyPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -611,6 +634,7 @@
             transform_fromhost_VkQueueFamilyProperties(mImpl->resources(), (VkQueueFamilyProperties*)(pQueueFamilyProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceQueueFamilyProperties");;
 }
 
@@ -618,6 +642,7 @@
     VkPhysicalDevice physicalDevice,
     VkPhysicalDeviceMemoryProperties* pMemoryProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties encode");
     mImpl->log("start vkGetPhysicalDeviceMemoryProperties");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -642,11 +667,13 @@
     stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_37, 1);
     stream->write((uint64_t*)&cgen_var_37, 1 * 8);
     marshal_VkPhysicalDeviceMemoryProperties(stream, (VkPhysicalDeviceMemoryProperties*)(pMemoryProperties));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties readParams");
     unmarshal_VkPhysicalDeviceMemoryProperties(stream, (VkPhysicalDeviceMemoryProperties*)(pMemoryProperties));
     if (pMemoryProperties)
     {
         transform_fromhost_VkPhysicalDeviceMemoryProperties(mImpl->resources(), (VkPhysicalDeviceMemoryProperties*)(pMemoryProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties returnUnmarshal");
     mImpl->resources()->on_vkGetPhysicalDeviceMemoryProperties(this, physicalDevice, pMemoryProperties);
     mImpl->log("finish vkGetPhysicalDeviceMemoryProperties");;
 }
@@ -655,6 +682,7 @@
     VkInstance instance,
     const char* pName)
 {
+    AEMU_SCOPED_TRACE("vkGetInstanceProcAddr encode");
     mImpl->log("start vkGetInstanceProcAddr");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -685,6 +713,8 @@
     stream->handleMapping()->mapHandles_VkInstance_u64(&local_instance, &cgen_var_39, 1);
     stream->write((uint64_t*)&cgen_var_39, 1 * 8);
     stream->putString(local_pName);
+    AEMU_SCOPED_TRACE("vkGetInstanceProcAddr readParams");
+    AEMU_SCOPED_TRACE("vkGetInstanceProcAddr returnUnmarshal");
     PFN_vkVoidFunction vkGetInstanceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
     stream->read(&vkGetInstanceProcAddr_PFN_vkVoidFunction_return, sizeof(PFN_vkVoidFunction));
     countingStream->clearPool();
@@ -698,6 +728,7 @@
     VkDevice device,
     const char* pName)
 {
+    AEMU_SCOPED_TRACE("vkGetDeviceProcAddr encode");
     mImpl->log("start vkGetDeviceProcAddr");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -728,6 +759,8 @@
     stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_41, 1);
     stream->write((uint64_t*)&cgen_var_41, 1 * 8);
     stream->putString(local_pName);
+    AEMU_SCOPED_TRACE("vkGetDeviceProcAddr readParams");
+    AEMU_SCOPED_TRACE("vkGetDeviceProcAddr returnUnmarshal");
     PFN_vkVoidFunction vkGetDeviceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
     stream->read(&vkGetDeviceProcAddr_PFN_vkVoidFunction_return, sizeof(PFN_vkVoidFunction));
     countingStream->clearPool();
@@ -743,6 +776,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkDevice* pDevice)
 {
+    AEMU_SCOPED_TRACE("vkCreateDevice encode");
     mImpl->log("start vkCreateDevice");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -812,11 +846,13 @@
     stream->handleMapping()->mapHandles_VkDevice_u64(pDevice, &cgen_var_47, 1);
     stream->write((uint64_t*)&cgen_var_47, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateDevice readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_48;
     stream->read((uint64_t*)&cgen_var_48, 8);
     stream->handleMapping()->mapHandles_u64_VkDevice(&cgen_var_48, (VkDevice*)pDevice, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateDevice returnUnmarshal");
     VkResult vkCreateDevice_VkResult_return = (VkResult)0;
     stream->read(&vkCreateDevice_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -831,6 +867,7 @@
     VkDevice device,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyDevice encode");
     mImpl->log("start vkDestroyDevice");
     mImpl->resources()->on_vkDestroyDevice_pre(this, device, pAllocator);
     auto stream = mImpl->stream();
@@ -880,6 +917,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyDevice readParams");
+    AEMU_SCOPED_TRACE("vkDestroyDevice returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkDevice((VkDevice*)&device);
     stream->flush();
     mImpl->log("finish vkDestroyDevice");;
@@ -890,6 +929,7 @@
     uint32_t* pPropertyCount,
     VkExtensionProperties* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkEnumerateInstanceExtensionProperties encode");
     mImpl->log("start vkEnumerateInstanceExtensionProperties");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -946,6 +986,7 @@
             marshal_VkExtensionProperties(stream, (VkExtensionProperties*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkEnumerateInstanceExtensionProperties readParams");
     // WARNING PTR CHECK
     uint32_t* check_pPropertyCount;
     check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -978,6 +1019,7 @@
             transform_fromhost_VkExtensionProperties(mImpl->resources(), (VkExtensionProperties*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkEnumerateInstanceExtensionProperties returnUnmarshal");
     VkResult vkEnumerateInstanceExtensionProperties_VkResult_return = (VkResult)0;
     stream->read(&vkEnumerateInstanceExtensionProperties_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -993,6 +1035,7 @@
     uint32_t* pPropertyCount,
     VkExtensionProperties* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkEnumerateDeviceExtensionProperties encode");
     mImpl->log("start vkEnumerateDeviceExtensionProperties");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -1057,6 +1100,7 @@
             marshal_VkExtensionProperties(stream, (VkExtensionProperties*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkEnumerateDeviceExtensionProperties readParams");
     // WARNING PTR CHECK
     uint32_t* check_pPropertyCount;
     check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -1089,6 +1133,7 @@
             transform_fromhost_VkExtensionProperties(mImpl->resources(), (VkExtensionProperties*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkEnumerateDeviceExtensionProperties returnUnmarshal");
     VkResult vkEnumerateDeviceExtensionProperties_VkResult_return = (VkResult)0;
     stream->read(&vkEnumerateDeviceExtensionProperties_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -1102,6 +1147,7 @@
     uint32_t* pPropertyCount,
     VkLayerProperties* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkEnumerateInstanceLayerProperties encode");
     mImpl->log("start vkEnumerateInstanceLayerProperties");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -1150,6 +1196,7 @@
             marshal_VkLayerProperties(stream, (VkLayerProperties*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkEnumerateInstanceLayerProperties readParams");
     // WARNING PTR CHECK
     uint32_t* check_pPropertyCount;
     check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -1182,6 +1229,7 @@
             transform_fromhost_VkLayerProperties(mImpl->resources(), (VkLayerProperties*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkEnumerateInstanceLayerProperties returnUnmarshal");
     VkResult vkEnumerateInstanceLayerProperties_VkResult_return = (VkResult)0;
     stream->read(&vkEnumerateInstanceLayerProperties_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -1196,6 +1244,7 @@
     uint32_t* pPropertyCount,
     VkLayerProperties* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkEnumerateDeviceLayerProperties encode");
     mImpl->log("start vkEnumerateDeviceLayerProperties");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -1252,6 +1301,7 @@
             marshal_VkLayerProperties(stream, (VkLayerProperties*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkEnumerateDeviceLayerProperties readParams");
     // WARNING PTR CHECK
     uint32_t* check_pPropertyCount;
     check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -1284,6 +1334,7 @@
             transform_fromhost_VkLayerProperties(mImpl->resources(), (VkLayerProperties*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkEnumerateDeviceLayerProperties returnUnmarshal");
     VkResult vkEnumerateDeviceLayerProperties_VkResult_return = (VkResult)0;
     stream->read(&vkEnumerateDeviceLayerProperties_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -1299,6 +1350,7 @@
     uint32_t queueIndex,
     VkQueue* pQueue)
 {
+    AEMU_SCOPED_TRACE("vkGetDeviceQueue encode");
     mImpl->log("start vkGetDeviceQueue");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -1337,11 +1389,13 @@
     stream->handleMapping()->mapHandles_VkQueue_u64(pQueue, &cgen_var_84, 1);
     stream->write((uint64_t*)&cgen_var_84, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkGetDeviceQueue readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_85;
     stream->read((uint64_t*)&cgen_var_85, 8);
     stream->handleMapping()->mapHandles_u64_VkQueue(&cgen_var_85, (VkQueue*)pQueue, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkGetDeviceQueue returnUnmarshal");
     mImpl->log("finish vkGetDeviceQueue");;
 }
 
@@ -1351,6 +1405,7 @@
     const VkSubmitInfo* pSubmits,
     VkFence fence)
 {
+    AEMU_SCOPED_TRACE("vkQueueSubmit encode");
     mImpl->log("start vkQueueSubmit");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -1411,6 +1466,8 @@
     uint64_t cgen_var_89;
     stream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_89, 1);
     stream->write((uint64_t*)&cgen_var_89, 1 * 8);
+    AEMU_SCOPED_TRACE("vkQueueSubmit readParams");
+    AEMU_SCOPED_TRACE("vkQueueSubmit returnUnmarshal");
     VkResult vkQueueSubmit_VkResult_return = (VkResult)0;
     stream->read(&vkQueueSubmit_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -1423,6 +1480,7 @@
 VkResult VkEncoder::vkQueueWaitIdle(
     VkQueue queue)
 {
+    AEMU_SCOPED_TRACE("vkQueueWaitIdle encode");
     mImpl->log("start vkQueueWaitIdle");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -1445,6 +1503,8 @@
     uint64_t cgen_var_91;
     stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_91, 1);
     stream->write((uint64_t*)&cgen_var_91, 1 * 8);
+    AEMU_SCOPED_TRACE("vkQueueWaitIdle readParams");
+    AEMU_SCOPED_TRACE("vkQueueWaitIdle returnUnmarshal");
     VkResult vkQueueWaitIdle_VkResult_return = (VkResult)0;
     stream->read(&vkQueueWaitIdle_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -1457,6 +1517,7 @@
 VkResult VkEncoder::vkDeviceWaitIdle(
     VkDevice device)
 {
+    AEMU_SCOPED_TRACE("vkDeviceWaitIdle encode");
     mImpl->log("start vkDeviceWaitIdle");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -1479,6 +1540,8 @@
     uint64_t cgen_var_93;
     stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_93, 1);
     stream->write((uint64_t*)&cgen_var_93, 1 * 8);
+    AEMU_SCOPED_TRACE("vkDeviceWaitIdle readParams");
+    AEMU_SCOPED_TRACE("vkDeviceWaitIdle returnUnmarshal");
     VkResult vkDeviceWaitIdle_VkResult_return = (VkResult)0;
     stream->read(&vkDeviceWaitIdle_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -1494,6 +1557,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkDeviceMemory* pMemory)
 {
+    AEMU_SCOPED_TRACE("vkAllocateMemory encode");
     mImpl->log("start vkAllocateMemory");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -1563,11 +1627,13 @@
     stream->handleMapping()->mapHandles_VkDeviceMemory_u64(pMemory, &cgen_var_99, 1);
     stream->write((uint64_t*)&cgen_var_99, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkAllocateMemory readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_100;
     stream->read((uint64_t*)&cgen_var_100, 8);
     stream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_100, (VkDeviceMemory*)pMemory, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkAllocateMemory returnUnmarshal");
     VkResult vkAllocateMemory_VkResult_return = (VkResult)0;
     stream->read(&vkAllocateMemory_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -1582,6 +1648,7 @@
     VkDeviceMemory memory,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkFreeMemory encode");
     mImpl->log("start vkFreeMemory");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -1635,6 +1702,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkFreeMemory readParams");
+    AEMU_SCOPED_TRACE("vkFreeMemory returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkDeviceMemory((VkDeviceMemory*)&memory);
     mImpl->log("finish vkFreeMemory");;
 }
@@ -1647,6 +1716,7 @@
     VkMemoryMapFlags flags,
     void** ppData)
 {
+    AEMU_SCOPED_TRACE("vkMapMemory resourceEvent");
     VkResult vkMapMemory_VkResult_return = (VkResult)0;
     vkMapMemory_VkResult_return = mImpl->resources()->on_vkMapMemory(this, VK_SUCCESS, device, memory, offset, size, flags, ppData);
     mImpl->log("finish vkMapMemory");;
@@ -1657,6 +1727,7 @@
     VkDevice device,
     VkDeviceMemory memory)
 {
+    AEMU_SCOPED_TRACE("vkUnmapMemory resourceEvent");
     mImpl->resources()->on_vkUnmapMemory(this, device, memory);
 }
 
@@ -1665,6 +1736,7 @@
     uint32_t memoryRangeCount,
     const VkMappedMemoryRange* pMemoryRanges)
 {
+    AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges encode");
     mImpl->log("start vkFlushMappedMemoryRanges");
     VALIDATE_RET(VkResult, VK_SUCCESS, mImpl->validation()->on_vkFlushMappedMemoryRanges(this, VK_SUCCESS, device, memoryRangeCount, pMemoryRanges));
     auto stream = mImpl->stream();
@@ -1755,6 +1827,8 @@
             stream->write(targetRange, actualSize);
         }
     }
+    AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges readParams");
+    AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges returnUnmarshal");
     VkResult vkFlushMappedMemoryRanges_VkResult_return = (VkResult)0;
     stream->read(&vkFlushMappedMemoryRanges_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -1769,6 +1843,7 @@
     uint32_t memoryRangeCount,
     const VkMappedMemoryRange* pMemoryRanges)
 {
+    AEMU_SCOPED_TRACE("vkInvalidateMappedMemoryRanges encode");
     mImpl->log("start vkInvalidateMappedMemoryRanges");
     VALIDATE_RET(VkResult, VK_SUCCESS, mImpl->validation()->on_vkInvalidateMappedMemoryRanges(this, VK_SUCCESS, device, memoryRangeCount, pMemoryRanges));
     auto stream = mImpl->stream();
@@ -1821,6 +1896,8 @@
     {
         marshal_VkMappedMemoryRange(stream, (VkMappedMemoryRange*)(local_pMemoryRanges + i));
     }
+    AEMU_SCOPED_TRACE("vkInvalidateMappedMemoryRanges readParams");
+    AEMU_SCOPED_TRACE("vkInvalidateMappedMemoryRanges returnUnmarshal");
     VkResult vkInvalidateMappedMemoryRanges_VkResult_return = (VkResult)0;
     stream->read(&vkInvalidateMappedMemoryRanges_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -1854,6 +1931,7 @@
     VkDeviceMemory memory,
     VkDeviceSize* pCommittedMemoryInBytes)
 {
+    AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment encode");
     mImpl->log("start vkGetDeviceMemoryCommitment");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -1887,7 +1965,9 @@
     stream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_114, 1);
     stream->write((uint64_t*)&cgen_var_114, 1 * 8);
     stream->write((VkDeviceSize*)pCommittedMemoryInBytes, sizeof(VkDeviceSize));
+    AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment readParams");
     stream->read((VkDeviceSize*)pCommittedMemoryInBytes, sizeof(VkDeviceSize));
+    AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment returnUnmarshal");
     mImpl->log("finish vkGetDeviceMemoryCommitment");;
 }
 
@@ -1897,6 +1977,7 @@
     VkDeviceMemory memory,
     VkDeviceSize memoryOffset)
 {
+    AEMU_SCOPED_TRACE("vkBindBufferMemory encode");
     mImpl->log("start vkBindBufferMemory");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -1940,6 +2021,8 @@
     stream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_120, 1);
     stream->write((uint64_t*)&cgen_var_120, 1 * 8);
     stream->write((VkDeviceSize*)&local_memoryOffset, sizeof(VkDeviceSize));
+    AEMU_SCOPED_TRACE("vkBindBufferMemory readParams");
+    AEMU_SCOPED_TRACE("vkBindBufferMemory returnUnmarshal");
     VkResult vkBindBufferMemory_VkResult_return = (VkResult)0;
     stream->read(&vkBindBufferMemory_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -1955,6 +2038,7 @@
     VkDeviceMemory memory,
     VkDeviceSize memoryOffset)
 {
+    AEMU_SCOPED_TRACE("vkBindImageMemory encode");
     mImpl->log("start vkBindImageMemory");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -1998,6 +2082,8 @@
     stream->handleMapping()->mapHandles_VkDeviceMemory_u64(&local_memory, &cgen_var_126, 1);
     stream->write((uint64_t*)&cgen_var_126, 1 * 8);
     stream->write((VkDeviceSize*)&local_memoryOffset, sizeof(VkDeviceSize));
+    AEMU_SCOPED_TRACE("vkBindImageMemory readParams");
+    AEMU_SCOPED_TRACE("vkBindImageMemory returnUnmarshal");
     VkResult vkBindImageMemory_VkResult_return = (VkResult)0;
     stream->read(&vkBindImageMemory_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -2012,6 +2098,7 @@
     VkBuffer buffer,
     VkMemoryRequirements* pMemoryRequirements)
 {
+    AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements encode");
     mImpl->log("start vkGetBufferMemoryRequirements");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -2044,11 +2131,13 @@
     stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_130, 1);
     stream->write((uint64_t*)&cgen_var_130, 1 * 8);
     marshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements));
+    AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements readParams");
     unmarshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements));
     if (pMemoryRequirements)
     {
         transform_fromhost_VkMemoryRequirements(mImpl->resources(), (VkMemoryRequirements*)(pMemoryRequirements));
     }
+    AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements returnUnmarshal");
     mImpl->log("finish vkGetBufferMemoryRequirements");;
 }
 
@@ -2057,6 +2146,7 @@
     VkImage image,
     VkMemoryRequirements* pMemoryRequirements)
 {
+    AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements encode");
     mImpl->log("start vkGetImageMemoryRequirements");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -2089,11 +2179,13 @@
     stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_134, 1);
     stream->write((uint64_t*)&cgen_var_134, 1 * 8);
     marshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements));
+    AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements readParams");
     unmarshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements));
     if (pMemoryRequirements)
     {
         transform_fromhost_VkMemoryRequirements(mImpl->resources(), (VkMemoryRequirements*)(pMemoryRequirements));
     }
+    AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements returnUnmarshal");
     mImpl->log("finish vkGetImageMemoryRequirements");;
 }
 
@@ -2103,6 +2195,7 @@
     uint32_t* pSparseMemoryRequirementCount,
     VkSparseImageMemoryRequirements* pSparseMemoryRequirements)
 {
+    AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements encode");
     mImpl->log("start vkGetImageSparseMemoryRequirements");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -2167,6 +2260,7 @@
             marshal_VkSparseImageMemoryRequirements(stream, (VkSparseImageMemoryRequirements*)(pSparseMemoryRequirements + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements readParams");
     // WARNING PTR CHECK
     uint32_t* check_pSparseMemoryRequirementCount;
     check_pSparseMemoryRequirementCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -2199,6 +2293,7 @@
             transform_fromhost_VkSparseImageMemoryRequirements(mImpl->resources(), (VkSparseImageMemoryRequirements*)(pSparseMemoryRequirements + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements returnUnmarshal");
     mImpl->log("finish vkGetImageSparseMemoryRequirements");;
 }
 
@@ -2212,6 +2307,7 @@
     uint32_t* pPropertyCount,
     VkSparseImageFormatProperties* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties encode");
     mImpl->log("start vkGetPhysicalDeviceSparseImageFormatProperties");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -2288,6 +2384,7 @@
             marshal_VkSparseImageFormatProperties(stream, (VkSparseImageFormatProperties*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties readParams");
     // WARNING PTR CHECK
     uint32_t* check_pPropertyCount;
     check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -2320,6 +2417,7 @@
             transform_fromhost_VkSparseImageFormatProperties(mImpl->resources(), (VkSparseImageFormatProperties*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceSparseImageFormatProperties");;
 }
 
@@ -2329,6 +2427,7 @@
     const VkBindSparseInfo* pBindInfo,
     VkFence fence)
 {
+    AEMU_SCOPED_TRACE("vkQueueBindSparse encode");
     mImpl->log("start vkQueueBindSparse");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -2388,6 +2487,8 @@
     uint64_t cgen_var_156;
     stream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_156, 1);
     stream->write((uint64_t*)&cgen_var_156, 1 * 8);
+    AEMU_SCOPED_TRACE("vkQueueBindSparse readParams");
+    AEMU_SCOPED_TRACE("vkQueueBindSparse returnUnmarshal");
     VkResult vkQueueBindSparse_VkResult_return = (VkResult)0;
     stream->read(&vkQueueBindSparse_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -2403,6 +2504,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkFence* pFence)
 {
+    AEMU_SCOPED_TRACE("vkCreateFence encode");
     mImpl->log("start vkCreateFence");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -2472,11 +2574,13 @@
     stream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_162, 1);
     stream->write((uint64_t*)&cgen_var_162, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateFence readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_163;
     stream->read((uint64_t*)&cgen_var_163, 8);
     stream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_163, (VkFence*)pFence, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateFence returnUnmarshal");
     VkResult vkCreateFence_VkResult_return = (VkResult)0;
     stream->read(&vkCreateFence_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -2491,6 +2595,7 @@
     VkFence fence,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyFence encode");
     mImpl->log("start vkDestroyFence");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -2547,6 +2652,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyFence readParams");
+    AEMU_SCOPED_TRACE("vkDestroyFence returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkFence((VkFence*)&fence);
     mImpl->log("finish vkDestroyFence");;
 }
@@ -2556,6 +2663,7 @@
     uint32_t fenceCount,
     const VkFence* pFences)
 {
+    AEMU_SCOPED_TRACE("vkResetFences encode");
     mImpl->log("start vkResetFences");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -2602,6 +2710,8 @@
         stream->handleMapping()->mapHandles_VkFence_u64(local_pFences, cgen_var_173, ((fenceCount)));
         stream->write((uint64_t*)cgen_var_173, ((fenceCount)) * 8);
     }
+    AEMU_SCOPED_TRACE("vkResetFences readParams");
+    AEMU_SCOPED_TRACE("vkResetFences returnUnmarshal");
     VkResult vkResetFences_VkResult_return = (VkResult)0;
     stream->read(&vkResetFences_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -2615,6 +2725,7 @@
     VkDevice device,
     VkFence fence)
 {
+    AEMU_SCOPED_TRACE("vkGetFenceStatus encode");
     mImpl->log("start vkGetFenceStatus");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -2645,6 +2756,8 @@
     uint64_t cgen_var_177;
     stream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_177, 1);
     stream->write((uint64_t*)&cgen_var_177, 1 * 8);
+    AEMU_SCOPED_TRACE("vkGetFenceStatus readParams");
+    AEMU_SCOPED_TRACE("vkGetFenceStatus returnUnmarshal");
     VkResult vkGetFenceStatus_VkResult_return = (VkResult)0;
     stream->read(&vkGetFenceStatus_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -2661,6 +2774,7 @@
     VkBool32 waitAll,
     uint64_t timeout)
 {
+    AEMU_SCOPED_TRACE("vkWaitForFences encode");
     mImpl->log("start vkWaitForFences");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -2715,6 +2829,8 @@
     }
     stream->write((VkBool32*)&local_waitAll, sizeof(VkBool32));
     stream->write((uint64_t*)&local_timeout, sizeof(uint64_t));
+    AEMU_SCOPED_TRACE("vkWaitForFences readParams");
+    AEMU_SCOPED_TRACE("vkWaitForFences returnUnmarshal");
     VkResult vkWaitForFences_VkResult_return = (VkResult)0;
     stream->read(&vkWaitForFences_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -2730,6 +2846,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSemaphore* pSemaphore)
 {
+    AEMU_SCOPED_TRACE("vkCreateSemaphore encode");
     mImpl->log("start vkCreateSemaphore");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -2799,11 +2916,13 @@
     stream->handleMapping()->mapHandles_VkSemaphore_u64(pSemaphore, &cgen_var_187, 1);
     stream->write((uint64_t*)&cgen_var_187, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateSemaphore readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_188;
     stream->read((uint64_t*)&cgen_var_188, 8);
     stream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_188, (VkSemaphore*)pSemaphore, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateSemaphore returnUnmarshal");
     VkResult vkCreateSemaphore_VkResult_return = (VkResult)0;
     stream->read(&vkCreateSemaphore_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -2818,6 +2937,7 @@
     VkSemaphore semaphore,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroySemaphore encode");
     mImpl->log("start vkDestroySemaphore");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -2874,6 +2994,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroySemaphore readParams");
+    AEMU_SCOPED_TRACE("vkDestroySemaphore returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkSemaphore((VkSemaphore*)&semaphore);
     mImpl->log("finish vkDestroySemaphore");;
 }
@@ -2884,6 +3006,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkEvent* pEvent)
 {
+    AEMU_SCOPED_TRACE("vkCreateEvent encode");
     mImpl->log("start vkCreateEvent");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -2953,11 +3076,13 @@
     stream->handleMapping()->mapHandles_VkEvent_u64(pEvent, &cgen_var_200, 1);
     stream->write((uint64_t*)&cgen_var_200, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateEvent readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_201;
     stream->read((uint64_t*)&cgen_var_201, 8);
     stream->handleMapping()->mapHandles_u64_VkEvent(&cgen_var_201, (VkEvent*)pEvent, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateEvent returnUnmarshal");
     VkResult vkCreateEvent_VkResult_return = (VkResult)0;
     stream->read(&vkCreateEvent_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -2972,6 +3097,7 @@
     VkEvent event,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyEvent encode");
     mImpl->log("start vkDestroyEvent");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -3028,6 +3154,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyEvent readParams");
+    AEMU_SCOPED_TRACE("vkDestroyEvent returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkEvent((VkEvent*)&event);
     mImpl->log("finish vkDestroyEvent");;
 }
@@ -3036,6 +3164,7 @@
     VkDevice device,
     VkEvent event)
 {
+    AEMU_SCOPED_TRACE("vkGetEventStatus encode");
     mImpl->log("start vkGetEventStatus");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -3066,6 +3195,8 @@
     uint64_t cgen_var_211;
     stream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_211, 1);
     stream->write((uint64_t*)&cgen_var_211, 1 * 8);
+    AEMU_SCOPED_TRACE("vkGetEventStatus readParams");
+    AEMU_SCOPED_TRACE("vkGetEventStatus returnUnmarshal");
     VkResult vkGetEventStatus_VkResult_return = (VkResult)0;
     stream->read(&vkGetEventStatus_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -3079,6 +3210,7 @@
     VkDevice device,
     VkEvent event)
 {
+    AEMU_SCOPED_TRACE("vkSetEvent encode");
     mImpl->log("start vkSetEvent");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -3109,6 +3241,8 @@
     uint64_t cgen_var_215;
     stream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_215, 1);
     stream->write((uint64_t*)&cgen_var_215, 1 * 8);
+    AEMU_SCOPED_TRACE("vkSetEvent readParams");
+    AEMU_SCOPED_TRACE("vkSetEvent returnUnmarshal");
     VkResult vkSetEvent_VkResult_return = (VkResult)0;
     stream->read(&vkSetEvent_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -3122,6 +3256,7 @@
     VkDevice device,
     VkEvent event)
 {
+    AEMU_SCOPED_TRACE("vkResetEvent encode");
     mImpl->log("start vkResetEvent");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -3152,6 +3287,8 @@
     uint64_t cgen_var_219;
     stream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_219, 1);
     stream->write((uint64_t*)&cgen_var_219, 1 * 8);
+    AEMU_SCOPED_TRACE("vkResetEvent readParams");
+    AEMU_SCOPED_TRACE("vkResetEvent returnUnmarshal");
     VkResult vkResetEvent_VkResult_return = (VkResult)0;
     stream->read(&vkResetEvent_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -3167,6 +3304,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkQueryPool* pQueryPool)
 {
+    AEMU_SCOPED_TRACE("vkCreateQueryPool encode");
     mImpl->log("start vkCreateQueryPool");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -3236,11 +3374,13 @@
     stream->handleMapping()->mapHandles_VkQueryPool_u64(pQueryPool, &cgen_var_225, 1);
     stream->write((uint64_t*)&cgen_var_225, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateQueryPool readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_226;
     stream->read((uint64_t*)&cgen_var_226, 8);
     stream->handleMapping()->mapHandles_u64_VkQueryPool(&cgen_var_226, (VkQueryPool*)pQueryPool, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateQueryPool returnUnmarshal");
     VkResult vkCreateQueryPool_VkResult_return = (VkResult)0;
     stream->read(&vkCreateQueryPool_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -3255,6 +3395,7 @@
     VkQueryPool queryPool,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyQueryPool encode");
     mImpl->log("start vkDestroyQueryPool");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -3311,6 +3452,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyQueryPool readParams");
+    AEMU_SCOPED_TRACE("vkDestroyQueryPool returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkQueryPool((VkQueryPool*)&queryPool);
     mImpl->log("finish vkDestroyQueryPool");;
 }
@@ -3325,6 +3468,7 @@
     VkDeviceSize stride,
     VkQueryResultFlags flags)
 {
+    AEMU_SCOPED_TRACE("vkGetQueryPoolResults encode");
     mImpl->log("start vkGetQueryPoolResults");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -3379,7 +3523,9 @@
     stream->write((void*)pData, ((dataSize)) * sizeof(uint8_t));
     stream->write((VkDeviceSize*)&local_stride, sizeof(VkDeviceSize));
     stream->write((VkQueryResultFlags*)&local_flags, sizeof(VkQueryResultFlags));
+    AEMU_SCOPED_TRACE("vkGetQueryPoolResults readParams");
     stream->read((void*)pData, ((dataSize)) * sizeof(uint8_t));
+    AEMU_SCOPED_TRACE("vkGetQueryPoolResults returnUnmarshal");
     VkResult vkGetQueryPoolResults_VkResult_return = (VkResult)0;
     stream->read(&vkGetQueryPoolResults_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -3395,6 +3541,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkBuffer* pBuffer)
 {
+    AEMU_SCOPED_TRACE("vkCreateBuffer encode");
     mImpl->log("start vkCreateBuffer");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -3464,11 +3611,13 @@
     stream->handleMapping()->mapHandles_VkBuffer_u64(pBuffer, &cgen_var_244, 1);
     stream->write((uint64_t*)&cgen_var_244, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateBuffer readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_245;
     stream->read((uint64_t*)&cgen_var_245, 8);
     stream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_245, (VkBuffer*)pBuffer, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateBuffer returnUnmarshal");
     VkResult vkCreateBuffer_VkResult_return = (VkResult)0;
     stream->read(&vkCreateBuffer_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -3483,6 +3632,7 @@
     VkBuffer buffer,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyBuffer encode");
     mImpl->log("start vkDestroyBuffer");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -3539,6 +3689,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyBuffer readParams");
+    AEMU_SCOPED_TRACE("vkDestroyBuffer returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkBuffer((VkBuffer*)&buffer);
     mImpl->log("finish vkDestroyBuffer");;
 }
@@ -3549,6 +3701,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkBufferView* pView)
 {
+    AEMU_SCOPED_TRACE("vkCreateBufferView encode");
     mImpl->log("start vkCreateBufferView");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -3618,11 +3771,13 @@
     stream->handleMapping()->mapHandles_VkBufferView_u64(pView, &cgen_var_257, 1);
     stream->write((uint64_t*)&cgen_var_257, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateBufferView readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_258;
     stream->read((uint64_t*)&cgen_var_258, 8);
     stream->handleMapping()->mapHandles_u64_VkBufferView(&cgen_var_258, (VkBufferView*)pView, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateBufferView returnUnmarshal");
     VkResult vkCreateBufferView_VkResult_return = (VkResult)0;
     stream->read(&vkCreateBufferView_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -3637,6 +3792,7 @@
     VkBufferView bufferView,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyBufferView encode");
     mImpl->log("start vkDestroyBufferView");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -3693,6 +3849,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyBufferView readParams");
+    AEMU_SCOPED_TRACE("vkDestroyBufferView returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkBufferView((VkBufferView*)&bufferView);
     mImpl->log("finish vkDestroyBufferView");;
 }
@@ -3703,6 +3861,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkImage* pImage)
 {
+    AEMU_SCOPED_TRACE("vkCreateImage encode");
     mImpl->log("start vkCreateImage");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -3773,11 +3932,13 @@
     stream->handleMapping()->mapHandles_VkImage_u64(pImage, &cgen_var_270, 1);
     stream->write((uint64_t*)&cgen_var_270, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateImage readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_271;
     stream->read((uint64_t*)&cgen_var_271, 8);
     stream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_271, (VkImage*)pImage, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateImage returnUnmarshal");
     VkResult vkCreateImage_VkResult_return = (VkResult)0;
     stream->read(&vkCreateImage_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -3792,6 +3953,7 @@
     VkImage image,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyImage encode");
     mImpl->log("start vkDestroyImage");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -3848,6 +4010,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyImage readParams");
+    AEMU_SCOPED_TRACE("vkDestroyImage returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkImage((VkImage*)&image);
     mImpl->log("finish vkDestroyImage");;
 }
@@ -3858,6 +4022,7 @@
     const VkImageSubresource* pSubresource,
     VkSubresourceLayout* pLayout)
 {
+    AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout encode");
     mImpl->log("start vkGetImageSubresourceLayout");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -3903,11 +4068,13 @@
     stream->write((uint64_t*)&cgen_var_281, 1 * 8);
     marshal_VkImageSubresource(stream, (VkImageSubresource*)(local_pSubresource));
     marshal_VkSubresourceLayout(stream, (VkSubresourceLayout*)(pLayout));
+    AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout readParams");
     unmarshal_VkSubresourceLayout(stream, (VkSubresourceLayout*)(pLayout));
     if (pLayout)
     {
         transform_fromhost_VkSubresourceLayout(mImpl->resources(), (VkSubresourceLayout*)(pLayout));
     }
+    AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout returnUnmarshal");
     mImpl->log("finish vkGetImageSubresourceLayout");;
 }
 
@@ -3917,6 +4084,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkImageView* pView)
 {
+    AEMU_SCOPED_TRACE("vkCreateImageView encode");
     mImpl->log("start vkCreateImageView");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -3986,11 +4154,13 @@
     stream->handleMapping()->mapHandles_VkImageView_u64(pView, &cgen_var_287, 1);
     stream->write((uint64_t*)&cgen_var_287, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateImageView readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_288;
     stream->read((uint64_t*)&cgen_var_288, 8);
     stream->handleMapping()->mapHandles_u64_VkImageView(&cgen_var_288, (VkImageView*)pView, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateImageView returnUnmarshal");
     VkResult vkCreateImageView_VkResult_return = (VkResult)0;
     stream->read(&vkCreateImageView_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -4005,6 +4175,7 @@
     VkImageView imageView,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyImageView encode");
     mImpl->log("start vkDestroyImageView");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -4061,6 +4232,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyImageView readParams");
+    AEMU_SCOPED_TRACE("vkDestroyImageView returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkImageView((VkImageView*)&imageView);
     mImpl->log("finish vkDestroyImageView");;
 }
@@ -4071,6 +4244,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkShaderModule* pShaderModule)
 {
+    AEMU_SCOPED_TRACE("vkCreateShaderModule encode");
     mImpl->log("start vkCreateShaderModule");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -4140,11 +4314,13 @@
     stream->handleMapping()->mapHandles_VkShaderModule_u64(pShaderModule, &cgen_var_300, 1);
     stream->write((uint64_t*)&cgen_var_300, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateShaderModule readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_301;
     stream->read((uint64_t*)&cgen_var_301, 8);
     stream->handleMapping()->mapHandles_u64_VkShaderModule(&cgen_var_301, (VkShaderModule*)pShaderModule, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateShaderModule returnUnmarshal");
     VkResult vkCreateShaderModule_VkResult_return = (VkResult)0;
     stream->read(&vkCreateShaderModule_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -4159,6 +4335,7 @@
     VkShaderModule shaderModule,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyShaderModule encode");
     mImpl->log("start vkDestroyShaderModule");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -4215,6 +4392,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyShaderModule readParams");
+    AEMU_SCOPED_TRACE("vkDestroyShaderModule returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkShaderModule((VkShaderModule*)&shaderModule);
     mImpl->log("finish vkDestroyShaderModule");;
 }
@@ -4225,6 +4404,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkPipelineCache* pPipelineCache)
 {
+    AEMU_SCOPED_TRACE("vkCreatePipelineCache encode");
     mImpl->log("start vkCreatePipelineCache");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -4294,11 +4474,13 @@
     stream->handleMapping()->mapHandles_VkPipelineCache_u64(pPipelineCache, &cgen_var_313, 1);
     stream->write((uint64_t*)&cgen_var_313, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreatePipelineCache readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_314;
     stream->read((uint64_t*)&cgen_var_314, 8);
     stream->handleMapping()->mapHandles_u64_VkPipelineCache(&cgen_var_314, (VkPipelineCache*)pPipelineCache, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreatePipelineCache returnUnmarshal");
     VkResult vkCreatePipelineCache_VkResult_return = (VkResult)0;
     stream->read(&vkCreatePipelineCache_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -4313,6 +4495,7 @@
     VkPipelineCache pipelineCache,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyPipelineCache encode");
     mImpl->log("start vkDestroyPipelineCache");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -4369,6 +4552,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyPipelineCache readParams");
+    AEMU_SCOPED_TRACE("vkDestroyPipelineCache returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkPipelineCache((VkPipelineCache*)&pipelineCache);
     mImpl->log("finish vkDestroyPipelineCache");;
 }
@@ -4379,6 +4564,7 @@
     size_t* pDataSize,
     void* pData)
 {
+    AEMU_SCOPED_TRACE("vkGetPipelineCacheData encode");
     mImpl->log("start vkGetPipelineCacheData");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -4439,6 +4625,7 @@
     {
         stream->write((void*)pData, (*(pDataSize)) * sizeof(uint8_t));
     }
+    AEMU_SCOPED_TRACE("vkGetPipelineCacheData readParams");
     // WARNING PTR CHECK
     size_t* check_pDataSize;
     check_pDataSize = (size_t*)(uintptr_t)stream->getBe64();
@@ -4461,6 +4648,7 @@
         }
         stream->read((void*)pData, (*(pDataSize)) * sizeof(uint8_t));
     }
+    AEMU_SCOPED_TRACE("vkGetPipelineCacheData returnUnmarshal");
     VkResult vkGetPipelineCacheData_VkResult_return = (VkResult)0;
     stream->read(&vkGetPipelineCacheData_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -4476,6 +4664,7 @@
     uint32_t srcCacheCount,
     const VkPipelineCache* pSrcCaches)
 {
+    AEMU_SCOPED_TRACE("vkMergePipelineCaches encode");
     mImpl->log("start vkMergePipelineCaches");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -4530,6 +4719,8 @@
         stream->handleMapping()->mapHandles_VkPipelineCache_u64(local_pSrcCaches, cgen_var_339, ((srcCacheCount)));
         stream->write((uint64_t*)cgen_var_339, ((srcCacheCount)) * 8);
     }
+    AEMU_SCOPED_TRACE("vkMergePipelineCaches readParams");
+    AEMU_SCOPED_TRACE("vkMergePipelineCaches returnUnmarshal");
     VkResult vkMergePipelineCaches_VkResult_return = (VkResult)0;
     stream->read(&vkMergePipelineCaches_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -4547,6 +4738,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkPipeline* pPipelines)
 {
+    AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines encode");
     mImpl->log("start vkCreateGraphicsPipelines");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -4648,6 +4840,7 @@
         stream->write((uint64_t*)cgen_var_347, ((createInfoCount)) * 8);
     }
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines readParams");
     stream->setHandleMapping(resources->createMapping());
     if (((createInfoCount)))
     {
@@ -4657,6 +4850,7 @@
         stream->handleMapping()->mapHandles_u64_VkPipeline(cgen_var_348, (VkPipeline*)pPipelines, ((createInfoCount)));
     }
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines returnUnmarshal");
     VkResult vkCreateGraphicsPipelines_VkResult_return = (VkResult)0;
     stream->read(&vkCreateGraphicsPipelines_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -4674,6 +4868,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkPipeline* pPipelines)
 {
+    AEMU_SCOPED_TRACE("vkCreateComputePipelines encode");
     mImpl->log("start vkCreateComputePipelines");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -4775,6 +4970,7 @@
         stream->write((uint64_t*)cgen_var_356, ((createInfoCount)) * 8);
     }
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateComputePipelines readParams");
     stream->setHandleMapping(resources->createMapping());
     if (((createInfoCount)))
     {
@@ -4784,6 +4980,7 @@
         stream->handleMapping()->mapHandles_u64_VkPipeline(cgen_var_357, (VkPipeline*)pPipelines, ((createInfoCount)));
     }
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateComputePipelines returnUnmarshal");
     VkResult vkCreateComputePipelines_VkResult_return = (VkResult)0;
     stream->read(&vkCreateComputePipelines_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -4798,6 +4995,7 @@
     VkPipeline pipeline,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyPipeline encode");
     mImpl->log("start vkDestroyPipeline");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -4854,6 +5052,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyPipeline readParams");
+    AEMU_SCOPED_TRACE("vkDestroyPipeline returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkPipeline((VkPipeline*)&pipeline);
     mImpl->log("finish vkDestroyPipeline");;
 }
@@ -4864,6 +5064,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkPipelineLayout* pPipelineLayout)
 {
+    AEMU_SCOPED_TRACE("vkCreatePipelineLayout encode");
     mImpl->log("start vkCreatePipelineLayout");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -4933,11 +5134,13 @@
     stream->handleMapping()->mapHandles_VkPipelineLayout_u64(pPipelineLayout, &cgen_var_369, 1);
     stream->write((uint64_t*)&cgen_var_369, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreatePipelineLayout readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_370;
     stream->read((uint64_t*)&cgen_var_370, 8);
     stream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_370, (VkPipelineLayout*)pPipelineLayout, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreatePipelineLayout returnUnmarshal");
     VkResult vkCreatePipelineLayout_VkResult_return = (VkResult)0;
     stream->read(&vkCreatePipelineLayout_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -4952,6 +5155,7 @@
     VkPipelineLayout pipelineLayout,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyPipelineLayout encode");
     mImpl->log("start vkDestroyPipelineLayout");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -5008,6 +5212,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyPipelineLayout readParams");
+    AEMU_SCOPED_TRACE("vkDestroyPipelineLayout returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkPipelineLayout((VkPipelineLayout*)&pipelineLayout);
     mImpl->log("finish vkDestroyPipelineLayout");;
 }
@@ -5018,6 +5224,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSampler* pSampler)
 {
+    AEMU_SCOPED_TRACE("vkCreateSampler encode");
     mImpl->log("start vkCreateSampler");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -5087,11 +5294,13 @@
     stream->handleMapping()->mapHandles_VkSampler_u64(pSampler, &cgen_var_382, 1);
     stream->write((uint64_t*)&cgen_var_382, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateSampler readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_383;
     stream->read((uint64_t*)&cgen_var_383, 8);
     stream->handleMapping()->mapHandles_u64_VkSampler(&cgen_var_383, (VkSampler*)pSampler, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateSampler returnUnmarshal");
     VkResult vkCreateSampler_VkResult_return = (VkResult)0;
     stream->read(&vkCreateSampler_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -5106,6 +5315,7 @@
     VkSampler sampler,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroySampler encode");
     mImpl->log("start vkDestroySampler");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -5162,6 +5372,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroySampler readParams");
+    AEMU_SCOPED_TRACE("vkDestroySampler returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkSampler((VkSampler*)&sampler);
     mImpl->log("finish vkDestroySampler");;
 }
@@ -5172,6 +5384,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkDescriptorSetLayout* pSetLayout)
 {
+    AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout encode");
     mImpl->log("start vkCreateDescriptorSetLayout");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -5241,11 +5454,13 @@
     stream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(pSetLayout, &cgen_var_395, 1);
     stream->write((uint64_t*)&cgen_var_395, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_396;
     stream->read((uint64_t*)&cgen_var_396, 8);
     stream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(&cgen_var_396, (VkDescriptorSetLayout*)pSetLayout, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout returnUnmarshal");
     VkResult vkCreateDescriptorSetLayout_VkResult_return = (VkResult)0;
     stream->read(&vkCreateDescriptorSetLayout_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -5260,6 +5475,7 @@
     VkDescriptorSetLayout descriptorSetLayout,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout encode");
     mImpl->log("start vkDestroyDescriptorSetLayout");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -5316,6 +5532,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout readParams");
+    AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkDescriptorSetLayout((VkDescriptorSetLayout*)&descriptorSetLayout);
     mImpl->log("finish vkDestroyDescriptorSetLayout");;
 }
@@ -5326,6 +5544,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkDescriptorPool* pDescriptorPool)
 {
+    AEMU_SCOPED_TRACE("vkCreateDescriptorPool encode");
     mImpl->log("start vkCreateDescriptorPool");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -5395,11 +5614,13 @@
     stream->handleMapping()->mapHandles_VkDescriptorPool_u64(pDescriptorPool, &cgen_var_408, 1);
     stream->write((uint64_t*)&cgen_var_408, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateDescriptorPool readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_409;
     stream->read((uint64_t*)&cgen_var_409, 8);
     stream->handleMapping()->mapHandles_u64_VkDescriptorPool(&cgen_var_409, (VkDescriptorPool*)pDescriptorPool, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateDescriptorPool returnUnmarshal");
     VkResult vkCreateDescriptorPool_VkResult_return = (VkResult)0;
     stream->read(&vkCreateDescriptorPool_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -5414,6 +5635,7 @@
     VkDescriptorPool descriptorPool,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyDescriptorPool encode");
     mImpl->log("start vkDestroyDescriptorPool");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -5470,6 +5692,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyDescriptorPool readParams");
+    AEMU_SCOPED_TRACE("vkDestroyDescriptorPool returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkDescriptorPool((VkDescriptorPool*)&descriptorPool);
     mImpl->log("finish vkDestroyDescriptorPool");;
 }
@@ -5479,6 +5703,7 @@
     VkDescriptorPool descriptorPool,
     VkDescriptorPoolResetFlags flags)
 {
+    AEMU_SCOPED_TRACE("vkResetDescriptorPool encode");
     mImpl->log("start vkResetDescriptorPool");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -5513,6 +5738,8 @@
     stream->handleMapping()->mapHandles_VkDescriptorPool_u64(&local_descriptorPool, &cgen_var_419, 1);
     stream->write((uint64_t*)&cgen_var_419, 1 * 8);
     stream->write((VkDescriptorPoolResetFlags*)&local_flags, sizeof(VkDescriptorPoolResetFlags));
+    AEMU_SCOPED_TRACE("vkResetDescriptorPool readParams");
+    AEMU_SCOPED_TRACE("vkResetDescriptorPool returnUnmarshal");
     VkResult vkResetDescriptorPool_VkResult_return = (VkResult)0;
     stream->read(&vkResetDescriptorPool_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -5527,6 +5754,7 @@
     const VkDescriptorSetAllocateInfo* pAllocateInfo,
     VkDescriptorSet* pDescriptorSets)
 {
+    AEMU_SCOPED_TRACE("vkAllocateDescriptorSets encode");
     mImpl->log("start vkAllocateDescriptorSets");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -5578,6 +5806,7 @@
         stream->write((uint64_t*)cgen_var_423, pAllocateInfo->descriptorSetCount * 8);
     }
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkAllocateDescriptorSets readParams");
     stream->setHandleMapping(resources->createMapping());
     if (pAllocateInfo->descriptorSetCount)
     {
@@ -5587,6 +5816,7 @@
         stream->handleMapping()->mapHandles_u64_VkDescriptorSet(cgen_var_424, (VkDescriptorSet*)pDescriptorSets, pAllocateInfo->descriptorSetCount);
     }
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkAllocateDescriptorSets returnUnmarshal");
     VkResult vkAllocateDescriptorSets_VkResult_return = (VkResult)0;
     stream->read(&vkAllocateDescriptorSets_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -5602,6 +5832,7 @@
     uint32_t descriptorSetCount,
     const VkDescriptorSet* pDescriptorSets)
 {
+    AEMU_SCOPED_TRACE("vkFreeDescriptorSets encode");
     mImpl->log("start vkFreeDescriptorSets");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -5668,6 +5899,8 @@
             stream->write((uint64_t*)cgen_var_432, ((descriptorSetCount)) * 8);
         }
     }
+    AEMU_SCOPED_TRACE("vkFreeDescriptorSets readParams");
+    AEMU_SCOPED_TRACE("vkFreeDescriptorSets returnUnmarshal");
     VkResult vkFreeDescriptorSets_VkResult_return = (VkResult)0;
     stream->read(&vkFreeDescriptorSets_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -5688,6 +5921,7 @@
     uint32_t descriptorCopyCount,
     const VkCopyDescriptorSet* pDescriptorCopies)
 {
+    AEMU_SCOPED_TRACE("vkUpdateDescriptorSets encode");
     mImpl->log("start vkUpdateDescriptorSets");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -5768,6 +6002,8 @@
     {
         marshal_VkCopyDescriptorSet(stream, (VkCopyDescriptorSet*)(local_pDescriptorCopies + i));
     }
+    AEMU_SCOPED_TRACE("vkUpdateDescriptorSets readParams");
+    AEMU_SCOPED_TRACE("vkUpdateDescriptorSets returnUnmarshal");
     mImpl->log("finish vkUpdateDescriptorSets");;
 }
 
@@ -5777,6 +6013,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkFramebuffer* pFramebuffer)
 {
+    AEMU_SCOPED_TRACE("vkCreateFramebuffer encode");
     mImpl->log("start vkCreateFramebuffer");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -5846,11 +6083,13 @@
     stream->handleMapping()->mapHandles_VkFramebuffer_u64(pFramebuffer, &cgen_var_440, 1);
     stream->write((uint64_t*)&cgen_var_440, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateFramebuffer readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_441;
     stream->read((uint64_t*)&cgen_var_441, 8);
     stream->handleMapping()->mapHandles_u64_VkFramebuffer(&cgen_var_441, (VkFramebuffer*)pFramebuffer, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateFramebuffer returnUnmarshal");
     VkResult vkCreateFramebuffer_VkResult_return = (VkResult)0;
     stream->read(&vkCreateFramebuffer_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -5865,6 +6104,7 @@
     VkFramebuffer framebuffer,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyFramebuffer encode");
     mImpl->log("start vkDestroyFramebuffer");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -5921,6 +6161,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyFramebuffer readParams");
+    AEMU_SCOPED_TRACE("vkDestroyFramebuffer returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkFramebuffer((VkFramebuffer*)&framebuffer);
     mImpl->log("finish vkDestroyFramebuffer");;
 }
@@ -5931,6 +6173,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkRenderPass* pRenderPass)
 {
+    AEMU_SCOPED_TRACE("vkCreateRenderPass encode");
     mImpl->log("start vkCreateRenderPass");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -6000,11 +6243,13 @@
     stream->handleMapping()->mapHandles_VkRenderPass_u64(pRenderPass, &cgen_var_453, 1);
     stream->write((uint64_t*)&cgen_var_453, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateRenderPass readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_454;
     stream->read((uint64_t*)&cgen_var_454, 8);
     stream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_454, (VkRenderPass*)pRenderPass, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateRenderPass returnUnmarshal");
     VkResult vkCreateRenderPass_VkResult_return = (VkResult)0;
     stream->read(&vkCreateRenderPass_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -6019,6 +6264,7 @@
     VkRenderPass renderPass,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyRenderPass encode");
     mImpl->log("start vkDestroyRenderPass");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -6075,6 +6321,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyRenderPass readParams");
+    AEMU_SCOPED_TRACE("vkDestroyRenderPass returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkRenderPass((VkRenderPass*)&renderPass);
     mImpl->log("finish vkDestroyRenderPass");;
 }
@@ -6084,6 +6332,7 @@
     VkRenderPass renderPass,
     VkExtent2D* pGranularity)
 {
+    AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity encode");
     mImpl->log("start vkGetRenderAreaGranularity");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -6116,11 +6365,13 @@
     stream->handleMapping()->mapHandles_VkRenderPass_u64(&local_renderPass, &cgen_var_464, 1);
     stream->write((uint64_t*)&cgen_var_464, 1 * 8);
     marshal_VkExtent2D(stream, (VkExtent2D*)(pGranularity));
+    AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity readParams");
     unmarshal_VkExtent2D(stream, (VkExtent2D*)(pGranularity));
     if (pGranularity)
     {
         transform_fromhost_VkExtent2D(mImpl->resources(), (VkExtent2D*)(pGranularity));
     }
+    AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity returnUnmarshal");
     mImpl->log("finish vkGetRenderAreaGranularity");;
 }
 
@@ -6130,6 +6381,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkCommandPool* pCommandPool)
 {
+    AEMU_SCOPED_TRACE("vkCreateCommandPool encode");
     mImpl->log("start vkCreateCommandPool");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -6199,11 +6451,13 @@
     stream->handleMapping()->mapHandles_VkCommandPool_u64(pCommandPool, &cgen_var_470, 1);
     stream->write((uint64_t*)&cgen_var_470, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateCommandPool readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_471;
     stream->read((uint64_t*)&cgen_var_471, 8);
     stream->handleMapping()->mapHandles_u64_VkCommandPool(&cgen_var_471, (VkCommandPool*)pCommandPool, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateCommandPool returnUnmarshal");
     VkResult vkCreateCommandPool_VkResult_return = (VkResult)0;
     stream->read(&vkCreateCommandPool_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -6218,6 +6472,7 @@
     VkCommandPool commandPool,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyCommandPool encode");
     mImpl->log("start vkDestroyCommandPool");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -6274,6 +6529,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyCommandPool readParams");
+    AEMU_SCOPED_TRACE("vkDestroyCommandPool returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkCommandPool((VkCommandPool*)&commandPool);
     mImpl->log("finish vkDestroyCommandPool");;
 }
@@ -6283,6 +6540,7 @@
     VkCommandPool commandPool,
     VkCommandPoolResetFlags flags)
 {
+    AEMU_SCOPED_TRACE("vkResetCommandPool encode");
     mImpl->log("start vkResetCommandPool");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -6317,6 +6575,8 @@
     stream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_481, 1);
     stream->write((uint64_t*)&cgen_var_481, 1 * 8);
     stream->write((VkCommandPoolResetFlags*)&local_flags, sizeof(VkCommandPoolResetFlags));
+    AEMU_SCOPED_TRACE("vkResetCommandPool readParams");
+    AEMU_SCOPED_TRACE("vkResetCommandPool returnUnmarshal");
     VkResult vkResetCommandPool_VkResult_return = (VkResult)0;
     stream->read(&vkResetCommandPool_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -6331,6 +6591,7 @@
     const VkCommandBufferAllocateInfo* pAllocateInfo,
     VkCommandBuffer* pCommandBuffers)
 {
+    AEMU_SCOPED_TRACE("vkAllocateCommandBuffers encode");
     mImpl->log("start vkAllocateCommandBuffers");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -6382,6 +6643,7 @@
         stream->write((uint64_t*)cgen_var_485, pAllocateInfo->commandBufferCount * 8);
     }
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkAllocateCommandBuffers readParams");
     stream->setHandleMapping(resources->createMapping());
     if (pAllocateInfo->commandBufferCount)
     {
@@ -6391,6 +6653,7 @@
         stream->handleMapping()->mapHandles_u64_VkCommandBuffer(cgen_var_486, (VkCommandBuffer*)pCommandBuffers, pAllocateInfo->commandBufferCount);
     }
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkAllocateCommandBuffers returnUnmarshal");
     VkResult vkAllocateCommandBuffers_VkResult_return = (VkResult)0;
     stream->read(&vkAllocateCommandBuffers_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -6406,6 +6669,7 @@
     uint32_t commandBufferCount,
     const VkCommandBuffer* pCommandBuffers)
 {
+    AEMU_SCOPED_TRACE("vkFreeCommandBuffers encode");
     mImpl->log("start vkFreeCommandBuffers");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -6472,6 +6736,8 @@
             stream->write((uint64_t*)cgen_var_494, ((commandBufferCount)) * 8);
         }
     }
+    AEMU_SCOPED_TRACE("vkFreeCommandBuffers readParams");
+    AEMU_SCOPED_TRACE("vkFreeCommandBuffers returnUnmarshal");
     if (pCommandBuffers)
     {
         resources->destroyMapping()->mapHandles_VkCommandBuffer((VkCommandBuffer*)pCommandBuffers, ((commandBufferCount)));
@@ -6483,6 +6749,7 @@
     VkCommandBuffer commandBuffer,
     const VkCommandBufferBeginInfo* pBeginInfo)
 {
+    AEMU_SCOPED_TRACE("vkBeginCommandBuffer encode");
     mImpl->log("start vkBeginCommandBuffer");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -6518,6 +6785,8 @@
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_496, 1);
     stream->write((uint64_t*)&cgen_var_496, 1 * 8);
     marshal_VkCommandBufferBeginInfo(stream, (VkCommandBufferBeginInfo*)(local_pBeginInfo));
+    AEMU_SCOPED_TRACE("vkBeginCommandBuffer readParams");
+    AEMU_SCOPED_TRACE("vkBeginCommandBuffer returnUnmarshal");
     VkResult vkBeginCommandBuffer_VkResult_return = (VkResult)0;
     stream->read(&vkBeginCommandBuffer_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -6530,6 +6799,7 @@
 VkResult VkEncoder::vkEndCommandBuffer(
     VkCommandBuffer commandBuffer)
 {
+    AEMU_SCOPED_TRACE("vkEndCommandBuffer encode");
     mImpl->log("start vkEndCommandBuffer");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -6552,6 +6822,8 @@
     uint64_t cgen_var_498;
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_498, 1);
     stream->write((uint64_t*)&cgen_var_498, 1 * 8);
+    AEMU_SCOPED_TRACE("vkEndCommandBuffer readParams");
+    AEMU_SCOPED_TRACE("vkEndCommandBuffer returnUnmarshal");
     VkResult vkEndCommandBuffer_VkResult_return = (VkResult)0;
     stream->read(&vkEndCommandBuffer_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -6565,6 +6837,7 @@
     VkCommandBuffer commandBuffer,
     VkCommandBufferResetFlags flags)
 {
+    AEMU_SCOPED_TRACE("vkResetCommandBuffer encode");
     mImpl->log("start vkResetCommandBuffer");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -6591,6 +6864,8 @@
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_500, 1);
     stream->write((uint64_t*)&cgen_var_500, 1 * 8);
     stream->write((VkCommandBufferResetFlags*)&local_flags, sizeof(VkCommandBufferResetFlags));
+    AEMU_SCOPED_TRACE("vkResetCommandBuffer readParams");
+    AEMU_SCOPED_TRACE("vkResetCommandBuffer returnUnmarshal");
     VkResult vkResetCommandBuffer_VkResult_return = (VkResult)0;
     stream->read(&vkResetCommandBuffer_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -6605,6 +6880,7 @@
     VkPipelineBindPoint pipelineBindPoint,
     VkPipeline pipeline)
 {
+    AEMU_SCOPED_TRACE("vkCmdBindPipeline encode");
     mImpl->log("start vkCmdBindPipeline");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -6639,6 +6915,8 @@
     uint64_t cgen_var_504;
     stream->handleMapping()->mapHandles_VkPipeline_u64(&local_pipeline, &cgen_var_504, 1);
     stream->write((uint64_t*)&cgen_var_504, 1 * 8);
+    AEMU_SCOPED_TRACE("vkCmdBindPipeline readParams");
+    AEMU_SCOPED_TRACE("vkCmdBindPipeline returnUnmarshal");
     mImpl->log("finish vkCmdBindPipeline");;
 }
 
@@ -6648,6 +6926,7 @@
     uint32_t viewportCount,
     const VkViewport* pViewports)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetViewport encode");
     mImpl->log("start vkCmdSetViewport");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -6703,6 +6982,8 @@
     {
         marshal_VkViewport(stream, (VkViewport*)(local_pViewports + i));
     }
+    AEMU_SCOPED_TRACE("vkCmdSetViewport readParams");
+    AEMU_SCOPED_TRACE("vkCmdSetViewport returnUnmarshal");
     mImpl->log("finish vkCmdSetViewport");;
 }
 
@@ -6712,6 +6993,7 @@
     uint32_t scissorCount,
     const VkRect2D* pScissors)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetScissor encode");
     mImpl->log("start vkCmdSetScissor");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -6767,6 +7049,8 @@
     {
         marshal_VkRect2D(stream, (VkRect2D*)(local_pScissors + i));
     }
+    AEMU_SCOPED_TRACE("vkCmdSetScissor readParams");
+    AEMU_SCOPED_TRACE("vkCmdSetScissor returnUnmarshal");
     mImpl->log("finish vkCmdSetScissor");;
 }
 
@@ -6774,6 +7058,7 @@
     VkCommandBuffer commandBuffer,
     float lineWidth)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetLineWidth encode");
     mImpl->log("start vkCmdSetLineWidth");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -6800,6 +7085,8 @@
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_510, 1);
     stream->write((uint64_t*)&cgen_var_510, 1 * 8);
     stream->write((float*)&local_lineWidth, sizeof(float));
+    AEMU_SCOPED_TRACE("vkCmdSetLineWidth readParams");
+    AEMU_SCOPED_TRACE("vkCmdSetLineWidth returnUnmarshal");
     mImpl->log("finish vkCmdSetLineWidth");;
 }
 
@@ -6809,6 +7096,7 @@
     float depthBiasClamp,
     float depthBiasSlopeFactor)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetDepthBias encode");
     mImpl->log("start vkCmdSetDepthBias");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -6843,6 +7131,8 @@
     stream->write((float*)&local_depthBiasConstantFactor, sizeof(float));
     stream->write((float*)&local_depthBiasClamp, sizeof(float));
     stream->write((float*)&local_depthBiasSlopeFactor, sizeof(float));
+    AEMU_SCOPED_TRACE("vkCmdSetDepthBias readParams");
+    AEMU_SCOPED_TRACE("vkCmdSetDepthBias returnUnmarshal");
     mImpl->log("finish vkCmdSetDepthBias");;
 }
 
@@ -6850,6 +7140,7 @@
     VkCommandBuffer commandBuffer,
     const float blendConstants)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetBlendConstants encode");
     mImpl->log("start vkCmdSetBlendConstants");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -6876,6 +7167,8 @@
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_514, 1);
     stream->write((uint64_t*)&cgen_var_514, 1 * 8);
     stream->write((float*)&local_blendConstants, 4 * sizeof(float));
+    AEMU_SCOPED_TRACE("vkCmdSetBlendConstants readParams");
+    AEMU_SCOPED_TRACE("vkCmdSetBlendConstants returnUnmarshal");
     mImpl->log("finish vkCmdSetBlendConstants");;
 }
 
@@ -6884,6 +7177,7 @@
     float minDepthBounds,
     float maxDepthBounds)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetDepthBounds encode");
     mImpl->log("start vkCmdSetDepthBounds");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -6914,6 +7208,8 @@
     stream->write((uint64_t*)&cgen_var_516, 1 * 8);
     stream->write((float*)&local_minDepthBounds, sizeof(float));
     stream->write((float*)&local_maxDepthBounds, sizeof(float));
+    AEMU_SCOPED_TRACE("vkCmdSetDepthBounds readParams");
+    AEMU_SCOPED_TRACE("vkCmdSetDepthBounds returnUnmarshal");
     mImpl->log("finish vkCmdSetDepthBounds");;
 }
 
@@ -6922,6 +7218,7 @@
     VkStencilFaceFlags faceMask,
     uint32_t compareMask)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask encode");
     mImpl->log("start vkCmdSetStencilCompareMask");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -6952,6 +7249,8 @@
     stream->write((uint64_t*)&cgen_var_518, 1 * 8);
     stream->write((VkStencilFaceFlags*)&local_faceMask, sizeof(VkStencilFaceFlags));
     stream->write((uint32_t*)&local_compareMask, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask readParams");
+    AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask returnUnmarshal");
     mImpl->log("finish vkCmdSetStencilCompareMask");;
 }
 
@@ -6960,6 +7259,7 @@
     VkStencilFaceFlags faceMask,
     uint32_t writeMask)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask encode");
     mImpl->log("start vkCmdSetStencilWriteMask");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -6990,6 +7290,8 @@
     stream->write((uint64_t*)&cgen_var_520, 1 * 8);
     stream->write((VkStencilFaceFlags*)&local_faceMask, sizeof(VkStencilFaceFlags));
     stream->write((uint32_t*)&local_writeMask, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask readParams");
+    AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask returnUnmarshal");
     mImpl->log("finish vkCmdSetStencilWriteMask");;
 }
 
@@ -6998,6 +7300,7 @@
     VkStencilFaceFlags faceMask,
     uint32_t reference)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetStencilReference encode");
     mImpl->log("start vkCmdSetStencilReference");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -7028,6 +7331,8 @@
     stream->write((uint64_t*)&cgen_var_522, 1 * 8);
     stream->write((VkStencilFaceFlags*)&local_faceMask, sizeof(VkStencilFaceFlags));
     stream->write((uint32_t*)&local_reference, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdSetStencilReference readParams");
+    AEMU_SCOPED_TRACE("vkCmdSetStencilReference returnUnmarshal");
     mImpl->log("finish vkCmdSetStencilReference");;
 }
 
@@ -7041,6 +7346,7 @@
     uint32_t dynamicOffsetCount,
     const uint32_t* pDynamicOffsets)
 {
+    AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets encode");
     mImpl->log("start vkCmdBindDescriptorSets");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -7115,6 +7421,8 @@
     }
     stream->write((uint32_t*)&local_dynamicOffsetCount, sizeof(uint32_t));
     stream->write((uint32_t*)local_pDynamicOffsets, ((dynamicOffsetCount)) * sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets readParams");
+    AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets returnUnmarshal");
     mImpl->log("finish vkCmdBindDescriptorSets");;
 }
 
@@ -7124,6 +7432,7 @@
     VkDeviceSize offset,
     VkIndexType indexType)
 {
+    AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer encode");
     mImpl->log("start vkCmdBindIndexBuffer");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -7162,6 +7471,8 @@
     stream->write((uint64_t*)&cgen_var_532, 1 * 8);
     stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
     stream->write((VkIndexType*)&local_indexType, sizeof(VkIndexType));
+    AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer readParams");
+    AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer returnUnmarshal");
     mImpl->log("finish vkCmdBindIndexBuffer");;
 }
 
@@ -7172,6 +7483,7 @@
     const VkBuffer* pBuffers,
     const VkDeviceSize* pOffsets)
 {
+    AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers encode");
     mImpl->log("start vkCmdBindVertexBuffers");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -7230,6 +7542,8 @@
         stream->write((uint64_t*)cgen_var_536, ((bindingCount)) * 8);
     }
     stream->write((VkDeviceSize*)local_pOffsets, ((bindingCount)) * sizeof(VkDeviceSize));
+    AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers readParams");
+    AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers returnUnmarshal");
     mImpl->log("finish vkCmdBindVertexBuffers");;
 }
 
@@ -7240,6 +7554,7 @@
     uint32_t firstVertex,
     uint32_t firstInstance)
 {
+    AEMU_SCOPED_TRACE("vkCmdDraw encode");
     mImpl->log("start vkCmdDraw");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -7278,6 +7593,8 @@
     stream->write((uint32_t*)&local_instanceCount, sizeof(uint32_t));
     stream->write((uint32_t*)&local_firstVertex, sizeof(uint32_t));
     stream->write((uint32_t*)&local_firstInstance, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdDraw readParams");
+    AEMU_SCOPED_TRACE("vkCmdDraw returnUnmarshal");
     mImpl->log("finish vkCmdDraw");;
 }
 
@@ -7289,6 +7606,7 @@
     int32_t vertexOffset,
     uint32_t firstInstance)
 {
+    AEMU_SCOPED_TRACE("vkCmdDrawIndexed encode");
     mImpl->log("start vkCmdDrawIndexed");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -7331,6 +7649,8 @@
     stream->write((uint32_t*)&local_firstIndex, sizeof(uint32_t));
     stream->write((int32_t*)&local_vertexOffset, sizeof(int32_t));
     stream->write((uint32_t*)&local_firstInstance, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdDrawIndexed readParams");
+    AEMU_SCOPED_TRACE("vkCmdDrawIndexed returnUnmarshal");
     mImpl->log("finish vkCmdDrawIndexed");;
 }
 
@@ -7341,6 +7661,7 @@
     uint32_t drawCount,
     uint32_t stride)
 {
+    AEMU_SCOPED_TRACE("vkCmdDrawIndirect encode");
     mImpl->log("start vkCmdDrawIndirect");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -7383,6 +7704,8 @@
     stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
     stream->write((uint32_t*)&local_drawCount, sizeof(uint32_t));
     stream->write((uint32_t*)&local_stride, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdDrawIndirect readParams");
+    AEMU_SCOPED_TRACE("vkCmdDrawIndirect returnUnmarshal");
     mImpl->log("finish vkCmdDrawIndirect");;
 }
 
@@ -7393,6 +7716,7 @@
     uint32_t drawCount,
     uint32_t stride)
 {
+    AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect encode");
     mImpl->log("start vkCmdDrawIndexedIndirect");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -7435,6 +7759,8 @@
     stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
     stream->write((uint32_t*)&local_drawCount, sizeof(uint32_t));
     stream->write((uint32_t*)&local_stride, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect readParams");
+    AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect returnUnmarshal");
     mImpl->log("finish vkCmdDrawIndexedIndirect");;
 }
 
@@ -7444,6 +7770,7 @@
     uint32_t groupCountY,
     uint32_t groupCountZ)
 {
+    AEMU_SCOPED_TRACE("vkCmdDispatch encode");
     mImpl->log("start vkCmdDispatch");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -7478,6 +7805,8 @@
     stream->write((uint32_t*)&local_groupCountX, sizeof(uint32_t));
     stream->write((uint32_t*)&local_groupCountY, sizeof(uint32_t));
     stream->write((uint32_t*)&local_groupCountZ, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdDispatch readParams");
+    AEMU_SCOPED_TRACE("vkCmdDispatch returnUnmarshal");
     mImpl->log("finish vkCmdDispatch");;
 }
 
@@ -7486,6 +7815,7 @@
     VkBuffer buffer,
     VkDeviceSize offset)
 {
+    AEMU_SCOPED_TRACE("vkCmdDispatchIndirect encode");
     mImpl->log("start vkCmdDispatchIndirect");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -7520,6 +7850,8 @@
     stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_554, 1);
     stream->write((uint64_t*)&cgen_var_554, 1 * 8);
     stream->write((VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
+    AEMU_SCOPED_TRACE("vkCmdDispatchIndirect readParams");
+    AEMU_SCOPED_TRACE("vkCmdDispatchIndirect returnUnmarshal");
     mImpl->log("finish vkCmdDispatchIndirect");;
 }
 
@@ -7530,6 +7862,7 @@
     uint32_t regionCount,
     const VkBufferCopy* pRegions)
 {
+    AEMU_SCOPED_TRACE("vkCmdCopyBuffer encode");
     mImpl->log("start vkCmdCopyBuffer");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -7597,6 +7930,8 @@
     {
         marshal_VkBufferCopy(stream, (VkBufferCopy*)(local_pRegions + i));
     }
+    AEMU_SCOPED_TRACE("vkCmdCopyBuffer readParams");
+    AEMU_SCOPED_TRACE("vkCmdCopyBuffer returnUnmarshal");
     mImpl->log("finish vkCmdCopyBuffer");;
 }
 
@@ -7609,6 +7944,7 @@
     uint32_t regionCount,
     const VkImageCopy* pRegions)
 {
+    AEMU_SCOPED_TRACE("vkCmdCopyImage encode");
     mImpl->log("start vkCmdCopyImage");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -7684,6 +8020,8 @@
     {
         marshal_VkImageCopy(stream, (VkImageCopy*)(local_pRegions + i));
     }
+    AEMU_SCOPED_TRACE("vkCmdCopyImage readParams");
+    AEMU_SCOPED_TRACE("vkCmdCopyImage returnUnmarshal");
     mImpl->log("finish vkCmdCopyImage");;
 }
 
@@ -7697,6 +8035,7 @@
     const VkImageBlit* pRegions,
     VkFilter filter)
 {
+    AEMU_SCOPED_TRACE("vkCmdBlitImage encode");
     mImpl->log("start vkCmdBlitImage");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -7776,6 +8115,8 @@
         marshal_VkImageBlit(stream, (VkImageBlit*)(local_pRegions + i));
     }
     stream->write((VkFilter*)&local_filter, sizeof(VkFilter));
+    AEMU_SCOPED_TRACE("vkCmdBlitImage readParams");
+    AEMU_SCOPED_TRACE("vkCmdBlitImage returnUnmarshal");
     mImpl->log("finish vkCmdBlitImage");;
 }
 
@@ -7787,6 +8128,7 @@
     uint32_t regionCount,
     const VkBufferImageCopy* pRegions)
 {
+    AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage encode");
     mImpl->log("start vkCmdCopyBufferToImage");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -7858,6 +8200,8 @@
     {
         marshal_VkBufferImageCopy(stream, (VkBufferImageCopy*)(local_pRegions + i));
     }
+    AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage readParams");
+    AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage returnUnmarshal");
     mImpl->log("finish vkCmdCopyBufferToImage");;
 }
 
@@ -7869,6 +8213,7 @@
     uint32_t regionCount,
     const VkBufferImageCopy* pRegions)
 {
+    AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer encode");
     mImpl->log("start vkCmdCopyImageToBuffer");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -7940,6 +8285,8 @@
     {
         marshal_VkBufferImageCopy(stream, (VkBufferImageCopy*)(local_pRegions + i));
     }
+    AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer readParams");
+    AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer returnUnmarshal");
     mImpl->log("finish vkCmdCopyImageToBuffer");;
 }
 
@@ -7950,6 +8297,7 @@
     VkDeviceSize dataSize,
     const void* pData)
 {
+    AEMU_SCOPED_TRACE("vkCmdUpdateBuffer encode");
     mImpl->log("start vkCmdUpdateBuffer");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -7996,6 +8344,8 @@
     stream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize));
     stream->write((VkDeviceSize*)&local_dataSize, sizeof(VkDeviceSize));
     stream->write((void*)local_pData, ((dataSize)) * sizeof(uint8_t));
+    AEMU_SCOPED_TRACE("vkCmdUpdateBuffer readParams");
+    AEMU_SCOPED_TRACE("vkCmdUpdateBuffer returnUnmarshal");
     mImpl->log("finish vkCmdUpdateBuffer");;
 }
 
@@ -8006,6 +8356,7 @@
     VkDeviceSize size,
     uint32_t data)
 {
+    AEMU_SCOPED_TRACE("vkCmdFillBuffer encode");
     mImpl->log("start vkCmdFillBuffer");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -8048,6 +8399,8 @@
     stream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize));
     stream->write((VkDeviceSize*)&local_size, sizeof(VkDeviceSize));
     stream->write((uint32_t*)&local_data, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdFillBuffer readParams");
+    AEMU_SCOPED_TRACE("vkCmdFillBuffer returnUnmarshal");
     mImpl->log("finish vkCmdFillBuffer");;
 }
 
@@ -8059,6 +8412,7 @@
     uint32_t rangeCount,
     const VkImageSubresourceRange* pRanges)
 {
+    AEMU_SCOPED_TRACE("vkCmdClearColorImage encode");
     mImpl->log("start vkCmdClearColorImage");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -8135,6 +8489,8 @@
     {
         marshal_VkImageSubresourceRange(stream, (VkImageSubresourceRange*)(local_pRanges + i));
     }
+    AEMU_SCOPED_TRACE("vkCmdClearColorImage readParams");
+    AEMU_SCOPED_TRACE("vkCmdClearColorImage returnUnmarshal");
     mImpl->log("finish vkCmdClearColorImage");;
 }
 
@@ -8146,6 +8502,7 @@
     uint32_t rangeCount,
     const VkImageSubresourceRange* pRanges)
 {
+    AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage encode");
     mImpl->log("start vkCmdClearDepthStencilImage");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -8222,6 +8579,8 @@
     {
         marshal_VkImageSubresourceRange(stream, (VkImageSubresourceRange*)(local_pRanges + i));
     }
+    AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage readParams");
+    AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage returnUnmarshal");
     mImpl->log("finish vkCmdClearDepthStencilImage");;
 }
 
@@ -8232,6 +8591,7 @@
     uint32_t rectCount,
     const VkClearRect* pRects)
 {
+    AEMU_SCOPED_TRACE("vkCmdClearAttachments encode");
     mImpl->log("start vkCmdClearAttachments");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -8312,6 +8672,8 @@
     {
         marshal_VkClearRect(stream, (VkClearRect*)(local_pRects + i));
     }
+    AEMU_SCOPED_TRACE("vkCmdClearAttachments readParams");
+    AEMU_SCOPED_TRACE("vkCmdClearAttachments returnUnmarshal");
     mImpl->log("finish vkCmdClearAttachments");;
 }
 
@@ -8324,6 +8686,7 @@
     uint32_t regionCount,
     const VkImageResolve* pRegions)
 {
+    AEMU_SCOPED_TRACE("vkCmdResolveImage encode");
     mImpl->log("start vkCmdResolveImage");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -8399,6 +8762,8 @@
     {
         marshal_VkImageResolve(stream, (VkImageResolve*)(local_pRegions + i));
     }
+    AEMU_SCOPED_TRACE("vkCmdResolveImage readParams");
+    AEMU_SCOPED_TRACE("vkCmdResolveImage returnUnmarshal");
     mImpl->log("finish vkCmdResolveImage");;
 }
 
@@ -8407,6 +8772,7 @@
     VkEvent event,
     VkPipelineStageFlags stageMask)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetEvent encode");
     mImpl->log("start vkCmdSetEvent");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -8441,6 +8807,8 @@
     stream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_612, 1);
     stream->write((uint64_t*)&cgen_var_612, 1 * 8);
     stream->write((VkPipelineStageFlags*)&local_stageMask, sizeof(VkPipelineStageFlags));
+    AEMU_SCOPED_TRACE("vkCmdSetEvent readParams");
+    AEMU_SCOPED_TRACE("vkCmdSetEvent returnUnmarshal");
     mImpl->log("finish vkCmdSetEvent");;
 }
 
@@ -8449,6 +8817,7 @@
     VkEvent event,
     VkPipelineStageFlags stageMask)
 {
+    AEMU_SCOPED_TRACE("vkCmdResetEvent encode");
     mImpl->log("start vkCmdResetEvent");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -8483,6 +8852,8 @@
     stream->handleMapping()->mapHandles_VkEvent_u64(&local_event, &cgen_var_616, 1);
     stream->write((uint64_t*)&cgen_var_616, 1 * 8);
     stream->write((VkPipelineStageFlags*)&local_stageMask, sizeof(VkPipelineStageFlags));
+    AEMU_SCOPED_TRACE("vkCmdResetEvent readParams");
+    AEMU_SCOPED_TRACE("vkCmdResetEvent returnUnmarshal");
     mImpl->log("finish vkCmdResetEvent");;
 }
 
@@ -8499,6 +8870,7 @@
     uint32_t imageMemoryBarrierCount,
     const VkImageMemoryBarrier* pImageMemoryBarriers)
 {
+    AEMU_SCOPED_TRACE("vkCmdWaitEvents encode");
     mImpl->log("start vkCmdWaitEvents");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -8640,6 +9012,8 @@
     {
         marshal_VkImageMemoryBarrier(stream, (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i));
     }
+    AEMU_SCOPED_TRACE("vkCmdWaitEvents readParams");
+    AEMU_SCOPED_TRACE("vkCmdWaitEvents returnUnmarshal");
     mImpl->log("finish vkCmdWaitEvents");;
 }
 
@@ -8655,6 +9029,7 @@
     uint32_t imageMemoryBarrierCount,
     const VkImageMemoryBarrier* pImageMemoryBarriers)
 {
+    AEMU_SCOPED_TRACE("vkCmdPipelineBarrier encode");
     mImpl->log("start vkCmdPipelineBarrier");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -8776,6 +9151,8 @@
     {
         marshal_VkImageMemoryBarrier(stream, (VkImageMemoryBarrier*)(local_pImageMemoryBarriers + i));
     }
+    AEMU_SCOPED_TRACE("vkCmdPipelineBarrier readParams");
+    AEMU_SCOPED_TRACE("vkCmdPipelineBarrier returnUnmarshal");
     mImpl->log("finish vkCmdPipelineBarrier");;
 }
 
@@ -8785,6 +9162,7 @@
     uint32_t query,
     VkQueryControlFlags flags)
 {
+    AEMU_SCOPED_TRACE("vkCmdBeginQuery encode");
     mImpl->log("start vkCmdBeginQuery");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -8823,6 +9201,8 @@
     stream->write((uint64_t*)&cgen_var_626, 1 * 8);
     stream->write((uint32_t*)&local_query, sizeof(uint32_t));
     stream->write((VkQueryControlFlags*)&local_flags, sizeof(VkQueryControlFlags));
+    AEMU_SCOPED_TRACE("vkCmdBeginQuery readParams");
+    AEMU_SCOPED_TRACE("vkCmdBeginQuery returnUnmarshal");
     mImpl->log("finish vkCmdBeginQuery");;
 }
 
@@ -8831,6 +9211,7 @@
     VkQueryPool queryPool,
     uint32_t query)
 {
+    AEMU_SCOPED_TRACE("vkCmdEndQuery encode");
     mImpl->log("start vkCmdEndQuery");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -8865,6 +9246,8 @@
     stream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_630, 1);
     stream->write((uint64_t*)&cgen_var_630, 1 * 8);
     stream->write((uint32_t*)&local_query, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdEndQuery readParams");
+    AEMU_SCOPED_TRACE("vkCmdEndQuery returnUnmarshal");
     mImpl->log("finish vkCmdEndQuery");;
 }
 
@@ -8874,6 +9257,7 @@
     uint32_t firstQuery,
     uint32_t queryCount)
 {
+    AEMU_SCOPED_TRACE("vkCmdResetQueryPool encode");
     mImpl->log("start vkCmdResetQueryPool");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -8912,6 +9296,8 @@
     stream->write((uint64_t*)&cgen_var_634, 1 * 8);
     stream->write((uint32_t*)&local_firstQuery, sizeof(uint32_t));
     stream->write((uint32_t*)&local_queryCount, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdResetQueryPool readParams");
+    AEMU_SCOPED_TRACE("vkCmdResetQueryPool returnUnmarshal");
     mImpl->log("finish vkCmdResetQueryPool");;
 }
 
@@ -8921,6 +9307,7 @@
     VkQueryPool queryPool,
     uint32_t query)
 {
+    AEMU_SCOPED_TRACE("vkCmdWriteTimestamp encode");
     mImpl->log("start vkCmdWriteTimestamp");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -8959,6 +9346,8 @@
     stream->handleMapping()->mapHandles_VkQueryPool_u64(&local_queryPool, &cgen_var_638, 1);
     stream->write((uint64_t*)&cgen_var_638, 1 * 8);
     stream->write((uint32_t*)&local_query, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdWriteTimestamp readParams");
+    AEMU_SCOPED_TRACE("vkCmdWriteTimestamp returnUnmarshal");
     mImpl->log("finish vkCmdWriteTimestamp");;
 }
 
@@ -8972,6 +9361,7 @@
     VkDeviceSize stride,
     VkQueryResultFlags flags)
 {
+    AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults encode");
     mImpl->log("start vkCmdCopyQueryPoolResults");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -9030,6 +9420,8 @@
     stream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize));
     stream->write((VkDeviceSize*)&local_stride, sizeof(VkDeviceSize));
     stream->write((VkQueryResultFlags*)&local_flags, sizeof(VkQueryResultFlags));
+    AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults readParams");
+    AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults returnUnmarshal");
     mImpl->log("finish vkCmdCopyQueryPoolResults");;
 }
 
@@ -9041,6 +9433,7 @@
     uint32_t size,
     const void* pValues)
 {
+    AEMU_SCOPED_TRACE("vkCmdPushConstants encode");
     mImpl->log("start vkCmdPushConstants");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -9091,6 +9484,8 @@
     stream->write((uint32_t*)&local_offset, sizeof(uint32_t));
     stream->write((uint32_t*)&local_size, sizeof(uint32_t));
     stream->write((void*)local_pValues, ((size)) * sizeof(uint8_t));
+    AEMU_SCOPED_TRACE("vkCmdPushConstants readParams");
+    AEMU_SCOPED_TRACE("vkCmdPushConstants returnUnmarshal");
     mImpl->log("finish vkCmdPushConstants");;
 }
 
@@ -9099,6 +9494,7 @@
     const VkRenderPassBeginInfo* pRenderPassBegin,
     VkSubpassContents contents)
 {
+    AEMU_SCOPED_TRACE("vkCmdBeginRenderPass encode");
     mImpl->log("start vkCmdBeginRenderPass");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -9138,6 +9534,8 @@
     stream->write((uint64_t*)&cgen_var_650, 1 * 8);
     marshal_VkRenderPassBeginInfo(stream, (VkRenderPassBeginInfo*)(local_pRenderPassBegin));
     stream->write((VkSubpassContents*)&local_contents, sizeof(VkSubpassContents));
+    AEMU_SCOPED_TRACE("vkCmdBeginRenderPass readParams");
+    AEMU_SCOPED_TRACE("vkCmdBeginRenderPass returnUnmarshal");
     mImpl->log("finish vkCmdBeginRenderPass");;
 }
 
@@ -9145,6 +9543,7 @@
     VkCommandBuffer commandBuffer,
     VkSubpassContents contents)
 {
+    AEMU_SCOPED_TRACE("vkCmdNextSubpass encode");
     mImpl->log("start vkCmdNextSubpass");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -9171,12 +9570,15 @@
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_652, 1);
     stream->write((uint64_t*)&cgen_var_652, 1 * 8);
     stream->write((VkSubpassContents*)&local_contents, sizeof(VkSubpassContents));
+    AEMU_SCOPED_TRACE("vkCmdNextSubpass readParams");
+    AEMU_SCOPED_TRACE("vkCmdNextSubpass returnUnmarshal");
     mImpl->log("finish vkCmdNextSubpass");;
 }
 
 void VkEncoder::vkCmdEndRenderPass(
     VkCommandBuffer commandBuffer)
 {
+    AEMU_SCOPED_TRACE("vkCmdEndRenderPass encode");
     mImpl->log("start vkCmdEndRenderPass");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -9199,6 +9601,8 @@
     uint64_t cgen_var_654;
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_654, 1);
     stream->write((uint64_t*)&cgen_var_654, 1 * 8);
+    AEMU_SCOPED_TRACE("vkCmdEndRenderPass readParams");
+    AEMU_SCOPED_TRACE("vkCmdEndRenderPass returnUnmarshal");
     mImpl->log("finish vkCmdEndRenderPass");;
 }
 
@@ -9207,6 +9611,7 @@
     uint32_t commandBufferCount,
     const VkCommandBuffer* pCommandBuffers)
 {
+    AEMU_SCOPED_TRACE("vkCmdExecuteCommands encode");
     mImpl->log("start vkCmdExecuteCommands");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -9253,6 +9658,8 @@
         stream->handleMapping()->mapHandles_VkCommandBuffer_u64(local_pCommandBuffers, cgen_var_658, ((commandBufferCount)));
         stream->write((uint64_t*)cgen_var_658, ((commandBufferCount)) * 8);
     }
+    AEMU_SCOPED_TRACE("vkCmdExecuteCommands readParams");
+    AEMU_SCOPED_TRACE("vkCmdExecuteCommands returnUnmarshal");
     mImpl->log("finish vkCmdExecuteCommands");;
 }
 
@@ -9261,6 +9668,7 @@
 VkResult VkEncoder::vkEnumerateInstanceVersion(
     uint32_t* pApiVersion)
 {
+    AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion resourceEvent");
     VkResult vkEnumerateInstanceVersion_VkResult_return = (VkResult)0;
     vkEnumerateInstanceVersion_VkResult_return = mImpl->resources()->on_vkEnumerateInstanceVersion(this, VK_SUCCESS, pApiVersion);
     mImpl->log("finish vkEnumerateInstanceVersion");;
@@ -9272,6 +9680,7 @@
     uint32_t bindInfoCount,
     const VkBindBufferMemoryInfo* pBindInfos)
 {
+    AEMU_SCOPED_TRACE("vkBindBufferMemory2 encode");
     mImpl->log("start vkBindBufferMemory2");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -9323,6 +9732,8 @@
     {
         marshal_VkBindBufferMemoryInfo(stream, (VkBindBufferMemoryInfo*)(local_pBindInfos + i));
     }
+    AEMU_SCOPED_TRACE("vkBindBufferMemory2 readParams");
+    AEMU_SCOPED_TRACE("vkBindBufferMemory2 returnUnmarshal");
     VkResult vkBindBufferMemory2_VkResult_return = (VkResult)0;
     stream->read(&vkBindBufferMemory2_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -9337,6 +9748,7 @@
     uint32_t bindInfoCount,
     const VkBindImageMemoryInfo* pBindInfos)
 {
+    AEMU_SCOPED_TRACE("vkBindImageMemory2 encode");
     mImpl->log("start vkBindImageMemory2");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -9388,6 +9800,8 @@
     {
         marshal_VkBindImageMemoryInfo(stream, (VkBindImageMemoryInfo*)(local_pBindInfos + i));
     }
+    AEMU_SCOPED_TRACE("vkBindImageMemory2 readParams");
+    AEMU_SCOPED_TRACE("vkBindImageMemory2 returnUnmarshal");
     VkResult vkBindImageMemory2_VkResult_return = (VkResult)0;
     stream->read(&vkBindImageMemory2_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -9404,6 +9818,7 @@
     uint32_t remoteDeviceIndex,
     VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
 {
+    AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures encode");
     mImpl->log("start vkGetDeviceGroupPeerMemoryFeatures");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -9440,7 +9855,9 @@
     stream->write((uint32_t*)&local_localDeviceIndex, sizeof(uint32_t));
     stream->write((uint32_t*)&local_remoteDeviceIndex, sizeof(uint32_t));
     stream->write((VkPeerMemoryFeatureFlags*)pPeerMemoryFeatures, sizeof(VkPeerMemoryFeatureFlags));
+    AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures readParams");
     stream->read((VkPeerMemoryFeatureFlags*)pPeerMemoryFeatures, sizeof(VkPeerMemoryFeatureFlags));
+    AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures returnUnmarshal");
     mImpl->log("finish vkGetDeviceGroupPeerMemoryFeatures");;
 }
 
@@ -9448,6 +9865,7 @@
     VkCommandBuffer commandBuffer,
     uint32_t deviceMask)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetDeviceMask encode");
     mImpl->log("start vkCmdSetDeviceMask");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -9474,6 +9892,8 @@
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_666, 1);
     stream->write((uint64_t*)&cgen_var_666, 1 * 8);
     stream->write((uint32_t*)&local_deviceMask, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdSetDeviceMask readParams");
+    AEMU_SCOPED_TRACE("vkCmdSetDeviceMask returnUnmarshal");
     mImpl->log("finish vkCmdSetDeviceMask");;
 }
 
@@ -9486,6 +9906,7 @@
     uint32_t groupCountY,
     uint32_t groupCountZ)
 {
+    AEMU_SCOPED_TRACE("vkCmdDispatchBase encode");
     mImpl->log("start vkCmdDispatchBase");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -9532,6 +9953,8 @@
     stream->write((uint32_t*)&local_groupCountX, sizeof(uint32_t));
     stream->write((uint32_t*)&local_groupCountY, sizeof(uint32_t));
     stream->write((uint32_t*)&local_groupCountZ, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdDispatchBase readParams");
+    AEMU_SCOPED_TRACE("vkCmdDispatchBase returnUnmarshal");
     mImpl->log("finish vkCmdDispatchBase");;
 }
 
@@ -9540,6 +9963,7 @@
     uint32_t* pPhysicalDeviceGroupCount,
     VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
 {
+    AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups encode");
     mImpl->log("start vkEnumeratePhysicalDeviceGroups");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -9596,6 +10020,7 @@
             marshal_VkPhysicalDeviceGroupProperties(stream, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups readParams");
     // WARNING PTR CHECK
     uint32_t* check_pPhysicalDeviceGroupCount;
     check_pPhysicalDeviceGroupCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -9628,6 +10053,7 @@
             transform_fromhost_VkPhysicalDeviceGroupProperties(mImpl->resources(), (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups returnUnmarshal");
     VkResult vkEnumeratePhysicalDeviceGroups_VkResult_return = (VkResult)0;
     stream->read(&vkEnumeratePhysicalDeviceGroups_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -9642,6 +10068,7 @@
     const VkImageMemoryRequirementsInfo2* pInfo,
     VkMemoryRequirements2* pMemoryRequirements)
 {
+    AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2 encode");
     mImpl->log("start vkGetImageMemoryRequirements2");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -9679,11 +10106,13 @@
     stream->write((uint64_t*)&cgen_var_678, 1 * 8);
     marshal_VkImageMemoryRequirementsInfo2(stream, (VkImageMemoryRequirementsInfo2*)(local_pInfo));
     marshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
+    AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2 readParams");
     unmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
     if (pMemoryRequirements)
     {
         transform_fromhost_VkMemoryRequirements2(mImpl->resources(), (VkMemoryRequirements2*)(pMemoryRequirements));
     }
+    AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2 returnUnmarshal");
     mImpl->log("finish vkGetImageMemoryRequirements2");;
 }
 
@@ -9692,6 +10121,7 @@
     const VkBufferMemoryRequirementsInfo2* pInfo,
     VkMemoryRequirements2* pMemoryRequirements)
 {
+    AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2 encode");
     mImpl->log("start vkGetBufferMemoryRequirements2");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -9729,11 +10159,13 @@
     stream->write((uint64_t*)&cgen_var_680, 1 * 8);
     marshal_VkBufferMemoryRequirementsInfo2(stream, (VkBufferMemoryRequirementsInfo2*)(local_pInfo));
     marshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
+    AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2 readParams");
     unmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
     if (pMemoryRequirements)
     {
         transform_fromhost_VkMemoryRequirements2(mImpl->resources(), (VkMemoryRequirements2*)(pMemoryRequirements));
     }
+    AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2 returnUnmarshal");
     mImpl->log("finish vkGetBufferMemoryRequirements2");;
 }
 
@@ -9743,6 +10175,7 @@
     uint32_t* pSparseMemoryRequirementCount,
     VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
 {
+    AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2 encode");
     mImpl->log("start vkGetImageSparseMemoryRequirements2");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -9812,6 +10245,7 @@
             marshal_VkSparseImageMemoryRequirements2(stream, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2 readParams");
     // WARNING PTR CHECK
     uint32_t* check_pSparseMemoryRequirementCount;
     check_pSparseMemoryRequirementCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -9844,6 +10278,7 @@
             transform_fromhost_VkSparseImageMemoryRequirements2(mImpl->resources(), (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2 returnUnmarshal");
     mImpl->log("finish vkGetImageSparseMemoryRequirements2");;
 }
 
@@ -9851,6 +10286,7 @@
     VkPhysicalDevice physicalDevice,
     VkPhysicalDeviceFeatures2* pFeatures)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2 encode");
     mImpl->log("start vkGetPhysicalDeviceFeatures2");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -9875,11 +10311,13 @@
     stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_690, 1);
     stream->write((uint64_t*)&cgen_var_690, 1 * 8);
     marshal_VkPhysicalDeviceFeatures2(stream, (VkPhysicalDeviceFeatures2*)(pFeatures));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2 readParams");
     unmarshal_VkPhysicalDeviceFeatures2(stream, (VkPhysicalDeviceFeatures2*)(pFeatures));
     if (pFeatures)
     {
         transform_fromhost_VkPhysicalDeviceFeatures2(mImpl->resources(), (VkPhysicalDeviceFeatures2*)(pFeatures));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2 returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceFeatures2");;
 }
 
@@ -9887,6 +10325,7 @@
     VkPhysicalDevice physicalDevice,
     VkPhysicalDeviceProperties2* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2 encode");
     mImpl->log("start vkGetPhysicalDeviceProperties2");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -9911,11 +10350,13 @@
     stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_692, 1);
     stream->write((uint64_t*)&cgen_var_692, 1 * 8);
     marshal_VkPhysicalDeviceProperties2(stream, (VkPhysicalDeviceProperties2*)(pProperties));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2 readParams");
     unmarshal_VkPhysicalDeviceProperties2(stream, (VkPhysicalDeviceProperties2*)(pProperties));
     if (pProperties)
     {
         transform_fromhost_VkPhysicalDeviceProperties2(mImpl->resources(), (VkPhysicalDeviceProperties2*)(pProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2 returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceProperties2");;
 }
 
@@ -9924,6 +10365,7 @@
     VkFormat format,
     VkFormatProperties2* pFormatProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2 encode");
     mImpl->log("start vkGetPhysicalDeviceFormatProperties2");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -9952,11 +10394,13 @@
     stream->write((uint64_t*)&cgen_var_694, 1 * 8);
     stream->write((VkFormat*)&local_format, sizeof(VkFormat));
     marshal_VkFormatProperties2(stream, (VkFormatProperties2*)(pFormatProperties));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2 readParams");
     unmarshal_VkFormatProperties2(stream, (VkFormatProperties2*)(pFormatProperties));
     if (pFormatProperties)
     {
         transform_fromhost_VkFormatProperties2(mImpl->resources(), (VkFormatProperties2*)(pFormatProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2 returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceFormatProperties2");;
 }
 
@@ -9965,6 +10409,7 @@
     const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
     VkImageFormatProperties2* pImageFormatProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2 encode");
     mImpl->log("start vkGetPhysicalDeviceImageFormatProperties2");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -10002,11 +10447,13 @@
     stream->write((uint64_t*)&cgen_var_696, 1 * 8);
     marshal_VkPhysicalDeviceImageFormatInfo2(stream, (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo));
     marshal_VkImageFormatProperties2(stream, (VkImageFormatProperties2*)(pImageFormatProperties));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2 readParams");
     unmarshal_VkImageFormatProperties2(stream, (VkImageFormatProperties2*)(pImageFormatProperties));
     if (pImageFormatProperties)
     {
         transform_fromhost_VkImageFormatProperties2(mImpl->resources(), (VkImageFormatProperties2*)(pImageFormatProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2 returnUnmarshal");
     VkResult vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceImageFormatProperties2_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -10021,6 +10468,7 @@
     uint32_t* pQueueFamilyPropertyCount,
     VkQueueFamilyProperties2* pQueueFamilyProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2 encode");
     mImpl->log("start vkGetPhysicalDeviceQueueFamilyProperties2");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -10077,6 +10525,7 @@
             marshal_VkQueueFamilyProperties2(stream, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2 readParams");
     // WARNING PTR CHECK
     uint32_t* check_pQueueFamilyPropertyCount;
     check_pQueueFamilyPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -10109,6 +10558,7 @@
             transform_fromhost_VkQueueFamilyProperties2(mImpl->resources(), (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2 returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceQueueFamilyProperties2");;
 }
 
@@ -10116,6 +10566,7 @@
     VkPhysicalDevice physicalDevice,
     VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2 encode");
     mImpl->log("start vkGetPhysicalDeviceMemoryProperties2");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -10140,11 +10591,13 @@
     stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_706, 1);
     stream->write((uint64_t*)&cgen_var_706, 1 * 8);
     marshal_VkPhysicalDeviceMemoryProperties2(stream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2 readParams");
     unmarshal_VkPhysicalDeviceMemoryProperties2(stream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
     if (pMemoryProperties)
     {
         transform_fromhost_VkPhysicalDeviceMemoryProperties2(mImpl->resources(), (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2 returnUnmarshal");
     mImpl->resources()->on_vkGetPhysicalDeviceMemoryProperties2(this, physicalDevice, pMemoryProperties);
     mImpl->log("finish vkGetPhysicalDeviceMemoryProperties2");;
 }
@@ -10155,6 +10608,7 @@
     uint32_t* pPropertyCount,
     VkSparseImageFormatProperties2* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2 encode");
     mImpl->log("start vkGetPhysicalDeviceSparseImageFormatProperties2");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -10224,6 +10678,7 @@
             marshal_VkSparseImageFormatProperties2(stream, (VkSparseImageFormatProperties2*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2 readParams");
     // WARNING PTR CHECK
     uint32_t* check_pPropertyCount;
     check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -10256,6 +10711,7 @@
             transform_fromhost_VkSparseImageFormatProperties2(mImpl->resources(), (VkSparseImageFormatProperties2*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2 returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceSparseImageFormatProperties2");;
 }
 
@@ -10264,6 +10720,7 @@
     VkCommandPool commandPool,
     VkCommandPoolTrimFlags flags)
 {
+    AEMU_SCOPED_TRACE("vkTrimCommandPool encode");
     mImpl->log("start vkTrimCommandPool");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -10298,6 +10755,8 @@
     stream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_718, 1);
     stream->write((uint64_t*)&cgen_var_718, 1 * 8);
     stream->write((VkCommandPoolTrimFlags*)&local_flags, sizeof(VkCommandPoolTrimFlags));
+    AEMU_SCOPED_TRACE("vkTrimCommandPool readParams");
+    AEMU_SCOPED_TRACE("vkTrimCommandPool returnUnmarshal");
     mImpl->log("finish vkTrimCommandPool");;
 }
 
@@ -10306,6 +10765,7 @@
     const VkDeviceQueueInfo2* pQueueInfo,
     VkQueue* pQueue)
 {
+    AEMU_SCOPED_TRACE("vkGetDeviceQueue2 encode");
     mImpl->log("start vkGetDeviceQueue2");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -10349,9 +10809,11 @@
     stream->handleMapping()->mapHandles_VkQueue_u64(pQueue, &cgen_var_722, 1);
     stream->write((uint64_t*)&cgen_var_722, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkGetDeviceQueue2 readParams");
     uint64_t cgen_var_723;
     stream->read((uint64_t*)&cgen_var_723, 8);
     stream->handleMapping()->mapHandles_u64_VkQueue(&cgen_var_723, (VkQueue*)pQueue, 1);
+    AEMU_SCOPED_TRACE("vkGetDeviceQueue2 returnUnmarshal");
     mImpl->log("finish vkGetDeviceQueue2");;
 }
 
@@ -10361,6 +10823,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSamplerYcbcrConversion* pYcbcrConversion)
 {
+    AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion encode");
     mImpl->log("start vkCreateSamplerYcbcrConversion");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -10430,11 +10893,13 @@
     stream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(pYcbcrConversion, &cgen_var_729, 1);
     stream->write((uint64_t*)&cgen_var_729, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_730;
     stream->read((uint64_t*)&cgen_var_730, 8);
     stream->handleMapping()->mapHandles_u64_VkSamplerYcbcrConversion(&cgen_var_730, (VkSamplerYcbcrConversion*)pYcbcrConversion, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion returnUnmarshal");
     VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0;
     stream->read(&vkCreateSamplerYcbcrConversion_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -10449,6 +10914,7 @@
     VkSamplerYcbcrConversion ycbcrConversion,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion encode");
     mImpl->log("start vkDestroySamplerYcbcrConversion");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -10505,6 +10971,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion readParams");
+    AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkSamplerYcbcrConversion((VkSamplerYcbcrConversion*)&ycbcrConversion);
     mImpl->log("finish vkDestroySamplerYcbcrConversion");;
 }
@@ -10515,6 +10983,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
 {
+    AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate encode");
     mImpl->log("start vkCreateDescriptorUpdateTemplate");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -10584,11 +11053,13 @@
     stream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(pDescriptorUpdateTemplate, &cgen_var_742, 1);
     stream->write((uint64_t*)&cgen_var_742, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_743;
     stream->read((uint64_t*)&cgen_var_743, 8);
     stream->handleMapping()->mapHandles_u64_VkDescriptorUpdateTemplate(&cgen_var_743, (VkDescriptorUpdateTemplate*)pDescriptorUpdateTemplate, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate returnUnmarshal");
     VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
     stream->read(&vkCreateDescriptorUpdateTemplate_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -10603,6 +11074,7 @@
     VkDescriptorUpdateTemplate descriptorUpdateTemplate,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate encode");
     mImpl->log("start vkDestroyDescriptorUpdateTemplate");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -10659,6 +11131,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate readParams");
+    AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkDescriptorUpdateTemplate((VkDescriptorUpdateTemplate*)&descriptorUpdateTemplate);
     mImpl->log("finish vkDestroyDescriptorUpdateTemplate");;
 }
@@ -10669,6 +11143,7 @@
     VkDescriptorUpdateTemplate descriptorUpdateTemplate,
     const void* pData)
 {
+    AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate encode");
     mImpl->log("start vkUpdateDescriptorSetWithTemplate");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -10727,6 +11202,8 @@
     {
         stream->write((void*)local_pData, sizeof(uint8_t));
     }
+    AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate readParams");
+    AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate returnUnmarshal");
     mImpl->log("finish vkUpdateDescriptorSetWithTemplate");;
 }
 
@@ -10735,6 +11212,7 @@
     const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
     VkExternalBufferProperties* pExternalBufferProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties encode");
     mImpl->log("start vkGetPhysicalDeviceExternalBufferProperties");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -10773,12 +11251,14 @@
     stream->write((uint64_t*)&cgen_var_759, 1 * 8);
     marshal_VkPhysicalDeviceExternalBufferInfo(stream, (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo));
     marshal_VkExternalBufferProperties(stream, (VkExternalBufferProperties*)(pExternalBufferProperties));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties readParams");
     unmarshal_VkExternalBufferProperties(stream, (VkExternalBufferProperties*)(pExternalBufferProperties));
     if (pExternalBufferProperties)
     {
         mImpl->resources()->transformImpl_VkExternalBufferProperties_fromhost(pExternalBufferProperties, 1);
         transform_fromhost_VkExternalBufferProperties(mImpl->resources(), (VkExternalBufferProperties*)(pExternalBufferProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceExternalBufferProperties");;
 }
 
@@ -10787,6 +11267,7 @@
     const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
     VkExternalFenceProperties* pExternalFenceProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties encode");
     mImpl->log("start vkGetPhysicalDeviceExternalFenceProperties");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -10824,11 +11305,13 @@
     stream->write((uint64_t*)&cgen_var_761, 1 * 8);
     marshal_VkPhysicalDeviceExternalFenceInfo(stream, (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo));
     marshal_VkExternalFenceProperties(stream, (VkExternalFenceProperties*)(pExternalFenceProperties));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties readParams");
     unmarshal_VkExternalFenceProperties(stream, (VkExternalFenceProperties*)(pExternalFenceProperties));
     if (pExternalFenceProperties)
     {
         transform_fromhost_VkExternalFenceProperties(mImpl->resources(), (VkExternalFenceProperties*)(pExternalFenceProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceExternalFenceProperties");;
 }
 
@@ -10837,6 +11320,7 @@
     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
     VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties encode");
     mImpl->log("start vkGetPhysicalDeviceExternalSemaphoreProperties");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -10874,11 +11358,13 @@
     stream->write((uint64_t*)&cgen_var_763, 1 * 8);
     marshal_VkPhysicalDeviceExternalSemaphoreInfo(stream, (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo));
     marshal_VkExternalSemaphoreProperties(stream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties readParams");
     unmarshal_VkExternalSemaphoreProperties(stream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
     if (pExternalSemaphoreProperties)
     {
         transform_fromhost_VkExternalSemaphoreProperties(mImpl->resources(), (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceExternalSemaphoreProperties");;
 }
 
@@ -10887,6 +11373,7 @@
     const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
     VkDescriptorSetLayoutSupport* pSupport)
 {
+    AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport encode");
     mImpl->log("start vkGetDescriptorSetLayoutSupport");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -10924,11 +11411,13 @@
     stream->write((uint64_t*)&cgen_var_765, 1 * 8);
     marshal_VkDescriptorSetLayoutCreateInfo(stream, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
     marshal_VkDescriptorSetLayoutSupport(stream, (VkDescriptorSetLayoutSupport*)(pSupport));
+    AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport readParams");
     unmarshal_VkDescriptorSetLayoutSupport(stream, (VkDescriptorSetLayoutSupport*)(pSupport));
     if (pSupport)
     {
         transform_fromhost_VkDescriptorSetLayoutSupport(mImpl->resources(), (VkDescriptorSetLayoutSupport*)(pSupport));
     }
+    AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport returnUnmarshal");
     mImpl->log("finish vkGetDescriptorSetLayoutSupport");;
 }
 
@@ -10939,6 +11428,7 @@
     VkSurfaceKHR surface,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroySurfaceKHR encode");
     mImpl->log("start vkDestroySurfaceKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -10995,6 +11485,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroySurfaceKHR readParams");
+    AEMU_SCOPED_TRACE("vkDestroySurfaceKHR returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkSurfaceKHR((VkSurfaceKHR*)&surface);
     mImpl->log("finish vkDestroySurfaceKHR");;
 }
@@ -11005,6 +11497,7 @@
     VkSurfaceKHR surface,
     VkBool32* pSupported)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR encode");
     mImpl->log("start vkGetPhysicalDeviceSurfaceSupportKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -11041,7 +11534,9 @@
     stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_775, 1);
     stream->write((uint64_t*)&cgen_var_775, 1 * 8);
     stream->write((VkBool32*)pSupported, sizeof(VkBool32));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR readParams");
     stream->read((VkBool32*)pSupported, sizeof(VkBool32));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR returnUnmarshal");
     VkResult vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -11056,6 +11551,7 @@
     VkSurfaceKHR surface,
     VkSurfaceCapabilitiesKHR* pSurfaceCapabilities)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR encode");
     mImpl->log("start vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -11088,11 +11584,13 @@
     stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_779, 1);
     stream->write((uint64_t*)&cgen_var_779, 1 * 8);
     marshal_VkSurfaceCapabilitiesKHR(stream, (VkSurfaceCapabilitiesKHR*)(pSurfaceCapabilities));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR readParams");
     unmarshal_VkSurfaceCapabilitiesKHR(stream, (VkSurfaceCapabilitiesKHR*)(pSurfaceCapabilities));
     if (pSurfaceCapabilities)
     {
         transform_fromhost_VkSurfaceCapabilitiesKHR(mImpl->resources(), (VkSurfaceCapabilitiesKHR*)(pSurfaceCapabilities));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR returnUnmarshal");
     VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -11108,6 +11606,7 @@
     uint32_t* pSurfaceFormatCount,
     VkSurfaceFormatKHR* pSurfaceFormats)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR encode");
     mImpl->log("start vkGetPhysicalDeviceSurfaceFormatsKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -11172,6 +11671,7 @@
             marshal_VkSurfaceFormatKHR(stream, (VkSurfaceFormatKHR*)(pSurfaceFormats + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR readParams");
     // WARNING PTR CHECK
     uint32_t* check_pSurfaceFormatCount;
     check_pSurfaceFormatCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -11204,6 +11704,7 @@
             transform_fromhost_VkSurfaceFormatKHR(mImpl->resources(), (VkSurfaceFormatKHR*)(pSurfaceFormats + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR returnUnmarshal");
     VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -11219,6 +11720,7 @@
     uint32_t* pPresentModeCount,
     VkPresentModeKHR* pPresentModes)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR encode");
     mImpl->log("start vkGetPhysicalDeviceSurfacePresentModesKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -11277,6 +11779,7 @@
     {
         stream->write((VkPresentModeKHR*)pPresentModes, (*(pPresentModeCount)) * sizeof(VkPresentModeKHR));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR readParams");
     // WARNING PTR CHECK
     uint32_t* check_pPresentModeCount;
     check_pPresentModeCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -11299,6 +11802,7 @@
         }
         stream->read((VkPresentModeKHR*)pPresentModes, (*(pPresentModeCount)) * sizeof(VkPresentModeKHR));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR returnUnmarshal");
     VkResult vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -11316,6 +11820,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSwapchainKHR* pSwapchain)
 {
+    AEMU_SCOPED_TRACE("vkCreateSwapchainKHR encode");
     mImpl->log("start vkCreateSwapchainKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -11385,11 +11890,13 @@
     stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(pSwapchain, &cgen_var_805, 1);
     stream->write((uint64_t*)&cgen_var_805, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateSwapchainKHR readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_806;
     stream->read((uint64_t*)&cgen_var_806, 8);
     stream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_806, (VkSwapchainKHR*)pSwapchain, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateSwapchainKHR returnUnmarshal");
     VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateSwapchainKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -11404,6 +11911,7 @@
     VkSwapchainKHR swapchain,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroySwapchainKHR encode");
     mImpl->log("start vkDestroySwapchainKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -11460,6 +11968,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroySwapchainKHR readParams");
+    AEMU_SCOPED_TRACE("vkDestroySwapchainKHR returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkSwapchainKHR((VkSwapchainKHR*)&swapchain);
     mImpl->log("finish vkDestroySwapchainKHR");;
 }
@@ -11470,6 +11980,7 @@
     uint32_t* pSwapchainImageCount,
     VkImage* pSwapchainImages)
 {
+    AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR encode");
     mImpl->log("start vkGetSwapchainImagesKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -11542,6 +12053,7 @@
         }
     }
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR readParams");
     // WARNING PTR CHECK
     uint32_t* check_pSwapchainImageCount;
     check_pSwapchainImageCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -11570,6 +12082,7 @@
             stream->handleMapping()->mapHandles_u64_VkImage(cgen_var_825, (VkImage*)pSwapchainImages, (*(pSwapchainImageCount)));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR returnUnmarshal");
     VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetSwapchainImagesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -11587,6 +12100,7 @@
     VkFence fence,
     uint32_t* pImageIndex)
 {
+    AEMU_SCOPED_TRACE("vkAcquireNextImageKHR encode");
     mImpl->log("start vkAcquireNextImageKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -11639,7 +12153,9 @@
     stream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_833, 1);
     stream->write((uint64_t*)&cgen_var_833, 1 * 8);
     stream->write((uint32_t*)pImageIndex, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkAcquireNextImageKHR readParams");
     stream->read((uint32_t*)pImageIndex, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkAcquireNextImageKHR returnUnmarshal");
     VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
     stream->read(&vkAcquireNextImageKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -11653,6 +12169,7 @@
     VkQueue queue,
     const VkPresentInfoKHR* pPresentInfo)
 {
+    AEMU_SCOPED_TRACE("vkQueuePresentKHR encode");
     mImpl->log("start vkQueuePresentKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -11688,6 +12205,8 @@
     stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_835, 1);
     stream->write((uint64_t*)&cgen_var_835, 1 * 8);
     marshal_VkPresentInfoKHR(stream, (VkPresentInfoKHR*)(local_pPresentInfo));
+    AEMU_SCOPED_TRACE("vkQueuePresentKHR readParams");
+    AEMU_SCOPED_TRACE("vkQueuePresentKHR returnUnmarshal");
     VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0;
     stream->read(&vkQueuePresentKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -11701,6 +12220,7 @@
     VkDevice device,
     VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities)
 {
+    AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR encode");
     mImpl->log("start vkGetDeviceGroupPresentCapabilitiesKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -11725,11 +12245,13 @@
     stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_837, 1);
     stream->write((uint64_t*)&cgen_var_837, 1 * 8);
     marshal_VkDeviceGroupPresentCapabilitiesKHR(stream, (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities));
+    AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR readParams");
     unmarshal_VkDeviceGroupPresentCapabilitiesKHR(stream, (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities));
     if (pDeviceGroupPresentCapabilities)
     {
         transform_fromhost_VkDeviceGroupPresentCapabilitiesKHR(mImpl->resources(), (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities));
     }
+    AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR returnUnmarshal");
     VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -11744,6 +12266,7 @@
     VkSurfaceKHR surface,
     VkDeviceGroupPresentModeFlagsKHR* pModes)
 {
+    AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR encode");
     mImpl->log("start vkGetDeviceGroupSurfacePresentModesKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -11788,6 +12311,7 @@
     {
         stream->write((VkDeviceGroupPresentModeFlagsKHR*)pModes, sizeof(VkDeviceGroupPresentModeFlagsKHR));
     }
+    AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR readParams");
     // WARNING PTR CHECK
     VkDeviceGroupPresentModeFlagsKHR* check_pModes;
     check_pModes = (VkDeviceGroupPresentModeFlagsKHR*)(uintptr_t)stream->getBe64();
@@ -11799,6 +12323,7 @@
         }
         stream->read((VkDeviceGroupPresentModeFlagsKHR*)pModes, sizeof(VkDeviceGroupPresentModeFlagsKHR));
     }
+    AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR returnUnmarshal");
     VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -11814,6 +12339,7 @@
     uint32_t* pRectCount,
     VkRect2D* pRects)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR encode");
     mImpl->log("start vkGetPhysicalDevicePresentRectanglesKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -11878,6 +12404,7 @@
             marshal_VkRect2D(stream, (VkRect2D*)(pRects + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR readParams");
     // WARNING PTR CHECK
     uint32_t* check_pRectCount;
     check_pRectCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -11910,6 +12437,7 @@
             transform_fromhost_VkRect2D(mImpl->resources(), (VkRect2D*)(pRects + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR returnUnmarshal");
     VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -11924,6 +12452,7 @@
     const VkAcquireNextImageInfoKHR* pAcquireInfo,
     uint32_t* pImageIndex)
 {
+    AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR encode");
     mImpl->log("start vkAcquireNextImage2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -11961,7 +12490,9 @@
     stream->write((uint64_t*)&cgen_var_856, 1 * 8);
     marshal_VkAcquireNextImageInfoKHR(stream, (VkAcquireNextImageInfoKHR*)(local_pAcquireInfo));
     stream->write((uint32_t*)pImageIndex, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR readParams");
     stream->read((uint32_t*)pImageIndex, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR returnUnmarshal");
     VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
     stream->read(&vkAcquireNextImage2KHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -11978,6 +12509,7 @@
     uint32_t* pPropertyCount,
     VkDisplayPropertiesKHR* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR encode");
     mImpl->log("start vkGetPhysicalDeviceDisplayPropertiesKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -12034,6 +12566,7 @@
             marshal_VkDisplayPropertiesKHR(stream, (VkDisplayPropertiesKHR*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR readParams");
     // WARNING PTR CHECK
     uint32_t* check_pPropertyCount;
     check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -12066,6 +12599,7 @@
             transform_fromhost_VkDisplayPropertiesKHR(mImpl->resources(), (VkDisplayPropertiesKHR*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR returnUnmarshal");
     VkResult vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -12080,6 +12614,7 @@
     uint32_t* pPropertyCount,
     VkDisplayPlanePropertiesKHR* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR encode");
     mImpl->log("start vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -12136,6 +12671,7 @@
             marshal_VkDisplayPlanePropertiesKHR(stream, (VkDisplayPlanePropertiesKHR*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR readParams");
     // WARNING PTR CHECK
     uint32_t* check_pPropertyCount;
     check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -12168,6 +12704,7 @@
             transform_fromhost_VkDisplayPlanePropertiesKHR(mImpl->resources(), (VkDisplayPlanePropertiesKHR*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR returnUnmarshal");
     VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -12183,6 +12720,7 @@
     uint32_t* pDisplayCount,
     VkDisplayKHR* pDisplays)
 {
+    AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR encode");
     mImpl->log("start vkGetDisplayPlaneSupportedDisplaysKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -12251,6 +12789,7 @@
         }
     }
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR readParams");
     // WARNING PTR CHECK
     uint32_t* check_pDisplayCount;
     check_pDisplayCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -12279,6 +12818,7 @@
             stream->handleMapping()->mapHandles_u64_VkDisplayKHR(cgen_var_883, (VkDisplayKHR*)pDisplays, (*(pDisplayCount)));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR returnUnmarshal");
     VkResult vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -12294,6 +12834,7 @@
     uint32_t* pPropertyCount,
     VkDisplayModePropertiesKHR* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR encode");
     mImpl->log("start vkGetDisplayModePropertiesKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -12358,6 +12899,7 @@
             marshal_VkDisplayModePropertiesKHR(stream, (VkDisplayModePropertiesKHR*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR readParams");
     // WARNING PTR CHECK
     uint32_t* check_pPropertyCount;
     check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -12390,6 +12932,7 @@
             transform_fromhost_VkDisplayModePropertiesKHR(mImpl->resources(), (VkDisplayModePropertiesKHR*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR returnUnmarshal");
     VkResult vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetDisplayModePropertiesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -12406,6 +12949,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkDisplayModeKHR* pMode)
 {
+    AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR encode");
     mImpl->log("start vkCreateDisplayModeKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -12483,11 +13027,13 @@
     stream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(pMode, &cgen_var_901, 1);
     stream->write((uint64_t*)&cgen_var_901, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_902;
     stream->read((uint64_t*)&cgen_var_902, 8);
     stream->handleMapping()->mapHandles_u64_VkDisplayModeKHR(&cgen_var_902, (VkDisplayModeKHR*)pMode, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR returnUnmarshal");
     VkResult vkCreateDisplayModeKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateDisplayModeKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -12503,6 +13049,7 @@
     uint32_t planeIndex,
     VkDisplayPlaneCapabilitiesKHR* pCapabilities)
 {
+    AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR encode");
     mImpl->log("start vkGetDisplayPlaneCapabilitiesKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -12539,11 +13086,13 @@
     stream->write((uint64_t*)&cgen_var_906, 1 * 8);
     stream->write((uint32_t*)&local_planeIndex, sizeof(uint32_t));
     marshal_VkDisplayPlaneCapabilitiesKHR(stream, (VkDisplayPlaneCapabilitiesKHR*)(pCapabilities));
+    AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR readParams");
     unmarshal_VkDisplayPlaneCapabilitiesKHR(stream, (VkDisplayPlaneCapabilitiesKHR*)(pCapabilities));
     if (pCapabilities)
     {
         transform_fromhost_VkDisplayPlaneCapabilitiesKHR(mImpl->resources(), (VkDisplayPlaneCapabilitiesKHR*)(pCapabilities));
     }
+    AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR returnUnmarshal");
     VkResult vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetDisplayPlaneCapabilitiesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -12559,6 +13108,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSurfaceKHR* pSurface)
 {
+    AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR encode");
     mImpl->log("start vkCreateDisplayPlaneSurfaceKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -12628,9 +13178,11 @@
     stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_912, 1);
     stream->write((uint64_t*)&cgen_var_912, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR readParams");
     uint64_t cgen_var_913;
     stream->read((uint64_t*)&cgen_var_913, 8);
     stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_913, (VkSurfaceKHR*)pSurface, 1);
+    AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR returnUnmarshal");
     VkResult vkCreateDisplayPlaneSurfaceKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateDisplayPlaneSurfaceKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -12649,6 +13201,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSwapchainKHR* pSwapchains)
 {
+    AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR encode");
     mImpl->log("start vkCreateSharedSwapchainsKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -12742,6 +13295,7 @@
         stream->write((uint64_t*)cgen_var_919, ((swapchainCount)) * 8);
     }
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR readParams");
     if (((swapchainCount)))
     {
         uint64_t* cgen_var_920;
@@ -12749,6 +13303,7 @@
         stream->read((uint64_t*)cgen_var_920, ((swapchainCount)) * 8);
         stream->handleMapping()->mapHandles_u64_VkSwapchainKHR(cgen_var_920, (VkSwapchainKHR*)pSwapchains, ((swapchainCount)));
     }
+    AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR returnUnmarshal");
     VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateSharedSwapchainsKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -12766,6 +13321,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSurfaceKHR* pSurface)
 {
+    AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR encode");
     mImpl->log("start vkCreateXlibSurfaceKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -12835,9 +13391,11 @@
     stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_926, 1);
     stream->write((uint64_t*)&cgen_var_926, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR readParams");
     uint64_t cgen_var_927;
     stream->read((uint64_t*)&cgen_var_927, 8);
     stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_927, (VkSurfaceKHR*)pSurface, 1);
+    AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR returnUnmarshal");
     VkResult vkCreateXlibSurfaceKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateXlibSurfaceKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -12853,6 +13411,7 @@
     Display* dpy,
     VisualID visualID)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR encode");
     mImpl->log("start vkGetPhysicalDeviceXlibPresentationSupportKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -12885,7 +13444,9 @@
     stream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
     stream->write((Display*)dpy, sizeof(Display));
     stream->write((VisualID*)&local_visualID, sizeof(VisualID));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR readParams");
     stream->read((Display*)dpy, sizeof(Display));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR returnUnmarshal");
     VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = (VkBool32)0;
     stream->read(&vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return, sizeof(VkBool32));
     countingStream->clearPool();
@@ -12903,6 +13464,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSurfaceKHR* pSurface)
 {
+    AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR encode");
     mImpl->log("start vkCreateXcbSurfaceKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -12972,9 +13534,11 @@
     stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_935, 1);
     stream->write((uint64_t*)&cgen_var_935, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR readParams");
     uint64_t cgen_var_936;
     stream->read((uint64_t*)&cgen_var_936, 8);
     stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_936, (VkSurfaceKHR*)pSurface, 1);
+    AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR returnUnmarshal");
     VkResult vkCreateXcbSurfaceKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateXcbSurfaceKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -12990,6 +13554,7 @@
     xcb_connection_t* connection,
     xcb_visualid_t visual_id)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR encode");
     mImpl->log("start vkGetPhysicalDeviceXcbPresentationSupportKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -13022,7 +13587,9 @@
     stream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
     stream->write((xcb_connection_t*)connection, sizeof(xcb_connection_t));
     stream->write((xcb_visualid_t*)&local_visual_id, sizeof(xcb_visualid_t));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR readParams");
     stream->read((xcb_connection_t*)connection, sizeof(xcb_connection_t));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR returnUnmarshal");
     VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = (VkBool32)0;
     stream->read(&vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return, sizeof(VkBool32));
     countingStream->clearPool();
@@ -13040,6 +13607,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSurfaceKHR* pSurface)
 {
+    AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR encode");
     mImpl->log("start vkCreateWaylandSurfaceKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -13109,9 +13677,11 @@
     stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_944, 1);
     stream->write((uint64_t*)&cgen_var_944, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR readParams");
     uint64_t cgen_var_945;
     stream->read((uint64_t*)&cgen_var_945, 8);
     stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_945, (VkSurfaceKHR*)pSurface, 1);
+    AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR returnUnmarshal");
     VkResult vkCreateWaylandSurfaceKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateWaylandSurfaceKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -13126,6 +13696,7 @@
     uint32_t queueFamilyIndex,
     wl_display* display)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR encode");
     mImpl->log("start vkGetPhysicalDeviceWaylandPresentationSupportKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -13154,7 +13725,9 @@
     stream->write((uint64_t*)&cgen_var_947, 1 * 8);
     stream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
     stream->write((wl_display*)display, sizeof(wl_display));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR readParams");
     stream->read((wl_display*)display, sizeof(wl_display));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR returnUnmarshal");
     VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = (VkBool32)0;
     stream->read(&vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return, sizeof(VkBool32));
     countingStream->clearPool();
@@ -13172,6 +13745,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSurfaceKHR* pSurface)
 {
+    AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR encode");
     mImpl->log("start vkCreateMirSurfaceKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -13241,9 +13815,11 @@
     stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_953, 1);
     stream->write((uint64_t*)&cgen_var_953, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR readParams");
     uint64_t cgen_var_954;
     stream->read((uint64_t*)&cgen_var_954, 8);
     stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_954, (VkSurfaceKHR*)pSurface, 1);
+    AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR returnUnmarshal");
     VkResult vkCreateMirSurfaceKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateMirSurfaceKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -13258,6 +13834,7 @@
     uint32_t queueFamilyIndex,
     MirConnection* connection)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR encode");
     mImpl->log("start vkGetPhysicalDeviceMirPresentationSupportKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -13286,7 +13863,9 @@
     stream->write((uint64_t*)&cgen_var_956, 1 * 8);
     stream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
     stream->write((MirConnection*)connection, sizeof(MirConnection));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR readParams");
     stream->read((MirConnection*)connection, sizeof(MirConnection));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR returnUnmarshal");
     VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = (VkBool32)0;
     stream->read(&vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return, sizeof(VkBool32));
     countingStream->clearPool();
@@ -13304,6 +13883,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSurfaceKHR* pSurface)
 {
+    AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR encode");
     mImpl->log("start vkCreateAndroidSurfaceKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -13373,9 +13953,11 @@
     stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_962, 1);
     stream->write((uint64_t*)&cgen_var_962, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR readParams");
     uint64_t cgen_var_963;
     stream->read((uint64_t*)&cgen_var_963, 8);
     stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_963, (VkSurfaceKHR*)pSurface, 1);
+    AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR returnUnmarshal");
     VkResult vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateAndroidSurfaceKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -13393,6 +13975,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSurfaceKHR* pSurface)
 {
+    AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR encode");
     mImpl->log("start vkCreateWin32SurfaceKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -13462,9 +14045,11 @@
     stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_969, 1);
     stream->write((uint64_t*)&cgen_var_969, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR readParams");
     uint64_t cgen_var_970;
     stream->read((uint64_t*)&cgen_var_970, 8);
     stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_970, (VkSurfaceKHR*)pSurface, 1);
+    AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR returnUnmarshal");
     VkResult vkCreateWin32SurfaceKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateWin32SurfaceKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -13478,6 +14063,7 @@
     VkPhysicalDevice physicalDevice,
     uint32_t queueFamilyIndex)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR encode");
     mImpl->log("start vkGetPhysicalDeviceWin32PresentationSupportKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -13504,6 +14090,8 @@
     stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_972, 1);
     stream->write((uint64_t*)&cgen_var_972, 1 * 8);
     stream->write((uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR readParams");
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR returnUnmarshal");
     VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = (VkBool32)0;
     stream->read(&vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return, sizeof(VkBool32));
     countingStream->clearPool();
@@ -13523,6 +14111,7 @@
     VkPhysicalDevice physicalDevice,
     VkPhysicalDeviceFeatures2* pFeatures)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR encode");
     mImpl->log("start vkGetPhysicalDeviceFeatures2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -13547,11 +14136,13 @@
     stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_974, 1);
     stream->write((uint64_t*)&cgen_var_974, 1 * 8);
     marshal_VkPhysicalDeviceFeatures2(stream, (VkPhysicalDeviceFeatures2*)(pFeatures));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR readParams");
     unmarshal_VkPhysicalDeviceFeatures2(stream, (VkPhysicalDeviceFeatures2*)(pFeatures));
     if (pFeatures)
     {
         transform_fromhost_VkPhysicalDeviceFeatures2(mImpl->resources(), (VkPhysicalDeviceFeatures2*)(pFeatures));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceFeatures2KHR");;
 }
 
@@ -13559,6 +14150,7 @@
     VkPhysicalDevice physicalDevice,
     VkPhysicalDeviceProperties2* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR encode");
     mImpl->log("start vkGetPhysicalDeviceProperties2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -13583,11 +14175,13 @@
     stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_976, 1);
     stream->write((uint64_t*)&cgen_var_976, 1 * 8);
     marshal_VkPhysicalDeviceProperties2(stream, (VkPhysicalDeviceProperties2*)(pProperties));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR readParams");
     unmarshal_VkPhysicalDeviceProperties2(stream, (VkPhysicalDeviceProperties2*)(pProperties));
     if (pProperties)
     {
         transform_fromhost_VkPhysicalDeviceProperties2(mImpl->resources(), (VkPhysicalDeviceProperties2*)(pProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceProperties2KHR");;
 }
 
@@ -13596,6 +14190,7 @@
     VkFormat format,
     VkFormatProperties2* pFormatProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR encode");
     mImpl->log("start vkGetPhysicalDeviceFormatProperties2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -13624,11 +14219,13 @@
     stream->write((uint64_t*)&cgen_var_978, 1 * 8);
     stream->write((VkFormat*)&local_format, sizeof(VkFormat));
     marshal_VkFormatProperties2(stream, (VkFormatProperties2*)(pFormatProperties));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR readParams");
     unmarshal_VkFormatProperties2(stream, (VkFormatProperties2*)(pFormatProperties));
     if (pFormatProperties)
     {
         transform_fromhost_VkFormatProperties2(mImpl->resources(), (VkFormatProperties2*)(pFormatProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceFormatProperties2KHR");;
 }
 
@@ -13637,6 +14234,7 @@
     const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
     VkImageFormatProperties2* pImageFormatProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR encode");
     mImpl->log("start vkGetPhysicalDeviceImageFormatProperties2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -13674,11 +14272,13 @@
     stream->write((uint64_t*)&cgen_var_980, 1 * 8);
     marshal_VkPhysicalDeviceImageFormatInfo2(stream, (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo));
     marshal_VkImageFormatProperties2(stream, (VkImageFormatProperties2*)(pImageFormatProperties));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR readParams");
     unmarshal_VkImageFormatProperties2(stream, (VkImageFormatProperties2*)(pImageFormatProperties));
     if (pImageFormatProperties)
     {
         transform_fromhost_VkImageFormatProperties2(mImpl->resources(), (VkImageFormatProperties2*)(pImageFormatProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR returnUnmarshal");
     VkResult vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -13693,6 +14293,7 @@
     uint32_t* pQueueFamilyPropertyCount,
     VkQueueFamilyProperties2* pQueueFamilyProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR encode");
     mImpl->log("start vkGetPhysicalDeviceQueueFamilyProperties2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -13749,6 +14350,7 @@
             marshal_VkQueueFamilyProperties2(stream, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR readParams");
     // WARNING PTR CHECK
     uint32_t* check_pQueueFamilyPropertyCount;
     check_pQueueFamilyPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -13781,6 +14383,7 @@
             transform_fromhost_VkQueueFamilyProperties2(mImpl->resources(), (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceQueueFamilyProperties2KHR");;
 }
 
@@ -13788,6 +14391,7 @@
     VkPhysicalDevice physicalDevice,
     VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR encode");
     mImpl->log("start vkGetPhysicalDeviceMemoryProperties2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -13812,11 +14416,13 @@
     stream->handleMapping()->mapHandles_VkPhysicalDevice_u64(&local_physicalDevice, &cgen_var_990, 1);
     stream->write((uint64_t*)&cgen_var_990, 1 * 8);
     marshal_VkPhysicalDeviceMemoryProperties2(stream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR readParams");
     unmarshal_VkPhysicalDeviceMemoryProperties2(stream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
     if (pMemoryProperties)
     {
         transform_fromhost_VkPhysicalDeviceMemoryProperties2(mImpl->resources(), (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR returnUnmarshal");
     mImpl->resources()->on_vkGetPhysicalDeviceMemoryProperties2KHR(this, physicalDevice, pMemoryProperties);
     mImpl->log("finish vkGetPhysicalDeviceMemoryProperties2KHR");;
 }
@@ -13827,6 +14433,7 @@
     uint32_t* pPropertyCount,
     VkSparseImageFormatProperties2* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR encode");
     mImpl->log("start vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -13896,6 +14503,7 @@
             marshal_VkSparseImageFormatProperties2(stream, (VkSparseImageFormatProperties2*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR readParams");
     // WARNING PTR CHECK
     uint32_t* check_pPropertyCount;
     check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -13928,6 +14536,7 @@
             transform_fromhost_VkSparseImageFormatProperties2(mImpl->resources(), (VkSparseImageFormatProperties2*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceSparseImageFormatProperties2KHR");;
 }
 
@@ -13940,6 +14549,7 @@
     uint32_t remoteDeviceIndex,
     VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
 {
+    AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR encode");
     mImpl->log("start vkGetDeviceGroupPeerMemoryFeaturesKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -13976,7 +14586,9 @@
     stream->write((uint32_t*)&local_localDeviceIndex, sizeof(uint32_t));
     stream->write((uint32_t*)&local_remoteDeviceIndex, sizeof(uint32_t));
     stream->write((VkPeerMemoryFeatureFlags*)pPeerMemoryFeatures, sizeof(VkPeerMemoryFeatureFlags));
+    AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR readParams");
     stream->read((VkPeerMemoryFeatureFlags*)pPeerMemoryFeatures, sizeof(VkPeerMemoryFeatureFlags));
+    AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR returnUnmarshal");
     mImpl->log("finish vkGetDeviceGroupPeerMemoryFeaturesKHR");;
 }
 
@@ -13984,6 +14596,7 @@
     VkCommandBuffer commandBuffer,
     uint32_t deviceMask)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR encode");
     mImpl->log("start vkCmdSetDeviceMaskKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -14010,6 +14623,8 @@
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1002, 1);
     stream->write((uint64_t*)&cgen_var_1002, 1 * 8);
     stream->write((uint32_t*)&local_deviceMask, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR readParams");
+    AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR returnUnmarshal");
     mImpl->log("finish vkCmdSetDeviceMaskKHR");;
 }
 
@@ -14022,6 +14637,7 @@
     uint32_t groupCountY,
     uint32_t groupCountZ)
 {
+    AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR encode");
     mImpl->log("start vkCmdDispatchBaseKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -14068,6 +14684,8 @@
     stream->write((uint32_t*)&local_groupCountX, sizeof(uint32_t));
     stream->write((uint32_t*)&local_groupCountY, sizeof(uint32_t));
     stream->write((uint32_t*)&local_groupCountZ, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR readParams");
+    AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR returnUnmarshal");
     mImpl->log("finish vkCmdDispatchBaseKHR");;
 }
 
@@ -14080,6 +14698,7 @@
     VkCommandPool commandPool,
     VkCommandPoolTrimFlags flags)
 {
+    AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR encode");
     mImpl->log("start vkTrimCommandPoolKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -14114,6 +14733,8 @@
     stream->handleMapping()->mapHandles_VkCommandPool_u64(&local_commandPool, &cgen_var_1008, 1);
     stream->write((uint64_t*)&cgen_var_1008, 1 * 8);
     stream->write((VkCommandPoolTrimFlags*)&local_flags, sizeof(VkCommandPoolTrimFlags));
+    AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR readParams");
+    AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR returnUnmarshal");
     mImpl->log("finish vkTrimCommandPoolKHR");;
 }
 
@@ -14124,6 +14745,7 @@
     uint32_t* pPhysicalDeviceGroupCount,
     VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
 {
+    AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR encode");
     mImpl->log("start vkEnumeratePhysicalDeviceGroupsKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -14180,6 +14802,7 @@
             marshal_VkPhysicalDeviceGroupProperties(stream, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR readParams");
     // WARNING PTR CHECK
     uint32_t* check_pPhysicalDeviceGroupCount;
     check_pPhysicalDeviceGroupCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -14212,6 +14835,7 @@
             transform_fromhost_VkPhysicalDeviceGroupProperties(mImpl->resources(), (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR returnUnmarshal");
     VkResult vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0;
     stream->read(&vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -14228,6 +14852,7 @@
     const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
     VkExternalBufferProperties* pExternalBufferProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR encode");
     mImpl->log("start vkGetPhysicalDeviceExternalBufferPropertiesKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -14266,12 +14891,14 @@
     stream->write((uint64_t*)&cgen_var_1018, 1 * 8);
     marshal_VkPhysicalDeviceExternalBufferInfo(stream, (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo));
     marshal_VkExternalBufferProperties(stream, (VkExternalBufferProperties*)(pExternalBufferProperties));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR readParams");
     unmarshal_VkExternalBufferProperties(stream, (VkExternalBufferProperties*)(pExternalBufferProperties));
     if (pExternalBufferProperties)
     {
         mImpl->resources()->transformImpl_VkExternalBufferProperties_fromhost(pExternalBufferProperties, 1);
         transform_fromhost_VkExternalBufferProperties(mImpl->resources(), (VkExternalBufferProperties*)(pExternalBufferProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceExternalBufferPropertiesKHR");;
 }
 
@@ -14284,6 +14911,7 @@
     const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
     HANDLE* pHandle)
 {
+    AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR encode");
     mImpl->log("start vkGetMemoryWin32HandleKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -14321,7 +14949,9 @@
     stream->write((uint64_t*)&cgen_var_1020, 1 * 8);
     marshal_VkMemoryGetWin32HandleInfoKHR(stream, (VkMemoryGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
     stream->write((HANDLE*)pHandle, sizeof(HANDLE));
+    AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR readParams");
     stream->read((HANDLE*)pHandle, sizeof(HANDLE));
+    AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR returnUnmarshal");
     VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetMemoryWin32HandleKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -14337,6 +14967,7 @@
     HANDLE handle,
     VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR encode");
     mImpl->log("start vkGetMemoryWin32HandlePropertiesKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -14369,11 +15000,13 @@
     stream->write((VkExternalMemoryHandleTypeFlagBits*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
     stream->write((HANDLE*)&local_handle, sizeof(HANDLE));
     marshal_VkMemoryWin32HandlePropertiesKHR(stream, (VkMemoryWin32HandlePropertiesKHR*)(pMemoryWin32HandleProperties));
+    AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR readParams");
     unmarshal_VkMemoryWin32HandlePropertiesKHR(stream, (VkMemoryWin32HandlePropertiesKHR*)(pMemoryWin32HandleProperties));
     if (pMemoryWin32HandleProperties)
     {
         transform_fromhost_VkMemoryWin32HandlePropertiesKHR(mImpl->resources(), (VkMemoryWin32HandlePropertiesKHR*)(pMemoryWin32HandleProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR returnUnmarshal");
     VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetMemoryWin32HandlePropertiesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -14390,6 +15023,7 @@
     const VkMemoryGetFdInfoKHR* pGetFdInfo,
     int* pFd)
 {
+    AEMU_SCOPED_TRACE("vkGetMemoryFdKHR encode");
     mImpl->log("start vkGetMemoryFdKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -14427,7 +15061,9 @@
     stream->write((uint64_t*)&cgen_var_1024, 1 * 8);
     marshal_VkMemoryGetFdInfoKHR(stream, (VkMemoryGetFdInfoKHR*)(local_pGetFdInfo));
     stream->write((int*)pFd, sizeof(int));
+    AEMU_SCOPED_TRACE("vkGetMemoryFdKHR readParams");
     stream->read((int*)pFd, sizeof(int));
+    AEMU_SCOPED_TRACE("vkGetMemoryFdKHR returnUnmarshal");
     VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetMemoryFdKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -14443,6 +15079,7 @@
     int fd,
     VkMemoryFdPropertiesKHR* pMemoryFdProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR encode");
     mImpl->log("start vkGetMemoryFdPropertiesKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -14475,11 +15112,13 @@
     stream->write((VkExternalMemoryHandleTypeFlagBits*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
     stream->write((int*)&local_fd, sizeof(int));
     marshal_VkMemoryFdPropertiesKHR(stream, (VkMemoryFdPropertiesKHR*)(pMemoryFdProperties));
+    AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR readParams");
     unmarshal_VkMemoryFdPropertiesKHR(stream, (VkMemoryFdPropertiesKHR*)(pMemoryFdProperties));
     if (pMemoryFdProperties)
     {
         transform_fromhost_VkMemoryFdPropertiesKHR(mImpl->resources(), (VkMemoryFdPropertiesKHR*)(pMemoryFdProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR returnUnmarshal");
     VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetMemoryFdPropertiesKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -14498,6 +15137,7 @@
     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
     VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR encode");
     mImpl->log("start vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -14535,11 +15175,13 @@
     stream->write((uint64_t*)&cgen_var_1028, 1 * 8);
     marshal_VkPhysicalDeviceExternalSemaphoreInfo(stream, (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo));
     marshal_VkExternalSemaphoreProperties(stream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR readParams");
     unmarshal_VkExternalSemaphoreProperties(stream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
     if (pExternalSemaphoreProperties)
     {
         transform_fromhost_VkExternalSemaphoreProperties(mImpl->resources(), (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");;
 }
 
@@ -14551,6 +15193,7 @@
     VkDevice device,
     const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
 {
+    AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR encode");
     mImpl->log("start vkImportSemaphoreWin32HandleKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -14586,6 +15229,8 @@
     stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1030, 1);
     stream->write((uint64_t*)&cgen_var_1030, 1 * 8);
     marshal_VkImportSemaphoreWin32HandleInfoKHR(stream, (VkImportSemaphoreWin32HandleInfoKHR*)(local_pImportSemaphoreWin32HandleInfo));
+    AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR readParams");
+    AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR returnUnmarshal");
     VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
     stream->read(&vkImportSemaphoreWin32HandleKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -14600,6 +15245,7 @@
     const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
     HANDLE* pHandle)
 {
+    AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR encode");
     mImpl->log("start vkGetSemaphoreWin32HandleKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -14637,7 +15283,9 @@
     stream->write((uint64_t*)&cgen_var_1032, 1 * 8);
     marshal_VkSemaphoreGetWin32HandleInfoKHR(stream, (VkSemaphoreGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
     stream->write((HANDLE*)pHandle, sizeof(HANDLE));
+    AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR readParams");
     stream->read((HANDLE*)pHandle, sizeof(HANDLE));
+    AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR returnUnmarshal");
     VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetSemaphoreWin32HandleKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -14653,6 +15301,7 @@
     VkDevice device,
     const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo)
 {
+    AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR encode");
     mImpl->log("start vkImportSemaphoreFdKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -14688,6 +15337,8 @@
     stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1034, 1);
     stream->write((uint64_t*)&cgen_var_1034, 1 * 8);
     marshal_VkImportSemaphoreFdInfoKHR(stream, (VkImportSemaphoreFdInfoKHR*)(local_pImportSemaphoreFdInfo));
+    AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR readParams");
+    AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR returnUnmarshal");
     VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0;
     stream->read(&vkImportSemaphoreFdKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -14702,6 +15353,7 @@
     const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
     int* pFd)
 {
+    AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR encode");
     mImpl->log("start vkGetSemaphoreFdKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -14739,7 +15391,9 @@
     stream->write((uint64_t*)&cgen_var_1036, 1 * 8);
     marshal_VkSemaphoreGetFdInfoKHR(stream, (VkSemaphoreGetFdInfoKHR*)(local_pGetFdInfo));
     stream->write((int*)pFd, sizeof(int));
+    AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR readParams");
     stream->read((int*)pFd, sizeof(int));
+    AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR returnUnmarshal");
     VkResult vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetSemaphoreFdKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -14759,6 +15413,7 @@
     uint32_t descriptorWriteCount,
     const VkWriteDescriptorSet* pDescriptorWrites)
 {
+    AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR encode");
     mImpl->log("start vkCmdPushDescriptorSetKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -14826,6 +15481,8 @@
     {
         marshal_VkWriteDescriptorSet(stream, (VkWriteDescriptorSet*)(local_pDescriptorWrites + i));
     }
+    AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR readParams");
+    AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR returnUnmarshal");
     mImpl->log("finish vkCmdPushDescriptorSetKHR");;
 }
 
@@ -14836,6 +15493,7 @@
     uint32_t set,
     const void* pData)
 {
+    AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR encode");
     mImpl->log("start vkCmdPushDescriptorSetWithTemplateKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -14898,6 +15556,8 @@
     {
         stream->write((void*)local_pData, sizeof(uint8_t));
     }
+    AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR readParams");
+    AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR returnUnmarshal");
     mImpl->log("finish vkCmdPushDescriptorSetWithTemplateKHR");;
 }
 
@@ -14913,6 +15573,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
 {
+    AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR encode");
     mImpl->log("start vkCreateDescriptorUpdateTemplateKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -14982,9 +15643,11 @@
     stream->handleMapping()->mapHandles_VkDescriptorUpdateTemplate_u64(pDescriptorUpdateTemplate, &cgen_var_1054, 1);
     stream->write((uint64_t*)&cgen_var_1054, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR readParams");
     uint64_t cgen_var_1055;
     stream->read((uint64_t*)&cgen_var_1055, 8);
     stream->handleMapping()->mapHandles_u64_VkDescriptorUpdateTemplate(&cgen_var_1055, (VkDescriptorUpdateTemplate*)pDescriptorUpdateTemplate, 1);
+    AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR returnUnmarshal");
     VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateDescriptorUpdateTemplateKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -14999,6 +15662,7 @@
     VkDescriptorUpdateTemplate descriptorUpdateTemplate,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR encode");
     mImpl->log("start vkDestroyDescriptorUpdateTemplateKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -15055,6 +15719,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR readParams");
+    AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR returnUnmarshal");
     mImpl->log("finish vkDestroyDescriptorUpdateTemplateKHR");;
 }
 
@@ -15064,6 +15730,7 @@
     VkDescriptorUpdateTemplate descriptorUpdateTemplate,
     const void* pData)
 {
+    AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR encode");
     mImpl->log("start vkUpdateDescriptorSetWithTemplateKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -15122,6 +15789,8 @@
     {
         stream->write((void*)local_pData, sizeof(uint8_t));
     }
+    AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR readParams");
+    AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR returnUnmarshal");
     mImpl->log("finish vkUpdateDescriptorSetWithTemplateKHR");;
 }
 
@@ -15133,6 +15802,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkRenderPass* pRenderPass)
 {
+    AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR encode");
     mImpl->log("start vkCreateRenderPass2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -15202,9 +15872,11 @@
     stream->handleMapping()->mapHandles_VkRenderPass_u64(pRenderPass, &cgen_var_1075, 1);
     stream->write((uint64_t*)&cgen_var_1075, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR readParams");
     uint64_t cgen_var_1076;
     stream->read((uint64_t*)&cgen_var_1076, 8);
     stream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_1076, (VkRenderPass*)pRenderPass, 1);
+    AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR returnUnmarshal");
     VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateRenderPass2KHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -15219,6 +15891,7 @@
     const VkRenderPassBeginInfo* pRenderPassBegin,
     const VkSubpassBeginInfoKHR* pSubpassBeginInfo)
 {
+    AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR encode");
     mImpl->log("start vkCmdBeginRenderPass2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -15267,6 +15940,8 @@
     stream->write((uint64_t*)&cgen_var_1078, 1 * 8);
     marshal_VkRenderPassBeginInfo(stream, (VkRenderPassBeginInfo*)(local_pRenderPassBegin));
     marshal_VkSubpassBeginInfoKHR(stream, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo));
+    AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR readParams");
+    AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR returnUnmarshal");
     mImpl->log("finish vkCmdBeginRenderPass2KHR");;
 }
 
@@ -15275,6 +15950,7 @@
     const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
     const VkSubpassEndInfoKHR* pSubpassEndInfo)
 {
+    AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR encode");
     mImpl->log("start vkCmdNextSubpass2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -15323,6 +15999,8 @@
     stream->write((uint64_t*)&cgen_var_1080, 1 * 8);
     marshal_VkSubpassBeginInfoKHR(stream, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo));
     marshal_VkSubpassEndInfoKHR(stream, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo));
+    AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR readParams");
+    AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR returnUnmarshal");
     mImpl->log("finish vkCmdNextSubpass2KHR");;
 }
 
@@ -15330,6 +16008,7 @@
     VkCommandBuffer commandBuffer,
     const VkSubpassEndInfoKHR* pSubpassEndInfo)
 {
+    AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR encode");
     mImpl->log("start vkCmdEndRenderPass2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -15365,6 +16044,8 @@
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1082, 1);
     stream->write((uint64_t*)&cgen_var_1082, 1 * 8);
     marshal_VkSubpassEndInfoKHR(stream, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo));
+    AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR readParams");
+    AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR returnUnmarshal");
     mImpl->log("finish vkCmdEndRenderPass2KHR");;
 }
 
@@ -15374,6 +16055,7 @@
     VkDevice device,
     VkSwapchainKHR swapchain)
 {
+    AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR encode");
     mImpl->log("start vkGetSwapchainStatusKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -15404,6 +16086,8 @@
     uint64_t cgen_var_1086;
     stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1086, 1);
     stream->write((uint64_t*)&cgen_var_1086, 1 * 8);
+    AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR readParams");
+    AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR returnUnmarshal");
     VkResult vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetSwapchainStatusKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -15420,6 +16104,7 @@
     const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
     VkExternalFenceProperties* pExternalFenceProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR encode");
     mImpl->log("start vkGetPhysicalDeviceExternalFencePropertiesKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -15457,11 +16142,13 @@
     stream->write((uint64_t*)&cgen_var_1088, 1 * 8);
     marshal_VkPhysicalDeviceExternalFenceInfo(stream, (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo));
     marshal_VkExternalFenceProperties(stream, (VkExternalFenceProperties*)(pExternalFenceProperties));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR readParams");
     unmarshal_VkExternalFenceProperties(stream, (VkExternalFenceProperties*)(pExternalFenceProperties));
     if (pExternalFenceProperties)
     {
         transform_fromhost_VkExternalFenceProperties(mImpl->resources(), (VkExternalFenceProperties*)(pExternalFenceProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceExternalFencePropertiesKHR");;
 }
 
@@ -15473,6 +16160,7 @@
     VkDevice device,
     const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo)
 {
+    AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR encode");
     mImpl->log("start vkImportFenceWin32HandleKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -15508,6 +16196,8 @@
     stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1090, 1);
     stream->write((uint64_t*)&cgen_var_1090, 1 * 8);
     marshal_VkImportFenceWin32HandleInfoKHR(stream, (VkImportFenceWin32HandleInfoKHR*)(local_pImportFenceWin32HandleInfo));
+    AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR readParams");
+    AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR returnUnmarshal");
     VkResult vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0;
     stream->read(&vkImportFenceWin32HandleKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -15522,6 +16212,7 @@
     const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
     HANDLE* pHandle)
 {
+    AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR encode");
     mImpl->log("start vkGetFenceWin32HandleKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -15559,7 +16250,9 @@
     stream->write((uint64_t*)&cgen_var_1092, 1 * 8);
     marshal_VkFenceGetWin32HandleInfoKHR(stream, (VkFenceGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo));
     stream->write((HANDLE*)pHandle, sizeof(HANDLE));
+    AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR readParams");
     stream->read((HANDLE*)pHandle, sizeof(HANDLE));
+    AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR returnUnmarshal");
     VkResult vkGetFenceWin32HandleKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetFenceWin32HandleKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -15575,6 +16268,7 @@
     VkDevice device,
     const VkImportFenceFdInfoKHR* pImportFenceFdInfo)
 {
+    AEMU_SCOPED_TRACE("vkImportFenceFdKHR encode");
     mImpl->log("start vkImportFenceFdKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -15610,6 +16304,8 @@
     stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1094, 1);
     stream->write((uint64_t*)&cgen_var_1094, 1 * 8);
     marshal_VkImportFenceFdInfoKHR(stream, (VkImportFenceFdInfoKHR*)(local_pImportFenceFdInfo));
+    AEMU_SCOPED_TRACE("vkImportFenceFdKHR readParams");
+    AEMU_SCOPED_TRACE("vkImportFenceFdKHR returnUnmarshal");
     VkResult vkImportFenceFdKHR_VkResult_return = (VkResult)0;
     stream->read(&vkImportFenceFdKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -15624,6 +16320,7 @@
     const VkFenceGetFdInfoKHR* pGetFdInfo,
     int* pFd)
 {
+    AEMU_SCOPED_TRACE("vkGetFenceFdKHR encode");
     mImpl->log("start vkGetFenceFdKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -15661,7 +16358,9 @@
     stream->write((uint64_t*)&cgen_var_1096, 1 * 8);
     marshal_VkFenceGetFdInfoKHR(stream, (VkFenceGetFdInfoKHR*)(local_pGetFdInfo));
     stream->write((int*)pFd, sizeof(int));
+    AEMU_SCOPED_TRACE("vkGetFenceFdKHR readParams");
     stream->read((int*)pFd, sizeof(int));
+    AEMU_SCOPED_TRACE("vkGetFenceFdKHR returnUnmarshal");
     VkResult vkGetFenceFdKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetFenceFdKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -15680,6 +16379,7 @@
     const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
     VkSurfaceCapabilities2KHR* pSurfaceCapabilities)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR encode");
     mImpl->log("start vkGetPhysicalDeviceSurfaceCapabilities2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -15717,11 +16417,13 @@
     stream->write((uint64_t*)&cgen_var_1098, 1 * 8);
     marshal_VkPhysicalDeviceSurfaceInfo2KHR(stream, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo));
     marshal_VkSurfaceCapabilities2KHR(stream, (VkSurfaceCapabilities2KHR*)(pSurfaceCapabilities));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR readParams");
     unmarshal_VkSurfaceCapabilities2KHR(stream, (VkSurfaceCapabilities2KHR*)(pSurfaceCapabilities));
     if (pSurfaceCapabilities)
     {
         transform_fromhost_VkSurfaceCapabilities2KHR(mImpl->resources(), (VkSurfaceCapabilities2KHR*)(pSurfaceCapabilities));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR returnUnmarshal");
     VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -15737,6 +16439,7 @@
     uint32_t* pSurfaceFormatCount,
     VkSurfaceFormat2KHR* pSurfaceFormats)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR encode");
     mImpl->log("start vkGetPhysicalDeviceSurfaceFormats2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -15806,6 +16509,7 @@
             marshal_VkSurfaceFormat2KHR(stream, (VkSurfaceFormat2KHR*)(pSurfaceFormats + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR readParams");
     // WARNING PTR CHECK
     uint32_t* check_pSurfaceFormatCount;
     check_pSurfaceFormatCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -15838,6 +16542,7 @@
             transform_fromhost_VkSurfaceFormat2KHR(mImpl->resources(), (VkSurfaceFormat2KHR*)(pSurfaceFormats + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR returnUnmarshal");
     VkResult vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -15856,6 +16561,7 @@
     uint32_t* pPropertyCount,
     VkDisplayProperties2KHR* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR encode");
     mImpl->log("start vkGetPhysicalDeviceDisplayProperties2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -15912,6 +16618,7 @@
             marshal_VkDisplayProperties2KHR(stream, (VkDisplayProperties2KHR*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR readParams");
     // WARNING PTR CHECK
     uint32_t* check_pPropertyCount;
     check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -15944,6 +16651,7 @@
             transform_fromhost_VkDisplayProperties2KHR(mImpl->resources(), (VkDisplayProperties2KHR*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR returnUnmarshal");
     VkResult vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -15958,6 +16666,7 @@
     uint32_t* pPropertyCount,
     VkDisplayPlaneProperties2KHR* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR encode");
     mImpl->log("start vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -16014,6 +16723,7 @@
             marshal_VkDisplayPlaneProperties2KHR(stream, (VkDisplayPlaneProperties2KHR*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR readParams");
     // WARNING PTR CHECK
     uint32_t* check_pPropertyCount;
     check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -16046,6 +16756,7 @@
             transform_fromhost_VkDisplayPlaneProperties2KHR(mImpl->resources(), (VkDisplayPlaneProperties2KHR*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR returnUnmarshal");
     VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -16061,6 +16772,7 @@
     uint32_t* pPropertyCount,
     VkDisplayModeProperties2KHR* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR encode");
     mImpl->log("start vkGetDisplayModeProperties2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -16125,6 +16837,7 @@
             marshal_VkDisplayModeProperties2KHR(stream, (VkDisplayModeProperties2KHR*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR readParams");
     // WARNING PTR CHECK
     uint32_t* check_pPropertyCount;
     check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -16157,6 +16870,7 @@
             transform_fromhost_VkDisplayModeProperties2KHR(mImpl->resources(), (VkDisplayModeProperties2KHR*)(pProperties + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR returnUnmarshal");
     VkResult vkGetDisplayModeProperties2KHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetDisplayModeProperties2KHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -16171,6 +16885,7 @@
     const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
     VkDisplayPlaneCapabilities2KHR* pCapabilities)
 {
+    AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR encode");
     mImpl->log("start vkGetDisplayPlaneCapabilities2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -16208,11 +16923,13 @@
     stream->write((uint64_t*)&cgen_var_1134, 1 * 8);
     marshal_VkDisplayPlaneInfo2KHR(stream, (VkDisplayPlaneInfo2KHR*)(local_pDisplayPlaneInfo));
     marshal_VkDisplayPlaneCapabilities2KHR(stream, (VkDisplayPlaneCapabilities2KHR*)(pCapabilities));
+    AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR readParams");
     unmarshal_VkDisplayPlaneCapabilities2KHR(stream, (VkDisplayPlaneCapabilities2KHR*)(pCapabilities));
     if (pCapabilities)
     {
         transform_fromhost_VkDisplayPlaneCapabilities2KHR(mImpl->resources(), (VkDisplayPlaneCapabilities2KHR*)(pCapabilities));
     }
+    AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR returnUnmarshal");
     VkResult vkGetDisplayPlaneCapabilities2KHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetDisplayPlaneCapabilities2KHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -16235,6 +16952,7 @@
     const VkImageMemoryRequirementsInfo2* pInfo,
     VkMemoryRequirements2* pMemoryRequirements)
 {
+    AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR encode");
     mImpl->log("start vkGetImageMemoryRequirements2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -16272,11 +16990,13 @@
     stream->write((uint64_t*)&cgen_var_1136, 1 * 8);
     marshal_VkImageMemoryRequirementsInfo2(stream, (VkImageMemoryRequirementsInfo2*)(local_pInfo));
     marshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
+    AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR readParams");
     unmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
     if (pMemoryRequirements)
     {
         transform_fromhost_VkMemoryRequirements2(mImpl->resources(), (VkMemoryRequirements2*)(pMemoryRequirements));
     }
+    AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR returnUnmarshal");
     mImpl->log("finish vkGetImageMemoryRequirements2KHR");;
 }
 
@@ -16285,6 +17005,7 @@
     const VkBufferMemoryRequirementsInfo2* pInfo,
     VkMemoryRequirements2* pMemoryRequirements)
 {
+    AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR encode");
     mImpl->log("start vkGetBufferMemoryRequirements2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -16322,11 +17043,13 @@
     stream->write((uint64_t*)&cgen_var_1138, 1 * 8);
     marshal_VkBufferMemoryRequirementsInfo2(stream, (VkBufferMemoryRequirementsInfo2*)(local_pInfo));
     marshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
+    AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR readParams");
     unmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
     if (pMemoryRequirements)
     {
         transform_fromhost_VkMemoryRequirements2(mImpl->resources(), (VkMemoryRequirements2*)(pMemoryRequirements));
     }
+    AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR returnUnmarshal");
     mImpl->log("finish vkGetBufferMemoryRequirements2KHR");;
 }
 
@@ -16336,6 +17059,7 @@
     uint32_t* pSparseMemoryRequirementCount,
     VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
 {
+    AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR encode");
     mImpl->log("start vkGetImageSparseMemoryRequirements2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -16405,6 +17129,7 @@
             marshal_VkSparseImageMemoryRequirements2(stream, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR readParams");
     // WARNING PTR CHECK
     uint32_t* check_pSparseMemoryRequirementCount;
     check_pSparseMemoryRequirementCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -16437,6 +17162,7 @@
             transform_fromhost_VkSparseImageMemoryRequirements2(mImpl->resources(), (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR returnUnmarshal");
     mImpl->log("finish vkGetImageSparseMemoryRequirements2KHR");;
 }
 
@@ -16450,6 +17176,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSamplerYcbcrConversion* pYcbcrConversion)
 {
+    AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR encode");
     mImpl->log("start vkCreateSamplerYcbcrConversionKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -16519,9 +17246,11 @@
     stream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(pYcbcrConversion, &cgen_var_1152, 1);
     stream->write((uint64_t*)&cgen_var_1152, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR readParams");
     uint64_t cgen_var_1153;
     stream->read((uint64_t*)&cgen_var_1153, 8);
     stream->handleMapping()->mapHandles_u64_VkSamplerYcbcrConversion(&cgen_var_1153, (VkSamplerYcbcrConversion*)pYcbcrConversion, 1);
+    AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR returnUnmarshal");
     VkResult vkCreateSamplerYcbcrConversionKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateSamplerYcbcrConversionKHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -16536,6 +17265,7 @@
     VkSamplerYcbcrConversion ycbcrConversion,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR encode");
     mImpl->log("start vkDestroySamplerYcbcrConversionKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -16592,6 +17322,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR readParams");
+    AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR returnUnmarshal");
     mImpl->log("finish vkDestroySamplerYcbcrConversionKHR");;
 }
 
@@ -16602,6 +17334,7 @@
     uint32_t bindInfoCount,
     const VkBindBufferMemoryInfo* pBindInfos)
 {
+    AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR encode");
     mImpl->log("start vkBindBufferMemory2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -16653,6 +17386,8 @@
     {
         marshal_VkBindBufferMemoryInfo(stream, (VkBindBufferMemoryInfo*)(local_pBindInfos + i));
     }
+    AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR readParams");
+    AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR returnUnmarshal");
     VkResult vkBindBufferMemory2KHR_VkResult_return = (VkResult)0;
     stream->read(&vkBindBufferMemory2KHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -16667,6 +17402,7 @@
     uint32_t bindInfoCount,
     const VkBindImageMemoryInfo* pBindInfos)
 {
+    AEMU_SCOPED_TRACE("vkBindImageMemory2KHR encode");
     mImpl->log("start vkBindImageMemory2KHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -16718,6 +17454,8 @@
     {
         marshal_VkBindImageMemoryInfo(stream, (VkBindImageMemoryInfo*)(local_pBindInfos + i));
     }
+    AEMU_SCOPED_TRACE("vkBindImageMemory2KHR readParams");
+    AEMU_SCOPED_TRACE("vkBindImageMemory2KHR returnUnmarshal");
     VkResult vkBindImageMemory2KHR_VkResult_return = (VkResult)0;
     stream->read(&vkBindImageMemory2KHR_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -16734,6 +17472,7 @@
     const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
     VkDescriptorSetLayoutSupport* pSupport)
 {
+    AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR encode");
     mImpl->log("start vkGetDescriptorSetLayoutSupportKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -16771,11 +17510,13 @@
     stream->write((uint64_t*)&cgen_var_1165, 1 * 8);
     marshal_VkDescriptorSetLayoutCreateInfo(stream, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo));
     marshal_VkDescriptorSetLayoutSupport(stream, (VkDescriptorSetLayoutSupport*)(pSupport));
+    AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR readParams");
     unmarshal_VkDescriptorSetLayoutSupport(stream, (VkDescriptorSetLayoutSupport*)(pSupport));
     if (pSupport)
     {
         transform_fromhost_VkDescriptorSetLayoutSupport(mImpl->resources(), (VkDescriptorSetLayoutSupport*)(pSupport));
     }
+    AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR returnUnmarshal");
     mImpl->log("finish vkGetDescriptorSetLayoutSupportKHR");;
 }
 
@@ -16790,6 +17531,7 @@
     uint32_t maxDrawCount,
     uint32_t stride)
 {
+    AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR encode");
     mImpl->log("start vkCmdDrawIndirectCountKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -16844,6 +17586,8 @@
     stream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
     stream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t));
     stream->write((uint32_t*)&local_stride, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR readParams");
+    AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR returnUnmarshal");
     mImpl->log("finish vkCmdDrawIndirectCountKHR");;
 }
 
@@ -16856,6 +17600,7 @@
     uint32_t maxDrawCount,
     uint32_t stride)
 {
+    AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR encode");
     mImpl->log("start vkCmdDrawIndexedIndirectCountKHR");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -16910,6 +17655,8 @@
     stream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
     stream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t));
     stream->write((uint32_t*)&local_stride, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR readParams");
+    AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR returnUnmarshal");
     mImpl->log("finish vkCmdDrawIndexedIndirectCountKHR");;
 }
 
@@ -16923,6 +17670,7 @@
     VkImageUsageFlags imageUsage,
     int* grallocUsage)
 {
+    AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID encode");
     mImpl->log("start vkGetSwapchainGrallocUsageANDROID");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -16955,7 +17703,9 @@
     stream->write((VkFormat*)&local_format, sizeof(VkFormat));
     stream->write((VkImageUsageFlags*)&local_imageUsage, sizeof(VkImageUsageFlags));
     stream->write((int*)grallocUsage, sizeof(int));
+    AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID readParams");
     stream->read((int*)grallocUsage, sizeof(int));
+    AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID returnUnmarshal");
     VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0;
     stream->read(&vkGetSwapchainGrallocUsageANDROID_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -16972,6 +17722,7 @@
     VkSemaphore semaphore,
     VkFence fence)
 {
+    AEMU_SCOPED_TRACE("vkAcquireImageANDROID encode");
     mImpl->log("start vkAcquireImageANDROID");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -17023,6 +17774,8 @@
     uint64_t cgen_var_1187;
     stream->handleMapping()->mapHandles_VkFence_u64(&local_fence, &cgen_var_1187, 1);
     stream->write((uint64_t*)&cgen_var_1187, 1 * 8);
+    AEMU_SCOPED_TRACE("vkAcquireImageANDROID readParams");
+    AEMU_SCOPED_TRACE("vkAcquireImageANDROID returnUnmarshal");
     VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0;
     stream->read(&vkAcquireImageANDROID_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -17039,6 +17792,7 @@
     VkImage image,
     int* pNativeFenceFd)
 {
+    AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID encode");
     mImpl->log("start vkQueueSignalReleaseImageANDROID");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -17107,7 +17861,9 @@
     stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1195, 1);
     stream->write((uint64_t*)&cgen_var_1195, 1 * 8);
     stream->write((int*)pNativeFenceFd, sizeof(int));
+    AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID readParams");
     stream->read((int*)pNativeFenceFd, sizeof(int));
+    AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID returnUnmarshal");
     VkResult vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0;
     stream->read(&vkQueueSignalReleaseImageANDROID_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -17125,6 +17881,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkDebugReportCallbackEXT* pCallback)
 {
+    AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT encode");
     mImpl->log("start vkCreateDebugReportCallbackEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -17194,11 +17951,13 @@
     stream->handleMapping()->mapHandles_VkDebugReportCallbackEXT_u64(pCallback, &cgen_var_1201, 1);
     stream->write((uint64_t*)&cgen_var_1201, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_1202;
     stream->read((uint64_t*)&cgen_var_1202, 8);
     stream->handleMapping()->mapHandles_u64_VkDebugReportCallbackEXT(&cgen_var_1202, (VkDebugReportCallbackEXT*)pCallback, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT returnUnmarshal");
     VkResult vkCreateDebugReportCallbackEXT_VkResult_return = (VkResult)0;
     stream->read(&vkCreateDebugReportCallbackEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -17213,6 +17972,7 @@
     VkDebugReportCallbackEXT callback,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT encode");
     mImpl->log("start vkDestroyDebugReportCallbackEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -17269,6 +18029,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT readParams");
+    AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkDebugReportCallbackEXT((VkDebugReportCallbackEXT*)&callback);
     mImpl->log("finish vkDestroyDebugReportCallbackEXT");;
 }
@@ -17283,6 +18045,7 @@
     const char* pLayerPrefix,
     const char* pMessage)
 {
+    AEMU_SCOPED_TRACE("vkDebugReportMessageEXT encode");
     mImpl->log("start vkDebugReportMessageEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -17343,6 +18106,8 @@
     stream->write((int32_t*)&local_messageCode, sizeof(int32_t));
     stream->putString(local_pLayerPrefix);
     stream->putString(local_pMessage);
+    AEMU_SCOPED_TRACE("vkDebugReportMessageEXT readParams");
+    AEMU_SCOPED_TRACE("vkDebugReportMessageEXT returnUnmarshal");
     mImpl->log("finish vkDebugReportMessageEXT");;
 }
 
@@ -17364,6 +18129,7 @@
     VkDevice device,
     const VkDebugMarkerObjectTagInfoEXT* pTagInfo)
 {
+    AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT encode");
     mImpl->log("start vkDebugMarkerSetObjectTagEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -17399,6 +18165,8 @@
     stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1214, 1);
     stream->write((uint64_t*)&cgen_var_1214, 1 * 8);
     marshal_VkDebugMarkerObjectTagInfoEXT(stream, (VkDebugMarkerObjectTagInfoEXT*)(local_pTagInfo));
+    AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT readParams");
+    AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT returnUnmarshal");
     VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0;
     stream->read(&vkDebugMarkerSetObjectTagEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -17412,6 +18180,7 @@
     VkDevice device,
     const VkDebugMarkerObjectNameInfoEXT* pNameInfo)
 {
+    AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT encode");
     mImpl->log("start vkDebugMarkerSetObjectNameEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -17447,6 +18216,8 @@
     stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1216, 1);
     stream->write((uint64_t*)&cgen_var_1216, 1 * 8);
     marshal_VkDebugMarkerObjectNameInfoEXT(stream, (VkDebugMarkerObjectNameInfoEXT*)(local_pNameInfo));
+    AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT readParams");
+    AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT returnUnmarshal");
     VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0;
     stream->read(&vkDebugMarkerSetObjectNameEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -17460,6 +18231,7 @@
     VkCommandBuffer commandBuffer,
     const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
 {
+    AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT encode");
     mImpl->log("start vkCmdDebugMarkerBeginEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -17495,12 +18267,15 @@
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1218, 1);
     stream->write((uint64_t*)&cgen_var_1218, 1 * 8);
     marshal_VkDebugMarkerMarkerInfoEXT(stream, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo));
+    AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT readParams");
+    AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT returnUnmarshal");
     mImpl->log("finish vkCmdDebugMarkerBeginEXT");;
 }
 
 void VkEncoder::vkCmdDebugMarkerEndEXT(
     VkCommandBuffer commandBuffer)
 {
+    AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT encode");
     mImpl->log("start vkCmdDebugMarkerEndEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -17523,6 +18298,8 @@
     uint64_t cgen_var_1220;
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1220, 1);
     stream->write((uint64_t*)&cgen_var_1220, 1 * 8);
+    AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT readParams");
+    AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT returnUnmarshal");
     mImpl->log("finish vkCmdDebugMarkerEndEXT");;
 }
 
@@ -17530,6 +18307,7 @@
     VkCommandBuffer commandBuffer,
     const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
 {
+    AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT encode");
     mImpl->log("start vkCmdDebugMarkerInsertEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -17565,6 +18343,8 @@
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1222, 1);
     stream->write((uint64_t*)&cgen_var_1222, 1 * 8);
     marshal_VkDebugMarkerMarkerInfoEXT(stream, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo));
+    AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT readParams");
+    AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT returnUnmarshal");
     mImpl->log("finish vkCmdDebugMarkerInsertEXT");;
 }
 
@@ -17583,6 +18363,7 @@
     uint32_t maxDrawCount,
     uint32_t stride)
 {
+    AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD encode");
     mImpl->log("start vkCmdDrawIndirectCountAMD");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -17637,6 +18418,8 @@
     stream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
     stream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t));
     stream->write((uint32_t*)&local_stride, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD readParams");
+    AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD returnUnmarshal");
     mImpl->log("finish vkCmdDrawIndirectCountAMD");;
 }
 
@@ -17649,6 +18432,7 @@
     uint32_t maxDrawCount,
     uint32_t stride)
 {
+    AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD encode");
     mImpl->log("start vkCmdDrawIndexedIndirectCountAMD");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -17703,6 +18487,8 @@
     stream->write((VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
     stream->write((uint32_t*)&local_maxDrawCount, sizeof(uint32_t));
     stream->write((uint32_t*)&local_stride, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD readParams");
+    AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD returnUnmarshal");
     mImpl->log("finish vkCmdDrawIndexedIndirectCountAMD");;
 }
 
@@ -17724,6 +18510,7 @@
     size_t* pInfoSize,
     void* pInfo)
 {
+    AEMU_SCOPED_TRACE("vkGetShaderInfoAMD encode");
     mImpl->log("start vkGetShaderInfoAMD");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -17792,6 +18579,7 @@
     {
         stream->write((void*)pInfo, (*(pInfoSize)) * sizeof(uint8_t));
     }
+    AEMU_SCOPED_TRACE("vkGetShaderInfoAMD readParams");
     // WARNING PTR CHECK
     size_t* check_pInfoSize;
     check_pInfoSize = (size_t*)(uintptr_t)stream->getBe64();
@@ -17814,6 +18602,7 @@
         }
         stream->read((void*)pInfo, (*(pInfoSize)) * sizeof(uint8_t));
     }
+    AEMU_SCOPED_TRACE("vkGetShaderInfoAMD returnUnmarshal");
     VkResult vkGetShaderInfoAMD_VkResult_return = (VkResult)0;
     stream->read(&vkGetShaderInfoAMD_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -17839,6 +18628,7 @@
     VkExternalMemoryHandleTypeFlagsNV externalHandleType,
     VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV encode");
     mImpl->log("start vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -17887,11 +18677,13 @@
     stream->write((VkImageCreateFlags*)&local_flags, sizeof(VkImageCreateFlags));
     stream->write((VkExternalMemoryHandleTypeFlagsNV*)&local_externalHandleType, sizeof(VkExternalMemoryHandleTypeFlagsNV));
     marshal_VkExternalImageFormatPropertiesNV(stream, (VkExternalImageFormatPropertiesNV*)(pExternalImageFormatProperties));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV readParams");
     unmarshal_VkExternalImageFormatPropertiesNV(stream, (VkExternalImageFormatPropertiesNV*)(pExternalImageFormatProperties));
     if (pExternalImageFormatProperties)
     {
         transform_fromhost_VkExternalImageFormatPropertiesNV(mImpl->resources(), (VkExternalImageFormatPropertiesNV*)(pExternalImageFormatProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV returnUnmarshal");
     VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -17911,6 +18703,7 @@
     VkExternalMemoryHandleTypeFlagsNV handleType,
     HANDLE* pHandle)
 {
+    AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV encode");
     mImpl->log("start vkGetMemoryWin32HandleNV");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -17948,7 +18741,9 @@
     stream->write((uint64_t*)&cgen_var_1253, 1 * 8);
     stream->write((VkExternalMemoryHandleTypeFlagsNV*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagsNV));
     stream->write((HANDLE*)pHandle, sizeof(HANDLE));
+    AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV readParams");
     stream->read((HANDLE*)pHandle, sizeof(HANDLE));
+    AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV returnUnmarshal");
     VkResult vkGetMemoryWin32HandleNV_VkResult_return = (VkResult)0;
     stream->read(&vkGetMemoryWin32HandleNV_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -17970,6 +18765,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSurfaceKHR* pSurface)
 {
+    AEMU_SCOPED_TRACE("vkCreateViSurfaceNN encode");
     mImpl->log("start vkCreateViSurfaceNN");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -18039,9 +18835,11 @@
     stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1259, 1);
     stream->write((uint64_t*)&cgen_var_1259, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateViSurfaceNN readParams");
     uint64_t cgen_var_1260;
     stream->read((uint64_t*)&cgen_var_1260, 8);
     stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_1260, (VkSurfaceKHR*)pSurface, 1);
+    AEMU_SCOPED_TRACE("vkCreateViSurfaceNN returnUnmarshal");
     VkResult vkCreateViSurfaceNN_VkResult_return = (VkResult)0;
     stream->read(&vkCreateViSurfaceNN_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -18061,6 +18859,7 @@
     VkCommandBuffer commandBuffer,
     const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin)
 {
+    AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT encode");
     mImpl->log("start vkCmdBeginConditionalRenderingEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -18096,12 +18895,15 @@
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1262, 1);
     stream->write((uint64_t*)&cgen_var_1262, 1 * 8);
     marshal_VkConditionalRenderingBeginInfoEXT(stream, (VkConditionalRenderingBeginInfoEXT*)(local_pConditionalRenderingBegin));
+    AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT readParams");
+    AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT returnUnmarshal");
     mImpl->log("finish vkCmdBeginConditionalRenderingEXT");;
 }
 
 void VkEncoder::vkCmdEndConditionalRenderingEXT(
     VkCommandBuffer commandBuffer)
 {
+    AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT encode");
     mImpl->log("start vkCmdEndConditionalRenderingEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -18124,6 +18926,8 @@
     uint64_t cgen_var_1264;
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1264, 1);
     stream->write((uint64_t*)&cgen_var_1264, 1 * 8);
+    AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT readParams");
+    AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT returnUnmarshal");
     mImpl->log("finish vkCmdEndConditionalRenderingEXT");;
 }
 
@@ -18133,6 +18937,7 @@
     VkCommandBuffer commandBuffer,
     const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo)
 {
+    AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX encode");
     mImpl->log("start vkCmdProcessCommandsNVX");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -18168,6 +18973,8 @@
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1266, 1);
     stream->write((uint64_t*)&cgen_var_1266, 1 * 8);
     marshal_VkCmdProcessCommandsInfoNVX(stream, (VkCmdProcessCommandsInfoNVX*)(local_pProcessCommandsInfo));
+    AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX readParams");
+    AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX returnUnmarshal");
     mImpl->log("finish vkCmdProcessCommandsNVX");;
 }
 
@@ -18175,6 +18982,7 @@
     VkCommandBuffer commandBuffer,
     const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo)
 {
+    AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX encode");
     mImpl->log("start vkCmdReserveSpaceForCommandsNVX");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -18210,6 +19018,8 @@
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1268, 1);
     stream->write((uint64_t*)&cgen_var_1268, 1 * 8);
     marshal_VkCmdReserveSpaceForCommandsInfoNVX(stream, (VkCmdReserveSpaceForCommandsInfoNVX*)(local_pReserveSpaceInfo));
+    AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX readParams");
+    AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX returnUnmarshal");
     mImpl->log("finish vkCmdReserveSpaceForCommandsNVX");;
 }
 
@@ -18219,6 +19029,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout)
 {
+    AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX encode");
     mImpl->log("start vkCreateIndirectCommandsLayoutNVX");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -18288,11 +19099,13 @@
     stream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(pIndirectCommandsLayout, &cgen_var_1274, 1);
     stream->write((uint64_t*)&cgen_var_1274, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_1275;
     stream->read((uint64_t*)&cgen_var_1275, 8);
     stream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNVX(&cgen_var_1275, (VkIndirectCommandsLayoutNVX*)pIndirectCommandsLayout, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX returnUnmarshal");
     VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0;
     stream->read(&vkCreateIndirectCommandsLayoutNVX_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -18307,6 +19120,7 @@
     VkIndirectCommandsLayoutNVX indirectCommandsLayout,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX encode");
     mImpl->log("start vkDestroyIndirectCommandsLayoutNVX");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -18363,6 +19177,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX readParams");
+    AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkIndirectCommandsLayoutNVX((VkIndirectCommandsLayoutNVX*)&indirectCommandsLayout);
     mImpl->log("finish vkDestroyIndirectCommandsLayoutNVX");;
 }
@@ -18373,6 +19189,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkObjectTableNVX* pObjectTable)
 {
+    AEMU_SCOPED_TRACE("vkCreateObjectTableNVX encode");
     mImpl->log("start vkCreateObjectTableNVX");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -18442,11 +19259,13 @@
     stream->handleMapping()->mapHandles_VkObjectTableNVX_u64(pObjectTable, &cgen_var_1287, 1);
     stream->write((uint64_t*)&cgen_var_1287, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateObjectTableNVX readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_1288;
     stream->read((uint64_t*)&cgen_var_1288, 8);
     stream->handleMapping()->mapHandles_u64_VkObjectTableNVX(&cgen_var_1288, (VkObjectTableNVX*)pObjectTable, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateObjectTableNVX returnUnmarshal");
     VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0;
     stream->read(&vkCreateObjectTableNVX_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -18461,6 +19280,7 @@
     VkObjectTableNVX objectTable,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX encode");
     mImpl->log("start vkDestroyObjectTableNVX");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -18517,6 +19337,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX readParams");
+    AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkObjectTableNVX((VkObjectTableNVX*)&objectTable);
     mImpl->log("finish vkDestroyObjectTableNVX");;
 }
@@ -18528,6 +19350,7 @@
     const VkObjectTableEntryNVX* const* ppObjectTableEntries,
     const uint32_t* pObjectIndices)
 {
+    AEMU_SCOPED_TRACE("vkRegisterObjectsNVX encode");
     mImpl->log("start vkRegisterObjectsNVX");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -18575,6 +19398,8 @@
     stream->write((uint32_t*)&local_objectCount, sizeof(uint32_t));
     (void)local_ppObjectTableEntries;
     stream->write((uint32_t*)local_pObjectIndices, ((objectCount)) * sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkRegisterObjectsNVX readParams");
+    AEMU_SCOPED_TRACE("vkRegisterObjectsNVX returnUnmarshal");
     VkResult vkRegisterObjectsNVX_VkResult_return = (VkResult)0;
     stream->read(&vkRegisterObjectsNVX_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -18591,6 +19416,7 @@
     const VkObjectEntryTypeNVX* pObjectEntryTypes,
     const uint32_t* pObjectIndices)
 {
+    AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX encode");
     mImpl->log("start vkUnregisterObjectsNVX");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -18641,6 +19467,8 @@
     stream->write((uint32_t*)&local_objectCount, sizeof(uint32_t));
     stream->write((VkObjectEntryTypeNVX*)local_pObjectEntryTypes, ((objectCount)) * sizeof(VkObjectEntryTypeNVX));
     stream->write((uint32_t*)local_pObjectIndices, ((objectCount)) * sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX readParams");
+    AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX returnUnmarshal");
     VkResult vkUnregisterObjectsNVX_VkResult_return = (VkResult)0;
     stream->read(&vkUnregisterObjectsNVX_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -18655,6 +19483,7 @@
     VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
     VkDeviceGeneratedCommandsLimitsNVX* pLimits)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX encode");
     mImpl->log("start vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -18681,6 +19510,7 @@
     stream->write((uint64_t*)&cgen_var_1304, 1 * 8);
     marshal_VkDeviceGeneratedCommandsFeaturesNVX(stream, (VkDeviceGeneratedCommandsFeaturesNVX*)(pFeatures));
     marshal_VkDeviceGeneratedCommandsLimitsNVX(stream, (VkDeviceGeneratedCommandsLimitsNVX*)(pLimits));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX readParams");
     unmarshal_VkDeviceGeneratedCommandsFeaturesNVX(stream, (VkDeviceGeneratedCommandsFeaturesNVX*)(pFeatures));
     if (pFeatures)
     {
@@ -18691,6 +19521,7 @@
     {
         transform_fromhost_VkDeviceGeneratedCommandsLimitsNVX(mImpl->resources(), (VkDeviceGeneratedCommandsLimitsNVX*)(pLimits));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");;
 }
 
@@ -18702,6 +19533,7 @@
     uint32_t viewportCount,
     const VkViewportWScalingNV* pViewportWScalings)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV encode");
     mImpl->log("start vkCmdSetViewportWScalingNV");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -18757,6 +19589,8 @@
     {
         marshal_VkViewportWScalingNV(stream, (VkViewportWScalingNV*)(local_pViewportWScalings + i));
     }
+    AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV readParams");
+    AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV returnUnmarshal");
     mImpl->log("finish vkCmdSetViewportWScalingNV");;
 }
 
@@ -18766,6 +19600,7 @@
     VkPhysicalDevice physicalDevice,
     VkDisplayKHR display)
 {
+    AEMU_SCOPED_TRACE("vkReleaseDisplayEXT encode");
     mImpl->log("start vkReleaseDisplayEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -18796,6 +19631,8 @@
     uint64_t cgen_var_1310;
     stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1310, 1);
     stream->write((uint64_t*)&cgen_var_1310, 1 * 8);
+    AEMU_SCOPED_TRACE("vkReleaseDisplayEXT readParams");
+    AEMU_SCOPED_TRACE("vkReleaseDisplayEXT returnUnmarshal");
     VkResult vkReleaseDisplayEXT_VkResult_return = (VkResult)0;
     stream->read(&vkReleaseDisplayEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -18812,6 +19649,7 @@
     Display* dpy,
     VkDisplayKHR display)
 {
+    AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT encode");
     mImpl->log("start vkAcquireXlibDisplayEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -18844,7 +19682,9 @@
     uint64_t cgen_var_1314;
     stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1314, 1);
     stream->write((uint64_t*)&cgen_var_1314, 1 * 8);
+    AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT readParams");
     stream->read((Display*)dpy, sizeof(Display));
+    AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT returnUnmarshal");
     VkResult vkAcquireXlibDisplayEXT_VkResult_return = (VkResult)0;
     stream->read(&vkAcquireXlibDisplayEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -18860,6 +19700,7 @@
     RROutput rrOutput,
     VkDisplayKHR* pDisplay)
 {
+    AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT encode");
     mImpl->log("start vkGetRandROutputDisplayEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -18896,10 +19737,12 @@
     stream->handleMapping()->mapHandles_VkDisplayKHR_u64(pDisplay, &cgen_var_1318, 1);
     stream->write((uint64_t*)&cgen_var_1318, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT readParams");
     stream->read((Display*)dpy, sizeof(Display));
     uint64_t cgen_var_1319;
     stream->read((uint64_t*)&cgen_var_1319, 8);
     stream->handleMapping()->mapHandles_u64_VkDisplayKHR(&cgen_var_1319, (VkDisplayKHR*)pDisplay, 1);
+    AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT returnUnmarshal");
     VkResult vkGetRandROutputDisplayEXT_VkResult_return = (VkResult)0;
     stream->read(&vkGetRandROutputDisplayEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -18916,6 +19759,7 @@
     VkSurfaceKHR surface,
     VkSurfaceCapabilities2EXT* pSurfaceCapabilities)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT encode");
     mImpl->log("start vkGetPhysicalDeviceSurfaceCapabilities2EXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -18948,11 +19792,13 @@
     stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&local_surface, &cgen_var_1323, 1);
     stream->write((uint64_t*)&cgen_var_1323, 1 * 8);
     marshal_VkSurfaceCapabilities2EXT(stream, (VkSurfaceCapabilities2EXT*)(pSurfaceCapabilities));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT readParams");
     unmarshal_VkSurfaceCapabilities2EXT(stream, (VkSurfaceCapabilities2EXT*)(pSurfaceCapabilities));
     if (pSurfaceCapabilities)
     {
         transform_fromhost_VkSurfaceCapabilities2EXT(mImpl->resources(), (VkSurfaceCapabilities2EXT*)(pSurfaceCapabilities));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT returnUnmarshal");
     VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = (VkResult)0;
     stream->read(&vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -18969,6 +19815,7 @@
     VkDisplayKHR display,
     const VkDisplayPowerInfoEXT* pDisplayPowerInfo)
 {
+    AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT encode");
     mImpl->log("start vkDisplayPowerControlEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -19012,6 +19859,8 @@
     stream->handleMapping()->mapHandles_VkDisplayKHR_u64(&local_display, &cgen_var_1327, 1);
     stream->write((uint64_t*)&cgen_var_1327, 1 * 8);
     marshal_VkDisplayPowerInfoEXT(stream, (VkDisplayPowerInfoEXT*)(local_pDisplayPowerInfo));
+    AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT readParams");
+    AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT returnUnmarshal");
     VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0;
     stream->read(&vkDisplayPowerControlEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -19027,6 +19876,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkFence* pFence)
 {
+    AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT encode");
     mImpl->log("start vkRegisterDeviceEventEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -19096,9 +19946,11 @@
     stream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_1333, 1);
     stream->write((uint64_t*)&cgen_var_1333, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT readParams");
     uint64_t cgen_var_1334;
     stream->read((uint64_t*)&cgen_var_1334, 8);
     stream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_1334, (VkFence*)pFence, 1);
+    AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT returnUnmarshal");
     VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0;
     stream->read(&vkRegisterDeviceEventEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -19115,6 +19967,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkFence* pFence)
 {
+    AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT encode");
     mImpl->log("start vkRegisterDisplayEventEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -19192,9 +20045,11 @@
     stream->handleMapping()->mapHandles_VkFence_u64(pFence, &cgen_var_1342, 1);
     stream->write((uint64_t*)&cgen_var_1342, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT readParams");
     uint64_t cgen_var_1343;
     stream->read((uint64_t*)&cgen_var_1343, 8);
     stream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_1343, (VkFence*)pFence, 1);
+    AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT returnUnmarshal");
     VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0;
     stream->read(&vkRegisterDisplayEventEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -19210,6 +20065,7 @@
     VkSurfaceCounterFlagBitsEXT counter,
     uint64_t* pCounterValue)
 {
+    AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT encode");
     mImpl->log("start vkGetSwapchainCounterEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -19246,7 +20102,9 @@
     stream->write((uint64_t*)&cgen_var_1347, 1 * 8);
     stream->write((VkSurfaceCounterFlagBitsEXT*)&local_counter, sizeof(VkSurfaceCounterFlagBitsEXT));
     stream->write((uint64_t*)pCounterValue, sizeof(uint64_t));
+    AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT readParams");
     stream->read((uint64_t*)pCounterValue, sizeof(uint64_t));
+    AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT returnUnmarshal");
     VkResult vkGetSwapchainCounterEXT_VkResult_return = (VkResult)0;
     stream->read(&vkGetSwapchainCounterEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -19263,6 +20121,7 @@
     VkSwapchainKHR swapchain,
     VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE encode");
     mImpl->log("start vkGetRefreshCycleDurationGOOGLE");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -19295,11 +20154,13 @@
     stream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&local_swapchain, &cgen_var_1351, 1);
     stream->write((uint64_t*)&cgen_var_1351, 1 * 8);
     marshal_VkRefreshCycleDurationGOOGLE(stream, (VkRefreshCycleDurationGOOGLE*)(pDisplayTimingProperties));
+    AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE readParams");
     unmarshal_VkRefreshCycleDurationGOOGLE(stream, (VkRefreshCycleDurationGOOGLE*)(pDisplayTimingProperties));
     if (pDisplayTimingProperties)
     {
         transform_fromhost_VkRefreshCycleDurationGOOGLE(mImpl->resources(), (VkRefreshCycleDurationGOOGLE*)(pDisplayTimingProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE returnUnmarshal");
     VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0;
     stream->read(&vkGetRefreshCycleDurationGOOGLE_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -19315,6 +20176,7 @@
     uint32_t* pPresentationTimingCount,
     VkPastPresentationTimingGOOGLE* pPresentationTimings)
 {
+    AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE encode");
     mImpl->log("start vkGetPastPresentationTimingGOOGLE");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -19379,6 +20241,7 @@
             marshal_VkPastPresentationTimingGOOGLE(stream, (VkPastPresentationTimingGOOGLE*)(pPresentationTimings + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE readParams");
     // WARNING PTR CHECK
     uint32_t* check_pPresentationTimingCount;
     check_pPresentationTimingCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -19411,6 +20274,7 @@
             transform_fromhost_VkPastPresentationTimingGOOGLE(mImpl->resources(), (VkPastPresentationTimingGOOGLE*)(pPresentationTimings + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE returnUnmarshal");
     VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0;
     stream->read(&vkGetPastPresentationTimingGOOGLE_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -19438,6 +20302,7 @@
     uint32_t discardRectangleCount,
     const VkRect2D* pDiscardRectangles)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT encode");
     mImpl->log("start vkCmdSetDiscardRectangleEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -19493,6 +20358,8 @@
     {
         marshal_VkRect2D(stream, (VkRect2D*)(local_pDiscardRectangles + i));
     }
+    AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT readParams");
+    AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT returnUnmarshal");
     mImpl->log("finish vkCmdSetDiscardRectangleEXT");;
 }
 
@@ -19508,6 +20375,7 @@
     const VkSwapchainKHR* pSwapchains,
     const VkHdrMetadataEXT* pMetadata)
 {
+    AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT encode");
     mImpl->log("start vkSetHdrMetadataEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -19579,6 +20447,8 @@
     {
         marshal_VkHdrMetadataEXT(stream, (VkHdrMetadataEXT*)(local_pMetadata + i));
     }
+    AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT readParams");
+    AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT returnUnmarshal");
     mImpl->log("finish vkSetHdrMetadataEXT");;
 }
 
@@ -19590,6 +20460,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSurfaceKHR* pSurface)
 {
+    AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK encode");
     mImpl->log("start vkCreateIOSSurfaceMVK");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -19659,9 +20530,11 @@
     stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1373, 1);
     stream->write((uint64_t*)&cgen_var_1373, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK readParams");
     uint64_t cgen_var_1374;
     stream->read((uint64_t*)&cgen_var_1374, 8);
     stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_1374, (VkSurfaceKHR*)pSurface, 1);
+    AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK returnUnmarshal");
     VkResult vkCreateIOSSurfaceMVK_VkResult_return = (VkResult)0;
     stream->read(&vkCreateIOSSurfaceMVK_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -19679,6 +20552,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkSurfaceKHR* pSurface)
 {
+    AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK encode");
     mImpl->log("start vkCreateMacOSSurfaceMVK");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -19748,9 +20622,11 @@
     stream->handleMapping()->mapHandles_VkSurfaceKHR_u64(pSurface, &cgen_var_1380, 1);
     stream->write((uint64_t*)&cgen_var_1380, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK readParams");
     uint64_t cgen_var_1381;
     stream->read((uint64_t*)&cgen_var_1381, 8);
     stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_1381, (VkSurfaceKHR*)pSurface, 1);
+    AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK returnUnmarshal");
     VkResult vkCreateMacOSSurfaceMVK_VkResult_return = (VkResult)0;
     stream->read(&vkCreateMacOSSurfaceMVK_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -19770,6 +20646,7 @@
     VkDevice device,
     const VkDebugUtilsObjectNameInfoEXT* pNameInfo)
 {
+    AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT encode");
     mImpl->log("start vkSetDebugUtilsObjectNameEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -19805,6 +20682,8 @@
     stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1383, 1);
     stream->write((uint64_t*)&cgen_var_1383, 1 * 8);
     marshal_VkDebugUtilsObjectNameInfoEXT(stream, (VkDebugUtilsObjectNameInfoEXT*)(local_pNameInfo));
+    AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT readParams");
+    AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT returnUnmarshal");
     VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0;
     stream->read(&vkSetDebugUtilsObjectNameEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -19818,6 +20697,7 @@
     VkDevice device,
     const VkDebugUtilsObjectTagInfoEXT* pTagInfo)
 {
+    AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT encode");
     mImpl->log("start vkSetDebugUtilsObjectTagEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -19853,6 +20733,8 @@
     stream->handleMapping()->mapHandles_VkDevice_u64(&local_device, &cgen_var_1385, 1);
     stream->write((uint64_t*)&cgen_var_1385, 1 * 8);
     marshal_VkDebugUtilsObjectTagInfoEXT(stream, (VkDebugUtilsObjectTagInfoEXT*)(local_pTagInfo));
+    AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT readParams");
+    AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT returnUnmarshal");
     VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0;
     stream->read(&vkSetDebugUtilsObjectTagEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -19866,6 +20748,7 @@
     VkQueue queue,
     const VkDebugUtilsLabelEXT* pLabelInfo)
 {
+    AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT encode");
     mImpl->log("start vkQueueBeginDebugUtilsLabelEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -19901,12 +20784,15 @@
     stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1387, 1);
     stream->write((uint64_t*)&cgen_var_1387, 1 * 8);
     marshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
+    AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT readParams");
+    AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT returnUnmarshal");
     mImpl->log("finish vkQueueBeginDebugUtilsLabelEXT");;
 }
 
 void VkEncoder::vkQueueEndDebugUtilsLabelEXT(
     VkQueue queue)
 {
+    AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT encode");
     mImpl->log("start vkQueueEndDebugUtilsLabelEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -19929,6 +20815,8 @@
     uint64_t cgen_var_1389;
     stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1389, 1);
     stream->write((uint64_t*)&cgen_var_1389, 1 * 8);
+    AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT readParams");
+    AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT returnUnmarshal");
     mImpl->log("finish vkQueueEndDebugUtilsLabelEXT");;
 }
 
@@ -19936,6 +20824,7 @@
     VkQueue queue,
     const VkDebugUtilsLabelEXT* pLabelInfo)
 {
+    AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT encode");
     mImpl->log("start vkQueueInsertDebugUtilsLabelEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -19971,6 +20860,8 @@
     stream->handleMapping()->mapHandles_VkQueue_u64(&local_queue, &cgen_var_1391, 1);
     stream->write((uint64_t*)&cgen_var_1391, 1 * 8);
     marshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
+    AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT readParams");
+    AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT returnUnmarshal");
     mImpl->log("finish vkQueueInsertDebugUtilsLabelEXT");;
 }
 
@@ -19978,6 +20869,7 @@
     VkCommandBuffer commandBuffer,
     const VkDebugUtilsLabelEXT* pLabelInfo)
 {
+    AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT encode");
     mImpl->log("start vkCmdBeginDebugUtilsLabelEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -20013,12 +20905,15 @@
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1393, 1);
     stream->write((uint64_t*)&cgen_var_1393, 1 * 8);
     marshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
+    AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT readParams");
+    AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT returnUnmarshal");
     mImpl->log("finish vkCmdBeginDebugUtilsLabelEXT");;
 }
 
 void VkEncoder::vkCmdEndDebugUtilsLabelEXT(
     VkCommandBuffer commandBuffer)
 {
+    AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT encode");
     mImpl->log("start vkCmdEndDebugUtilsLabelEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -20041,6 +20936,8 @@
     uint64_t cgen_var_1395;
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1395, 1);
     stream->write((uint64_t*)&cgen_var_1395, 1 * 8);
+    AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT readParams");
+    AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT returnUnmarshal");
     mImpl->log("finish vkCmdEndDebugUtilsLabelEXT");;
 }
 
@@ -20048,6 +20945,7 @@
     VkCommandBuffer commandBuffer,
     const VkDebugUtilsLabelEXT* pLabelInfo)
 {
+    AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT encode");
     mImpl->log("start vkCmdInsertDebugUtilsLabelEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -20083,6 +20981,8 @@
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1397, 1);
     stream->write((uint64_t*)&cgen_var_1397, 1 * 8);
     marshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo));
+    AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT readParams");
+    AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT returnUnmarshal");
     mImpl->log("finish vkCmdInsertDebugUtilsLabelEXT");;
 }
 
@@ -20092,6 +20992,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkDebugUtilsMessengerEXT* pMessenger)
 {
+    AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT encode");
     mImpl->log("start vkCreateDebugUtilsMessengerEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -20161,11 +21062,13 @@
     stream->handleMapping()->mapHandles_VkDebugUtilsMessengerEXT_u64(pMessenger, &cgen_var_1403, 1);
     stream->write((uint64_t*)&cgen_var_1403, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_1404;
     stream->read((uint64_t*)&cgen_var_1404, 8);
     stream->handleMapping()->mapHandles_u64_VkDebugUtilsMessengerEXT(&cgen_var_1404, (VkDebugUtilsMessengerEXT*)pMessenger, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT returnUnmarshal");
     VkResult vkCreateDebugUtilsMessengerEXT_VkResult_return = (VkResult)0;
     stream->read(&vkCreateDebugUtilsMessengerEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -20180,6 +21083,7 @@
     VkDebugUtilsMessengerEXT messenger,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT encode");
     mImpl->log("start vkDestroyDebugUtilsMessengerEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -20236,6 +21140,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT readParams");
+    AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkDebugUtilsMessengerEXT((VkDebugUtilsMessengerEXT*)&messenger);
     mImpl->log("finish vkDestroyDebugUtilsMessengerEXT");;
 }
@@ -20246,6 +21152,7 @@
     VkDebugUtilsMessageTypeFlagsEXT messageTypes,
     const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData)
 {
+    AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT encode");
     mImpl->log("start vkSubmitDebugUtilsMessageEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -20289,6 +21196,8 @@
     stream->write((VkDebugUtilsMessageSeverityFlagBitsEXT*)&local_messageSeverity, sizeof(VkDebugUtilsMessageSeverityFlagBitsEXT));
     stream->write((VkDebugUtilsMessageTypeFlagsEXT*)&local_messageTypes, sizeof(VkDebugUtilsMessageTypeFlagsEXT));
     marshal_VkDebugUtilsMessengerCallbackDataEXT(stream, (VkDebugUtilsMessengerCallbackDataEXT*)(local_pCallbackData));
+    AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT readParams");
+    AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT returnUnmarshal");
     mImpl->log("finish vkSubmitDebugUtilsMessageEXT");;
 }
 
@@ -20299,6 +21208,7 @@
     const AHardwareBuffer* buffer,
     VkAndroidHardwareBufferPropertiesANDROID* pProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID encode");
     mImpl->log("start vkGetAndroidHardwareBufferPropertiesANDROID");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -20331,11 +21241,13 @@
     stream->write((uint64_t*)&cgen_var_1414, 1 * 8);
     stream->write((AHardwareBuffer*)local_buffer, sizeof(AHardwareBuffer));
     marshal_VkAndroidHardwareBufferPropertiesANDROID(stream, (VkAndroidHardwareBufferPropertiesANDROID*)(pProperties));
+    AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID readParams");
     unmarshal_VkAndroidHardwareBufferPropertiesANDROID(stream, (VkAndroidHardwareBufferPropertiesANDROID*)(pProperties));
     if (pProperties)
     {
         transform_fromhost_VkAndroidHardwareBufferPropertiesANDROID(mImpl->resources(), (VkAndroidHardwareBufferPropertiesANDROID*)(pProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID returnUnmarshal");
     VkResult vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = (VkResult)0;
     stream->read(&vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -20350,6 +21262,7 @@
     const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
     AHardwareBuffer** pBuffer)
 {
+    AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID encode");
     mImpl->log("start vkGetMemoryAndroidHardwareBufferANDROID");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -20387,7 +21300,9 @@
     stream->write((uint64_t*)&cgen_var_1416, 1 * 8);
     marshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(stream, (VkMemoryGetAndroidHardwareBufferInfoANDROID*)(local_pInfo));
     stream->write((AHardwareBuffer**)pBuffer, sizeof(AHardwareBuffer*));
+    AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID readParams");
     stream->read((AHardwareBuffer**)pBuffer, sizeof(AHardwareBuffer*));
+    AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID returnUnmarshal");
     VkResult vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = (VkResult)0;
     stream->read(&vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -20413,6 +21328,7 @@
     VkCommandBuffer commandBuffer,
     const VkSampleLocationsInfoEXT* pSampleLocationsInfo)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT encode");
     mImpl->log("start vkCmdSetSampleLocationsEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -20448,6 +21364,8 @@
     stream->handleMapping()->mapHandles_VkCommandBuffer_u64(&local_commandBuffer, &cgen_var_1418, 1);
     stream->write((uint64_t*)&cgen_var_1418, 1 * 8);
     marshal_VkSampleLocationsInfoEXT(stream, (VkSampleLocationsInfoEXT*)(local_pSampleLocationsInfo));
+    AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT readParams");
+    AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT returnUnmarshal");
     mImpl->log("finish vkCmdSetSampleLocationsEXT");;
 }
 
@@ -20456,6 +21374,7 @@
     VkSampleCountFlagBits samples,
     VkMultisamplePropertiesEXT* pMultisampleProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT encode");
     mImpl->log("start vkGetPhysicalDeviceMultisamplePropertiesEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -20484,11 +21403,13 @@
     stream->write((uint64_t*)&cgen_var_1420, 1 * 8);
     stream->write((VkSampleCountFlagBits*)&local_samples, sizeof(VkSampleCountFlagBits));
     marshal_VkMultisamplePropertiesEXT(stream, (VkMultisamplePropertiesEXT*)(pMultisampleProperties));
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT readParams");
     unmarshal_VkMultisamplePropertiesEXT(stream, (VkMultisamplePropertiesEXT*)(pMultisampleProperties));
     if (pMultisampleProperties)
     {
         transform_fromhost_VkMultisamplePropertiesEXT(mImpl->resources(), (VkMultisamplePropertiesEXT*)(pMultisampleProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT returnUnmarshal");
     mImpl->log("finish vkGetPhysicalDeviceMultisamplePropertiesEXT");;
 }
 
@@ -20510,6 +21431,7 @@
     const VkAllocationCallbacks* pAllocator,
     VkValidationCacheEXT* pValidationCache)
 {
+    AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT encode");
     mImpl->log("start vkCreateValidationCacheEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -20579,11 +21501,13 @@
     stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(pValidationCache, &cgen_var_1426, 1);
     stream->write((uint64_t*)&cgen_var_1426, 8);
     stream->setHandleMapping(resources->unwrapMapping());
+    AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT readParams");
     stream->setHandleMapping(resources->createMapping());
     uint64_t cgen_var_1427;
     stream->read((uint64_t*)&cgen_var_1427, 8);
     stream->handleMapping()->mapHandles_u64_VkValidationCacheEXT(&cgen_var_1427, (VkValidationCacheEXT*)pValidationCache, 1);
     stream->unsetHandleMapping();
+    AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT returnUnmarshal");
     VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0;
     stream->read(&vkCreateValidationCacheEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -20598,6 +21522,7 @@
     VkValidationCacheEXT validationCache,
     const VkAllocationCallbacks* pAllocator)
 {
+    AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT encode");
     mImpl->log("start vkDestroyValidationCacheEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -20654,6 +21579,8 @@
     {
         marshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator));
     }
+    AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT readParams");
+    AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT returnUnmarshal");
     resources->destroyMapping()->mapHandles_VkValidationCacheEXT((VkValidationCacheEXT*)&validationCache);
     mImpl->log("finish vkDestroyValidationCacheEXT");;
 }
@@ -20664,6 +21591,7 @@
     uint32_t srcCacheCount,
     const VkValidationCacheEXT* pSrcCaches)
 {
+    AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT encode");
     mImpl->log("start vkMergeValidationCachesEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -20718,6 +21646,8 @@
         stream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(local_pSrcCaches, cgen_var_1439, ((srcCacheCount)));
         stream->write((uint64_t*)cgen_var_1439, ((srcCacheCount)) * 8);
     }
+    AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT readParams");
+    AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT returnUnmarshal");
     VkResult vkMergeValidationCachesEXT_VkResult_return = (VkResult)0;
     stream->read(&vkMergeValidationCachesEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -20733,6 +21663,7 @@
     size_t* pDataSize,
     void* pData)
 {
+    AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT encode");
     mImpl->log("start vkGetValidationCacheDataEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -20793,6 +21724,7 @@
     {
         stream->write((void*)pData, (*(pDataSize)) * sizeof(uint8_t));
     }
+    AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT readParams");
     // WARNING PTR CHECK
     size_t* check_pDataSize;
     check_pDataSize = (size_t*)(uintptr_t)stream->getBe64();
@@ -20815,6 +21747,7 @@
         }
         stream->read((void*)pData, (*(pDataSize)) * sizeof(uint8_t));
     }
+    AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT returnUnmarshal");
     VkResult vkGetValidationCacheDataEXT_VkResult_return = (VkResult)0;
     stream->read(&vkGetValidationCacheDataEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -20838,6 +21771,7 @@
     const void* pHostPointer,
     VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties)
 {
+    AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT encode");
     mImpl->log("start vkGetMemoryHostPointerPropertiesEXT");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -20886,11 +21820,13 @@
         stream->write((void*)local_pHostPointer, sizeof(uint8_t));
     }
     marshal_VkMemoryHostPointerPropertiesEXT(stream, (VkMemoryHostPointerPropertiesEXT*)(pMemoryHostPointerProperties));
+    AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT readParams");
     unmarshal_VkMemoryHostPointerPropertiesEXT(stream, (VkMemoryHostPointerPropertiesEXT*)(pMemoryHostPointerProperties));
     if (pMemoryHostPointerProperties)
     {
         transform_fromhost_VkMemoryHostPointerPropertiesEXT(mImpl->resources(), (VkMemoryHostPointerPropertiesEXT*)(pMemoryHostPointerProperties));
     }
+    AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT returnUnmarshal");
     VkResult vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0;
     stream->read(&vkGetMemoryHostPointerPropertiesEXT_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -20909,6 +21845,7 @@
     VkDeviceSize dstOffset,
     uint32_t marker)
 {
+    AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD encode");
     mImpl->log("start vkCmdWriteBufferMarkerAMD");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -20951,6 +21888,8 @@
     stream->write((uint64_t*)&cgen_var_1460, 1 * 8);
     stream->write((VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize));
     stream->write((uint32_t*)&local_marker, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD readParams");
+    AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD returnUnmarshal");
     mImpl->log("finish vkCmdWriteBufferMarkerAMD");;
 }
 
@@ -20966,6 +21905,7 @@
     VkCommandBuffer commandBuffer,
     const void* pCheckpointMarker)
 {
+    AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV encode");
     mImpl->log("start vkCmdSetCheckpointNV");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -21008,6 +21948,8 @@
     {
         stream->write((void*)local_pCheckpointMarker, sizeof(uint8_t));
     }
+    AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV readParams");
+    AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV returnUnmarshal");
     mImpl->log("finish vkCmdSetCheckpointNV");;
 }
 
@@ -21016,6 +21958,7 @@
     uint32_t* pCheckpointDataCount,
     VkCheckpointDataNV* pCheckpointData)
 {
+    AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV encode");
     mImpl->log("start vkGetQueueCheckpointDataNV");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -21072,6 +22015,7 @@
             marshal_VkCheckpointDataNV(stream, (VkCheckpointDataNV*)(pCheckpointData + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV readParams");
     // WARNING PTR CHECK
     uint32_t* check_pCheckpointDataCount;
     check_pCheckpointDataCount = (uint32_t*)(uintptr_t)stream->getBe64();
@@ -21104,6 +22048,7 @@
             transform_fromhost_VkCheckpointDataNV(mImpl->resources(), (VkCheckpointDataNV*)(pCheckpointData + i));
         }
     }
+    AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV returnUnmarshal");
     mImpl->log("finish vkGetQueueCheckpointDataNV");;
 }
 
@@ -21114,6 +22059,7 @@
     VkDeviceMemory memory,
     uint64_t* pAddress)
 {
+    AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE encode");
     mImpl->log("start vkMapMemoryIntoAddressSpaceGOOGLE");
     mImpl->resources()->on_vkMapMemoryIntoAddressSpaceGOOGLE_pre(this, VK_SUCCESS, device, memory, pAddress);
     auto stream = mImpl->stream();
@@ -21160,6 +22106,7 @@
     {
         stream->write((uint64_t*)pAddress, sizeof(uint64_t));
     }
+    AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE readParams");
     // WARNING PTR CHECK
     uint64_t* check_pAddress;
     check_pAddress = (uint64_t*)(uintptr_t)stream->getBe64();
@@ -21171,6 +22118,7 @@
         }
         stream->read((uint64_t*)pAddress, sizeof(uint64_t));
     }
+    AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE returnUnmarshal");
     VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
     stream->read(&vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -21188,6 +22136,7 @@
     VkImage image,
     uint32_t colorBuffer)
 {
+    AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE encode");
     mImpl->log("start vkRegisterImageColorBufferGOOGLE");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -21222,6 +22171,8 @@
     stream->handleMapping()->mapHandles_VkImage_u64(&local_image, &cgen_var_1483, 1);
     stream->write((uint64_t*)&cgen_var_1483, 1 * 8);
     stream->write((uint32_t*)&local_colorBuffer, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE readParams");
+    AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE returnUnmarshal");
     VkResult vkRegisterImageColorBufferGOOGLE_VkResult_return = (VkResult)0;
     stream->read(&vkRegisterImageColorBufferGOOGLE_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
@@ -21236,6 +22187,7 @@
     VkBuffer buffer,
     uint32_t colorBuffer)
 {
+    AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE encode");
     mImpl->log("start vkRegisterBufferColorBufferGOOGLE");
     auto stream = mImpl->stream();
     auto countingStream = mImpl->countingStream();
@@ -21270,6 +22222,8 @@
     stream->handleMapping()->mapHandles_VkBuffer_u64(&local_buffer, &cgen_var_1487, 1);
     stream->write((uint64_t*)&cgen_var_1487, 1 * 8);
     stream->write((uint32_t*)&local_colorBuffer, sizeof(uint32_t));
+    AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE readParams");
+    AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE returnUnmarshal");
     VkResult vkRegisterBufferColorBufferGOOGLE_VkResult_return = (VkResult)0;
     stream->read(&vkRegisterBufferColorBufferGOOGLE_VkResult_return, sizeof(VkResult));
     countingStream->clearPool();
diff --git a/system/vulkan_enc/VulkanStream.cpp b/system/vulkan_enc/VulkanStreamGuest.cpp
similarity index 79%
rename from system/vulkan_enc/VulkanStream.cpp
rename to system/vulkan_enc/VulkanStreamGuest.cpp
index 234799f..d4c37d0 100644
--- a/system/vulkan_enc/VulkanStream.cpp
+++ b/system/vulkan_enc/VulkanStreamGuest.cpp
@@ -11,11 +11,12 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
-#include "VulkanStream.h"
+#include "VulkanStreamGuest.h"
 
 #include "IOStream.h"
 
 #include "android/base/Pool.h"
+#include "android/base/Tracing.h"
 
 #include <vector>
 
@@ -24,7 +25,7 @@
 
 namespace goldfish_vk {
 
-class VulkanStream::Impl : public android::base::Stream {
+class VulkanStreamGuest::Impl : public android::base::Stream {
 public:
     Impl(IOStream* stream) : mStream(stream) { unsetHandleMapping(); }
 
@@ -46,7 +47,7 @@
     }
 
     ssize_t read(void *buffer, size_t size) override {
-        commitWrite();
+        if (mWritePos) commitWrite();
         if (!mStream->readFully(buffer, size)) {
             ALOGE("FATAL: Could not read back %zu bytes", size);
             abort();
@@ -84,6 +85,7 @@
     }
 
     void commitWrite() {
+        AEMU_SCOPED_TRACE("VulkanStreamGuest device write");
         mStream->flush();
 
         if (!valid()) {
@@ -120,20 +122,20 @@
     VulkanHandleMapping* mCurrentHandleMapping;
 };
 
-VulkanStream::VulkanStream(IOStream *stream) :
-    mImpl(new VulkanStream::Impl(stream)) { }
+VulkanStreamGuest::VulkanStreamGuest(IOStream *stream) :
+    mImpl(new VulkanStreamGuest::Impl(stream)) { }
 
-VulkanStream::~VulkanStream() = default;
+VulkanStreamGuest::~VulkanStreamGuest() = default;
 
-bool VulkanStream::valid() {
+bool VulkanStreamGuest::valid() {
     return mImpl->valid();
 }
 
-void VulkanStream::alloc(void** ptrAddr, size_t bytes) {
+void VulkanStreamGuest::alloc(void** ptrAddr, size_t bytes) {
     mImpl->alloc(ptrAddr, bytes);
 }
 
-void VulkanStream::loadStringInPlace(char** forOutput) {
+void VulkanStreamGuest::loadStringInPlace(char** forOutput) {
     size_t len = getBe32();
 
     alloc((void**)forOutput, len + 1);
@@ -143,7 +145,7 @@
     if (len > 0) read(*forOutput, len);
 }
 
-void VulkanStream::loadStringArrayInPlace(char*** forOutput) {
+void VulkanStreamGuest::loadStringArrayInPlace(char*** forOutput) {
     size_t count = getBe32();
 
     if (!count) {
@@ -161,35 +163,35 @@
 }
 
 
-ssize_t VulkanStream::read(void *buffer, size_t size) {
+ssize_t VulkanStreamGuest::read(void *buffer, size_t size) {
     return mImpl->read(buffer, size);
 }
 
-ssize_t VulkanStream::write(const void *buffer, size_t size) {
+ssize_t VulkanStreamGuest::write(const void *buffer, size_t size) {
     return mImpl->write(buffer, size);
 }
 
-void VulkanStream::clearPool() {
+void VulkanStreamGuest::clearPool() {
     mImpl->clearPool();
 }
 
-void VulkanStream::setHandleMapping(VulkanHandleMapping* mapping) {
+void VulkanStreamGuest::setHandleMapping(VulkanHandleMapping* mapping) {
     mImpl->setHandleMapping(mapping);
 }
 
-void VulkanStream::unsetHandleMapping() {
+void VulkanStreamGuest::unsetHandleMapping() {
     mImpl->unsetHandleMapping();
 }
 
-VulkanHandleMapping* VulkanStream::handleMapping() const {
+VulkanHandleMapping* VulkanStreamGuest::handleMapping() const {
     return mImpl->handleMapping();
 }
 
-void VulkanStream::flush() {
+void VulkanStreamGuest::flush() {
     mImpl->flush();
 }
 
-VulkanCountingStream::VulkanCountingStream() : VulkanStream(nullptr) { }
+VulkanCountingStream::VulkanCountingStream() : VulkanStreamGuest(nullptr) { }
 VulkanCountingStream::~VulkanCountingStream() = default;
 
 ssize_t VulkanCountingStream::read(void*, size_t size) {
diff --git a/system/vulkan_enc/VulkanStream.h b/system/vulkan_enc/VulkanStreamGuest.h
similarity index 91%
rename from system/vulkan_enc/VulkanStream.h
rename to system/vulkan_enc/VulkanStreamGuest.h
index 3d17d8f..8fa4aaa 100644
--- a/system/vulkan_enc/VulkanStream.h
+++ b/system/vulkan_enc/VulkanStreamGuest.h
@@ -24,10 +24,10 @@
 
 namespace goldfish_vk {
 
-class VulkanStream : public android::base::Stream {
+class VulkanStreamGuest : public android::base::Stream {
 public:
-    VulkanStream(IOStream* stream);
-    ~VulkanStream();
+    VulkanStreamGuest(IOStream* stream);
+    ~VulkanStreamGuest();
 
     // Returns whether the connection is valid.
     bool valid();
@@ -56,7 +56,7 @@
     std::unique_ptr<Impl> mImpl;
 };
 
-class VulkanCountingStream : public VulkanStream {
+class VulkanCountingStream : public VulkanStreamGuest {
 public:
     VulkanCountingStream();
     ~VulkanCountingStream();
diff --git a/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp b/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
index 8b47af0..86d2ab7 100644
--- a/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
@@ -32,16 +32,16 @@
 namespace goldfish_vk {
 
 void marshal_extension_struct(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const void* structExtension);
 
 void unmarshal_extension_struct(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     void* structExtension_out);
 
 #ifdef VK_VERSION_1_0
 void marshal_VkApplicationInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkApplicationInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -60,7 +60,7 @@
 }
 
 void unmarshal_VkApplicationInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkApplicationInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -81,7 +81,7 @@
 }
 
 void marshal_VkInstanceCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkInstanceCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -107,7 +107,7 @@
 }
 
 void unmarshal_VkInstanceCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkInstanceCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -135,7 +135,7 @@
 }
 
 void marshal_VkAllocationCallbacks(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAllocationCallbacks* forMarshaling)
 {
     // WARNING PTR CHECK
@@ -158,7 +158,7 @@
 }
 
 void unmarshal_VkAllocationCallbacks(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAllocationCallbacks* forUnmarshaling)
 {
     // WARNING PTR CHECK
@@ -176,7 +176,7 @@
 }
 
 void marshal_VkPhysicalDeviceFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceFeatures* forMarshaling)
 {
     vkStream->write((VkBool32*)&forMarshaling->robustBufferAccess, sizeof(VkBool32));
@@ -237,7 +237,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceFeatures* forUnmarshaling)
 {
     vkStream->read((VkBool32*)&forUnmarshaling->robustBufferAccess, sizeof(VkBool32));
@@ -298,7 +298,7 @@
 }
 
 void marshal_VkFormatProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkFormatProperties* forMarshaling)
 {
     vkStream->write((VkFormatFeatureFlags*)&forMarshaling->linearTilingFeatures, sizeof(VkFormatFeatureFlags));
@@ -307,7 +307,7 @@
 }
 
 void unmarshal_VkFormatProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkFormatProperties* forUnmarshaling)
 {
     vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->linearTilingFeatures, sizeof(VkFormatFeatureFlags));
@@ -316,7 +316,7 @@
 }
 
 void marshal_VkExtent3D(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExtent3D* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
@@ -325,7 +325,7 @@
 }
 
 void unmarshal_VkExtent3D(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExtent3D* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
@@ -334,7 +334,7 @@
 }
 
 void marshal_VkImageFormatProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageFormatProperties* forMarshaling)
 {
     marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->maxExtent));
@@ -345,7 +345,7 @@
 }
 
 void unmarshal_VkImageFormatProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageFormatProperties* forUnmarshaling)
 {
     unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->maxExtent));
@@ -356,7 +356,7 @@
 }
 
 void marshal_VkPhysicalDeviceLimits(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceLimits* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->maxImageDimension1D, sizeof(uint32_t));
@@ -469,7 +469,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceLimits(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceLimits* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->maxImageDimension1D, sizeof(uint32_t));
@@ -581,7 +581,7 @@
 }
 
 void marshal_VkPhysicalDeviceSparseProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceSparseProperties* forMarshaling)
 {
     vkStream->write((VkBool32*)&forMarshaling->residencyStandard2DBlockShape, sizeof(VkBool32));
@@ -592,7 +592,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceSparseProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceSparseProperties* forUnmarshaling)
 {
     vkStream->read((VkBool32*)&forUnmarshaling->residencyStandard2DBlockShape, sizeof(VkBool32));
@@ -603,7 +603,7 @@
 }
 
 void marshal_VkPhysicalDeviceProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceProperties* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->apiVersion, sizeof(uint32_t));
@@ -618,7 +618,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceProperties* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->apiVersion, sizeof(uint32_t));
@@ -633,7 +633,7 @@
 }
 
 void marshal_VkQueueFamilyProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkQueueFamilyProperties* forMarshaling)
 {
     vkStream->write((VkQueueFlags*)&forMarshaling->queueFlags, sizeof(VkQueueFlags));
@@ -643,7 +643,7 @@
 }
 
 void unmarshal_VkQueueFamilyProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkQueueFamilyProperties* forUnmarshaling)
 {
     vkStream->read((VkQueueFlags*)&forUnmarshaling->queueFlags, sizeof(VkQueueFlags));
@@ -653,7 +653,7 @@
 }
 
 void marshal_VkMemoryType(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryType* forMarshaling)
 {
     vkStream->write((VkMemoryPropertyFlags*)&forMarshaling->propertyFlags, sizeof(VkMemoryPropertyFlags));
@@ -661,7 +661,7 @@
 }
 
 void unmarshal_VkMemoryType(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryType* forUnmarshaling)
 {
     vkStream->read((VkMemoryPropertyFlags*)&forUnmarshaling->propertyFlags, sizeof(VkMemoryPropertyFlags));
@@ -669,7 +669,7 @@
 }
 
 void marshal_VkMemoryHeap(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryHeap* forMarshaling)
 {
     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
@@ -677,7 +677,7 @@
 }
 
 void unmarshal_VkMemoryHeap(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryHeap* forUnmarshaling)
 {
     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
@@ -685,7 +685,7 @@
 }
 
 void marshal_VkPhysicalDeviceMemoryProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceMemoryProperties* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->memoryTypeCount, sizeof(uint32_t));
@@ -701,7 +701,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceMemoryProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceMemoryProperties* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeCount, sizeof(uint32_t));
@@ -717,7 +717,7 @@
 }
 
 void marshal_VkDeviceQueueCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceQueueCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -735,7 +735,7 @@
 }
 
 void unmarshal_VkDeviceQueueCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceQueueCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -756,7 +756,7 @@
 }
 
 void marshal_VkDeviceCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -787,7 +787,7 @@
 }
 
 void unmarshal_VkDeviceCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -821,7 +821,7 @@
 }
 
 void marshal_VkExtensionProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExtensionProperties* forMarshaling)
 {
     vkStream->write((char*)forMarshaling->extensionName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
@@ -829,7 +829,7 @@
 }
 
 void unmarshal_VkExtensionProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExtensionProperties* forUnmarshaling)
 {
     vkStream->read((char*)forUnmarshaling->extensionName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
@@ -837,7 +837,7 @@
 }
 
 void marshal_VkLayerProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkLayerProperties* forMarshaling)
 {
     vkStream->write((char*)forMarshaling->layerName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
@@ -847,7 +847,7 @@
 }
 
 void unmarshal_VkLayerProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkLayerProperties* forUnmarshaling)
 {
     vkStream->read((char*)forUnmarshaling->layerName, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
@@ -857,7 +857,7 @@
 }
 
 void marshal_VkSubmitInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSubmitInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -896,7 +896,7 @@
 }
 
 void unmarshal_VkSubmitInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSubmitInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -941,7 +941,7 @@
 }
 
 void marshal_VkMemoryAllocateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryAllocateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -957,7 +957,7 @@
 }
 
 void unmarshal_VkMemoryAllocateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryAllocateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -975,7 +975,7 @@
 }
 
 void marshal_VkMappedMemoryRange(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMappedMemoryRange* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -994,7 +994,7 @@
 }
 
 void unmarshal_VkMappedMemoryRange(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMappedMemoryRange* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -1015,7 +1015,7 @@
 }
 
 void marshal_VkMemoryRequirements(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryRequirements* forMarshaling)
 {
     vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
@@ -1024,7 +1024,7 @@
 }
 
 void unmarshal_VkMemoryRequirements(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryRequirements* forUnmarshaling)
 {
     vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
@@ -1033,7 +1033,7 @@
 }
 
 void marshal_VkSparseImageFormatProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSparseImageFormatProperties* forMarshaling)
 {
     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
@@ -1042,7 +1042,7 @@
 }
 
 void unmarshal_VkSparseImageFormatProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSparseImageFormatProperties* forUnmarshaling)
 {
     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
@@ -1051,7 +1051,7 @@
 }
 
 void marshal_VkSparseImageMemoryRequirements(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSparseImageMemoryRequirements* forMarshaling)
 {
     marshal_VkSparseImageFormatProperties(vkStream, (VkSparseImageFormatProperties*)(&forMarshaling->formatProperties));
@@ -1062,7 +1062,7 @@
 }
 
 void unmarshal_VkSparseImageMemoryRequirements(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSparseImageMemoryRequirements* forUnmarshaling)
 {
     unmarshal_VkSparseImageFormatProperties(vkStream, (VkSparseImageFormatProperties*)(&forUnmarshaling->formatProperties));
@@ -1073,7 +1073,7 @@
 }
 
 void marshal_VkSparseMemoryBind(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSparseMemoryBind* forMarshaling)
 {
     vkStream->write((VkDeviceSize*)&forMarshaling->resourceOffset, sizeof(VkDeviceSize));
@@ -1086,7 +1086,7 @@
 }
 
 void unmarshal_VkSparseMemoryBind(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSparseMemoryBind* forUnmarshaling)
 {
     vkStream->read((VkDeviceSize*)&forUnmarshaling->resourceOffset, sizeof(VkDeviceSize));
@@ -1099,7 +1099,7 @@
 }
 
 void marshal_VkSparseBufferMemoryBindInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSparseBufferMemoryBindInfo* forMarshaling)
 {
     uint64_t cgen_var_28;
@@ -1113,7 +1113,7 @@
 }
 
 void unmarshal_VkSparseBufferMemoryBindInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSparseBufferMemoryBindInfo* forUnmarshaling)
 {
     uint64_t cgen_var_29;
@@ -1128,7 +1128,7 @@
 }
 
 void marshal_VkSparseImageOpaqueMemoryBindInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSparseImageOpaqueMemoryBindInfo* forMarshaling)
 {
     uint64_t cgen_var_30;
@@ -1142,7 +1142,7 @@
 }
 
 void unmarshal_VkSparseImageOpaqueMemoryBindInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSparseImageOpaqueMemoryBindInfo* forUnmarshaling)
 {
     uint64_t cgen_var_31;
@@ -1157,7 +1157,7 @@
 }
 
 void marshal_VkImageSubresource(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageSubresource* forMarshaling)
 {
     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
@@ -1166,7 +1166,7 @@
 }
 
 void unmarshal_VkImageSubresource(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageSubresource* forUnmarshaling)
 {
     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
@@ -1175,7 +1175,7 @@
 }
 
 void marshal_VkOffset3D(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkOffset3D* forMarshaling)
 {
     vkStream->write((int32_t*)&forMarshaling->x, sizeof(int32_t));
@@ -1184,7 +1184,7 @@
 }
 
 void unmarshal_VkOffset3D(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkOffset3D* forUnmarshaling)
 {
     vkStream->read((int32_t*)&forUnmarshaling->x, sizeof(int32_t));
@@ -1193,7 +1193,7 @@
 }
 
 void marshal_VkSparseImageMemoryBind(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSparseImageMemoryBind* forMarshaling)
 {
     marshal_VkImageSubresource(vkStream, (VkImageSubresource*)(&forMarshaling->subresource));
@@ -1207,7 +1207,7 @@
 }
 
 void unmarshal_VkSparseImageMemoryBind(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSparseImageMemoryBind* forUnmarshaling)
 {
     unmarshal_VkImageSubresource(vkStream, (VkImageSubresource*)(&forUnmarshaling->subresource));
@@ -1221,7 +1221,7 @@
 }
 
 void marshal_VkSparseImageMemoryBindInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSparseImageMemoryBindInfo* forMarshaling)
 {
     uint64_t cgen_var_34;
@@ -1235,7 +1235,7 @@
 }
 
 void unmarshal_VkSparseImageMemoryBindInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSparseImageMemoryBindInfo* forUnmarshaling)
 {
     uint64_t cgen_var_35;
@@ -1250,7 +1250,7 @@
 }
 
 void marshal_VkBindSparseInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBindSparseInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -1295,7 +1295,7 @@
 }
 
 void unmarshal_VkBindSparseInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBindSparseInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -1347,7 +1347,7 @@
 }
 
 void marshal_VkFenceCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkFenceCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -1362,7 +1362,7 @@
 }
 
 void unmarshal_VkFenceCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkFenceCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -1379,7 +1379,7 @@
 }
 
 void marshal_VkSemaphoreCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSemaphoreCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -1394,7 +1394,7 @@
 }
 
 void unmarshal_VkSemaphoreCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSemaphoreCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -1411,7 +1411,7 @@
 }
 
 void marshal_VkEventCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkEventCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -1426,7 +1426,7 @@
 }
 
 void unmarshal_VkEventCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkEventCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -1443,7 +1443,7 @@
 }
 
 void marshal_VkQueryPoolCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkQueryPoolCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -1461,7 +1461,7 @@
 }
 
 void unmarshal_VkQueryPoolCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkQueryPoolCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -1481,7 +1481,7 @@
 }
 
 void marshal_VkBufferCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBufferCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -1507,7 +1507,7 @@
 }
 
 void unmarshal_VkBufferCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBufferCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -1535,7 +1535,7 @@
 }
 
 void marshal_VkBufferViewCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBufferViewCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -1556,7 +1556,7 @@
 }
 
 void unmarshal_VkBufferViewCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBufferViewCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -1579,7 +1579,7 @@
 }
 
 void marshal_VkImageCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -1612,7 +1612,7 @@
 }
 
 void unmarshal_VkImageCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -1647,7 +1647,7 @@
 }
 
 void marshal_VkSubresourceLayout(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSubresourceLayout* forMarshaling)
 {
     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
@@ -1658,7 +1658,7 @@
 }
 
 void unmarshal_VkSubresourceLayout(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSubresourceLayout* forUnmarshaling)
 {
     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
@@ -1669,7 +1669,7 @@
 }
 
 void marshal_VkComponentMapping(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkComponentMapping* forMarshaling)
 {
     vkStream->write((VkComponentSwizzle*)&forMarshaling->r, sizeof(VkComponentSwizzle));
@@ -1679,7 +1679,7 @@
 }
 
 void unmarshal_VkComponentMapping(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkComponentMapping* forUnmarshaling)
 {
     vkStream->read((VkComponentSwizzle*)&forUnmarshaling->r, sizeof(VkComponentSwizzle));
@@ -1689,7 +1689,7 @@
 }
 
 void marshal_VkImageSubresourceRange(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageSubresourceRange* forMarshaling)
 {
     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
@@ -1700,7 +1700,7 @@
 }
 
 void unmarshal_VkImageSubresourceRange(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageSubresourceRange* forUnmarshaling)
 {
     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
@@ -1711,7 +1711,7 @@
 }
 
 void marshal_VkImageViewCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageViewCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -1733,7 +1733,7 @@
 }
 
 void unmarshal_VkImageViewCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageViewCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -1757,7 +1757,7 @@
 }
 
 void marshal_VkShaderModuleCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkShaderModuleCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -1775,7 +1775,7 @@
 }
 
 void unmarshal_VkShaderModuleCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkShaderModuleCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -1795,7 +1795,7 @@
 }
 
 void marshal_VkPipelineCacheCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineCacheCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -1813,7 +1813,7 @@
 }
 
 void unmarshal_VkPipelineCacheCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineCacheCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -1833,7 +1833,7 @@
 }
 
 void marshal_VkSpecializationMapEntry(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSpecializationMapEntry* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->constantID, sizeof(uint32_t));
@@ -1843,7 +1843,7 @@
 }
 
 void unmarshal_VkSpecializationMapEntry(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSpecializationMapEntry* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->constantID, sizeof(uint32_t));
@@ -1852,7 +1852,7 @@
 }
 
 void marshal_VkSpecializationInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSpecializationInfo* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->mapEntryCount, sizeof(uint32_t));
@@ -1866,7 +1866,7 @@
 }
 
 void unmarshal_VkSpecializationInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSpecializationInfo* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->mapEntryCount, sizeof(uint32_t));
@@ -1881,7 +1881,7 @@
 }
 
 void marshal_VkPipelineShaderStageCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineShaderStageCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -1908,7 +1908,7 @@
 }
 
 void unmarshal_VkPipelineShaderStageCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineShaderStageCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -1937,7 +1937,7 @@
 }
 
 void marshal_VkVertexInputBindingDescription(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkVertexInputBindingDescription* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
@@ -1946,7 +1946,7 @@
 }
 
 void unmarshal_VkVertexInputBindingDescription(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkVertexInputBindingDescription* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
@@ -1955,7 +1955,7 @@
 }
 
 void marshal_VkVertexInputAttributeDescription(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkVertexInputAttributeDescription* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->location, sizeof(uint32_t));
@@ -1965,7 +1965,7 @@
 }
 
 void unmarshal_VkVertexInputAttributeDescription(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkVertexInputAttributeDescription* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->location, sizeof(uint32_t));
@@ -1975,7 +1975,7 @@
 }
 
 void marshal_VkPipelineVertexInputStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineVertexInputStateCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -2000,7 +2000,7 @@
 }
 
 void unmarshal_VkPipelineVertexInputStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineVertexInputStateCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -2029,7 +2029,7 @@
 }
 
 void marshal_VkPipelineInputAssemblyStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineInputAssemblyStateCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -2046,7 +2046,7 @@
 }
 
 void unmarshal_VkPipelineInputAssemblyStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineInputAssemblyStateCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -2065,7 +2065,7 @@
 }
 
 void marshal_VkPipelineTessellationStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineTessellationStateCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -2081,7 +2081,7 @@
 }
 
 void unmarshal_VkPipelineTessellationStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineTessellationStateCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -2099,7 +2099,7 @@
 }
 
 void marshal_VkViewport(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkViewport* forMarshaling)
 {
     vkStream->write((float*)&forMarshaling->x, sizeof(float));
@@ -2111,7 +2111,7 @@
 }
 
 void unmarshal_VkViewport(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkViewport* forUnmarshaling)
 {
     vkStream->read((float*)&forUnmarshaling->x, sizeof(float));
@@ -2123,7 +2123,7 @@
 }
 
 void marshal_VkOffset2D(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkOffset2D* forMarshaling)
 {
     vkStream->write((int32_t*)&forMarshaling->x, sizeof(int32_t));
@@ -2131,7 +2131,7 @@
 }
 
 void unmarshal_VkOffset2D(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkOffset2D* forUnmarshaling)
 {
     vkStream->read((int32_t*)&forUnmarshaling->x, sizeof(int32_t));
@@ -2139,7 +2139,7 @@
 }
 
 void marshal_VkExtent2D(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExtent2D* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
@@ -2147,7 +2147,7 @@
 }
 
 void unmarshal_VkExtent2D(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExtent2D* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
@@ -2155,7 +2155,7 @@
 }
 
 void marshal_VkRect2D(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkRect2D* forMarshaling)
 {
     marshal_VkOffset2D(vkStream, (VkOffset2D*)(&forMarshaling->offset));
@@ -2163,7 +2163,7 @@
 }
 
 void unmarshal_VkRect2D(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkRect2D* forUnmarshaling)
 {
     unmarshal_VkOffset2D(vkStream, (VkOffset2D*)(&forUnmarshaling->offset));
@@ -2171,7 +2171,7 @@
 }
 
 void marshal_VkPipelineViewportStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineViewportStateCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -2208,7 +2208,7 @@
 }
 
 void unmarshal_VkPipelineViewportStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineViewportStateCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -2247,7 +2247,7 @@
 }
 
 void marshal_VkPipelineRasterizationStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineRasterizationStateCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -2272,7 +2272,7 @@
 }
 
 void unmarshal_VkPipelineRasterizationStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineRasterizationStateCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -2299,7 +2299,7 @@
 }
 
 void marshal_VkPipelineMultisampleStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineMultisampleStateCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -2326,7 +2326,7 @@
 }
 
 void unmarshal_VkPipelineMultisampleStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineMultisampleStateCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -2355,7 +2355,7 @@
 }
 
 void marshal_VkStencilOpState(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkStencilOpState* forMarshaling)
 {
     vkStream->write((VkStencilOp*)&forMarshaling->failOp, sizeof(VkStencilOp));
@@ -2368,7 +2368,7 @@
 }
 
 void unmarshal_VkStencilOpState(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkStencilOpState* forUnmarshaling)
 {
     vkStream->read((VkStencilOp*)&forUnmarshaling->failOp, sizeof(VkStencilOp));
@@ -2381,7 +2381,7 @@
 }
 
 void marshal_VkPipelineDepthStencilStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineDepthStencilStateCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -2405,7 +2405,7 @@
 }
 
 void unmarshal_VkPipelineDepthStencilStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineDepthStencilStateCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -2431,7 +2431,7 @@
 }
 
 void marshal_VkPipelineColorBlendAttachmentState(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineColorBlendAttachmentState* forMarshaling)
 {
     vkStream->write((VkBool32*)&forMarshaling->blendEnable, sizeof(VkBool32));
@@ -2445,7 +2445,7 @@
 }
 
 void unmarshal_VkPipelineColorBlendAttachmentState(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineColorBlendAttachmentState* forUnmarshaling)
 {
     vkStream->read((VkBool32*)&forUnmarshaling->blendEnable, sizeof(VkBool32));
@@ -2459,7 +2459,7 @@
 }
 
 void marshal_VkPipelineColorBlendStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineColorBlendStateCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -2482,7 +2482,7 @@
 }
 
 void unmarshal_VkPipelineColorBlendStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineColorBlendStateCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -2508,7 +2508,7 @@
 }
 
 void marshal_VkPipelineDynamicStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineDynamicStateCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -2525,7 +2525,7 @@
 }
 
 void unmarshal_VkPipelineDynamicStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineDynamicStateCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -2545,7 +2545,7 @@
 }
 
 void marshal_VkGraphicsPipelineCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkGraphicsPipelineCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -2621,7 +2621,7 @@
 }
 
 void unmarshal_VkGraphicsPipelineCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkGraphicsPipelineCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -2703,7 +2703,7 @@
 }
 
 void marshal_VkComputePipelineCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkComputePipelineCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -2726,7 +2726,7 @@
 }
 
 void unmarshal_VkComputePipelineCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkComputePipelineCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -2751,7 +2751,7 @@
 }
 
 void marshal_VkPushConstantRange(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPushConstantRange* forMarshaling)
 {
     vkStream->write((VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
@@ -2760,7 +2760,7 @@
 }
 
 void unmarshal_VkPushConstantRange(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPushConstantRange* forUnmarshaling)
 {
     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stageFlags, sizeof(VkShaderStageFlags));
@@ -2769,7 +2769,7 @@
 }
 
 void marshal_VkPipelineLayoutCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineLayoutCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -2797,7 +2797,7 @@
 }
 
 void unmarshal_VkPipelineLayoutCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineLayoutCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -2829,7 +2829,7 @@
 }
 
 void marshal_VkSamplerCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSamplerCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -2859,7 +2859,7 @@
 }
 
 void unmarshal_VkSamplerCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSamplerCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -2891,7 +2891,7 @@
 }
 
 void marshal_VkDescriptorSetLayoutBinding(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorSetLayoutBinding* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
@@ -2914,7 +2914,7 @@
 }
 
 void unmarshal_VkDescriptorSetLayoutBinding(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorSetLayoutBinding* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
@@ -2937,7 +2937,7 @@
 }
 
 void marshal_VkDescriptorSetLayoutCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorSetLayoutCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -2957,7 +2957,7 @@
 }
 
 void unmarshal_VkDescriptorSetLayoutCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorSetLayoutCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -2980,7 +2980,7 @@
 }
 
 void marshal_VkDescriptorPoolSize(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorPoolSize* forMarshaling)
 {
     vkStream->write((VkDescriptorType*)&forMarshaling->type, sizeof(VkDescriptorType));
@@ -2988,7 +2988,7 @@
 }
 
 void unmarshal_VkDescriptorPoolSize(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorPoolSize* forUnmarshaling)
 {
     vkStream->read((VkDescriptorType*)&forUnmarshaling->type, sizeof(VkDescriptorType));
@@ -2996,7 +2996,7 @@
 }
 
 void marshal_VkDescriptorPoolCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorPoolCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -3017,7 +3017,7 @@
 }
 
 void unmarshal_VkDescriptorPoolCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorPoolCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -3041,7 +3041,7 @@
 }
 
 void marshal_VkDescriptorSetAllocateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorSetAllocateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -3066,7 +3066,7 @@
 }
 
 void unmarshal_VkDescriptorSetAllocateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorSetAllocateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -3094,7 +3094,7 @@
 }
 
 void marshal_VkDescriptorImageInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorImageInfo* forMarshaling)
 {
     uint64_t cgen_var_98;
@@ -3107,7 +3107,7 @@
 }
 
 void unmarshal_VkDescriptorImageInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorImageInfo* forUnmarshaling)
 {
     uint64_t cgen_var_100;
@@ -3120,7 +3120,7 @@
 }
 
 void marshal_VkDescriptorBufferInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorBufferInfo* forMarshaling)
 {
     uint64_t cgen_var_102;
@@ -3131,7 +3131,7 @@
 }
 
 void unmarshal_VkDescriptorBufferInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorBufferInfo* forUnmarshaling)
 {
     uint64_t cgen_var_103;
@@ -3142,7 +3142,7 @@
 }
 
 void marshal_VkWriteDescriptorSet(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkWriteDescriptorSet* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -3196,7 +3196,7 @@
 }
 
 void unmarshal_VkWriteDescriptorSet(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkWriteDescriptorSet* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -3252,7 +3252,7 @@
 }
 
 void marshal_VkCopyDescriptorSet(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkCopyDescriptorSet* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -3277,7 +3277,7 @@
 }
 
 void unmarshal_VkCopyDescriptorSet(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkCopyDescriptorSet* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -3304,7 +3304,7 @@
 }
 
 void marshal_VkFramebufferCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkFramebufferCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -3333,7 +3333,7 @@
 }
 
 void unmarshal_VkFramebufferCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkFramebufferCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -3365,7 +3365,7 @@
 }
 
 void marshal_VkAttachmentDescription(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAttachmentDescription* forMarshaling)
 {
     vkStream->write((VkAttachmentDescriptionFlags*)&forMarshaling->flags, sizeof(VkAttachmentDescriptionFlags));
@@ -3380,7 +3380,7 @@
 }
 
 void unmarshal_VkAttachmentDescription(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAttachmentDescription* forUnmarshaling)
 {
     vkStream->read((VkAttachmentDescriptionFlags*)&forUnmarshaling->flags, sizeof(VkAttachmentDescriptionFlags));
@@ -3395,7 +3395,7 @@
 }
 
 void marshal_VkAttachmentReference(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAttachmentReference* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->attachment, sizeof(uint32_t));
@@ -3403,7 +3403,7 @@
 }
 
 void unmarshal_VkAttachmentReference(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAttachmentReference* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->attachment, sizeof(uint32_t));
@@ -3411,7 +3411,7 @@
 }
 
 void marshal_VkSubpassDescription(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSubpassDescription* forMarshaling)
 {
     vkStream->write((VkSubpassDescriptionFlags*)&forMarshaling->flags, sizeof(VkSubpassDescriptionFlags));
@@ -3448,7 +3448,7 @@
 }
 
 void unmarshal_VkSubpassDescription(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSubpassDescription* forUnmarshaling)
 {
     vkStream->read((VkSubpassDescriptionFlags*)&forUnmarshaling->flags, sizeof(VkSubpassDescriptionFlags));
@@ -3488,7 +3488,7 @@
 }
 
 void marshal_VkSubpassDependency(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSubpassDependency* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->srcSubpass, sizeof(uint32_t));
@@ -3501,7 +3501,7 @@
 }
 
 void unmarshal_VkSubpassDependency(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSubpassDependency* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->srcSubpass, sizeof(uint32_t));
@@ -3514,7 +3514,7 @@
 }
 
 void marshal_VkRenderPassCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkRenderPassCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -3544,7 +3544,7 @@
 }
 
 void unmarshal_VkRenderPassCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkRenderPassCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -3579,7 +3579,7 @@
 }
 
 void marshal_VkCommandPoolCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkCommandPoolCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -3595,7 +3595,7 @@
 }
 
 void unmarshal_VkCommandPoolCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkCommandPoolCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -3613,7 +3613,7 @@
 }
 
 void marshal_VkCommandBufferAllocateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkCommandBufferAllocateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -3632,7 +3632,7 @@
 }
 
 void unmarshal_VkCommandBufferAllocateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkCommandBufferAllocateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -3653,7 +3653,7 @@
 }
 
 void marshal_VkCommandBufferInheritanceInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkCommandBufferInheritanceInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -3677,7 +3677,7 @@
 }
 
 void unmarshal_VkCommandBufferInheritanceInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkCommandBufferInheritanceInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -3703,7 +3703,7 @@
 }
 
 void marshal_VkCommandBufferBeginInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkCommandBufferBeginInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -3725,7 +3725,7 @@
 }
 
 void unmarshal_VkCommandBufferBeginInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkCommandBufferBeginInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -3749,7 +3749,7 @@
 }
 
 void marshal_VkBufferCopy(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBufferCopy* forMarshaling)
 {
     vkStream->write((VkDeviceSize*)&forMarshaling->srcOffset, sizeof(VkDeviceSize));
@@ -3758,7 +3758,7 @@
 }
 
 void unmarshal_VkBufferCopy(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBufferCopy* forUnmarshaling)
 {
     vkStream->read((VkDeviceSize*)&forUnmarshaling->srcOffset, sizeof(VkDeviceSize));
@@ -3767,7 +3767,7 @@
 }
 
 void marshal_VkImageSubresourceLayers(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageSubresourceLayers* forMarshaling)
 {
     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
@@ -3777,7 +3777,7 @@
 }
 
 void unmarshal_VkImageSubresourceLayers(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageSubresourceLayers* forUnmarshaling)
 {
     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
@@ -3787,7 +3787,7 @@
 }
 
 void marshal_VkImageCopy(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageCopy* forMarshaling)
 {
     marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
@@ -3798,7 +3798,7 @@
 }
 
 void unmarshal_VkImageCopy(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageCopy* forUnmarshaling)
 {
     unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
@@ -3809,7 +3809,7 @@
 }
 
 void marshal_VkImageBlit(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageBlit* forMarshaling)
 {
     marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
@@ -3825,7 +3825,7 @@
 }
 
 void unmarshal_VkImageBlit(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageBlit* forUnmarshaling)
 {
     unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
@@ -3841,7 +3841,7 @@
 }
 
 void marshal_VkBufferImageCopy(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBufferImageCopy* forMarshaling)
 {
     vkStream->write((VkDeviceSize*)&forMarshaling->bufferOffset, sizeof(VkDeviceSize));
@@ -3853,7 +3853,7 @@
 }
 
 void unmarshal_VkBufferImageCopy(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBufferImageCopy* forUnmarshaling)
 {
     vkStream->read((VkDeviceSize*)&forUnmarshaling->bufferOffset, sizeof(VkDeviceSize));
@@ -3865,21 +3865,21 @@
 }
 
 void marshal_VkClearColorValue(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkClearColorValue* forMarshaling)
 {
     vkStream->write((float*)forMarshaling->float32, 4 * sizeof(float));
 }
 
 void unmarshal_VkClearColorValue(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkClearColorValue* forUnmarshaling)
 {
     vkStream->read((float*)forUnmarshaling->float32, 4 * sizeof(float));
 }
 
 void marshal_VkClearDepthStencilValue(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkClearDepthStencilValue* forMarshaling)
 {
     vkStream->write((float*)&forMarshaling->depth, sizeof(float));
@@ -3887,7 +3887,7 @@
 }
 
 void unmarshal_VkClearDepthStencilValue(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkClearDepthStencilValue* forUnmarshaling)
 {
     vkStream->read((float*)&forUnmarshaling->depth, sizeof(float));
@@ -3895,21 +3895,21 @@
 }
 
 void marshal_VkClearValue(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkClearValue* forMarshaling)
 {
     marshal_VkClearColorValue(vkStream, (VkClearColorValue*)(&forMarshaling->color));
 }
 
 void unmarshal_VkClearValue(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkClearValue* forUnmarshaling)
 {
     unmarshal_VkClearColorValue(vkStream, (VkClearColorValue*)(&forUnmarshaling->color));
 }
 
 void marshal_VkClearAttachment(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkClearAttachment* forMarshaling)
 {
     vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
@@ -3918,7 +3918,7 @@
 }
 
 void unmarshal_VkClearAttachment(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkClearAttachment* forUnmarshaling)
 {
     vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
@@ -3927,7 +3927,7 @@
 }
 
 void marshal_VkClearRect(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkClearRect* forMarshaling)
 {
     marshal_VkRect2D(vkStream, (VkRect2D*)(&forMarshaling->rect));
@@ -3936,7 +3936,7 @@
 }
 
 void unmarshal_VkClearRect(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkClearRect* forUnmarshaling)
 {
     unmarshal_VkRect2D(vkStream, (VkRect2D*)(&forUnmarshaling->rect));
@@ -3945,7 +3945,7 @@
 }
 
 void marshal_VkImageResolve(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageResolve* forMarshaling)
 {
     marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
@@ -3956,7 +3956,7 @@
 }
 
 void unmarshal_VkImageResolve(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageResolve* forUnmarshaling)
 {
     unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
@@ -3967,7 +3967,7 @@
 }
 
 void marshal_VkMemoryBarrier(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryBarrier* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -3983,7 +3983,7 @@
 }
 
 void unmarshal_VkMemoryBarrier(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryBarrier* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4001,7 +4001,7 @@
 }
 
 void marshal_VkBufferMemoryBarrier(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBufferMemoryBarrier* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4024,7 +4024,7 @@
 }
 
 void unmarshal_VkBufferMemoryBarrier(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBufferMemoryBarrier* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4049,7 +4049,7 @@
 }
 
 void marshal_VkImageMemoryBarrier(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageMemoryBarrier* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4073,7 +4073,7 @@
 }
 
 void unmarshal_VkImageMemoryBarrier(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageMemoryBarrier* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4099,7 +4099,7 @@
 }
 
 void marshal_VkRenderPassBeginInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkRenderPassBeginInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4131,7 +4131,7 @@
 }
 
 void unmarshal_VkRenderPassBeginInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkRenderPassBeginInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4165,7 +4165,7 @@
 }
 
 void marshal_VkDispatchIndirectCommand(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDispatchIndirectCommand* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->x, sizeof(uint32_t));
@@ -4174,7 +4174,7 @@
 }
 
 void unmarshal_VkDispatchIndirectCommand(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDispatchIndirectCommand* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->x, sizeof(uint32_t));
@@ -4183,7 +4183,7 @@
 }
 
 void marshal_VkDrawIndexedIndirectCommand(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDrawIndexedIndirectCommand* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->indexCount, sizeof(uint32_t));
@@ -4194,7 +4194,7 @@
 }
 
 void unmarshal_VkDrawIndexedIndirectCommand(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDrawIndexedIndirectCommand* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->indexCount, sizeof(uint32_t));
@@ -4205,7 +4205,7 @@
 }
 
 void marshal_VkDrawIndirectCommand(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDrawIndirectCommand* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->vertexCount, sizeof(uint32_t));
@@ -4215,7 +4215,7 @@
 }
 
 void unmarshal_VkDrawIndirectCommand(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDrawIndirectCommand* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->vertexCount, sizeof(uint32_t));
@@ -4225,7 +4225,7 @@
 }
 
 void marshal_VkBaseOutStructure(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBaseOutStructure* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4239,7 +4239,7 @@
 }
 
 void unmarshal_VkBaseOutStructure(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBaseOutStructure* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4255,7 +4255,7 @@
 }
 
 void marshal_VkBaseInStructure(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBaseInStructure* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4269,7 +4269,7 @@
 }
 
 void unmarshal_VkBaseInStructure(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBaseInStructure* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4287,7 +4287,7 @@
 #endif
 #ifdef VK_VERSION_1_1
 void marshal_VkPhysicalDeviceSubgroupProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceSubgroupProperties* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4305,7 +4305,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceSubgroupProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceSubgroupProperties* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4325,7 +4325,7 @@
 }
 
 void marshal_VkBindBufferMemoryInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBindBufferMemoryInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4346,7 +4346,7 @@
 }
 
 void unmarshal_VkBindBufferMemoryInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBindBufferMemoryInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4369,7 +4369,7 @@
 }
 
 void marshal_VkBindImageMemoryInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBindImageMemoryInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4390,7 +4390,7 @@
 }
 
 void unmarshal_VkBindImageMemoryInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBindImageMemoryInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4413,7 +4413,7 @@
 }
 
 void marshal_VkPhysicalDevice16BitStorageFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDevice16BitStorageFeatures* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4431,7 +4431,7 @@
 }
 
 void unmarshal_VkPhysicalDevice16BitStorageFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDevice16BitStorageFeatures* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4451,7 +4451,7 @@
 }
 
 void marshal_VkMemoryDedicatedRequirements(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryDedicatedRequirements* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4467,7 +4467,7 @@
 }
 
 void unmarshal_VkMemoryDedicatedRequirements(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryDedicatedRequirements* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4485,7 +4485,7 @@
 }
 
 void marshal_VkMemoryDedicatedAllocateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryDedicatedAllocateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4505,7 +4505,7 @@
 }
 
 void unmarshal_VkMemoryDedicatedAllocateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryDedicatedAllocateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4527,7 +4527,7 @@
 }
 
 void marshal_VkMemoryAllocateFlagsInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryAllocateFlagsInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4543,7 +4543,7 @@
 }
 
 void unmarshal_VkMemoryAllocateFlagsInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryAllocateFlagsInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4561,7 +4561,7 @@
 }
 
 void marshal_VkDeviceGroupRenderPassBeginInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceGroupRenderPassBeginInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4581,7 +4581,7 @@
 }
 
 void unmarshal_VkDeviceGroupRenderPassBeginInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceGroupRenderPassBeginInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4604,7 +4604,7 @@
 }
 
 void marshal_VkDeviceGroupCommandBufferBeginInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceGroupCommandBufferBeginInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4619,7 +4619,7 @@
 }
 
 void unmarshal_VkDeviceGroupCommandBufferBeginInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceGroupCommandBufferBeginInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4636,7 +4636,7 @@
 }
 
 void marshal_VkDeviceGroupSubmitInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceGroupSubmitInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4656,7 +4656,7 @@
 }
 
 void unmarshal_VkDeviceGroupSubmitInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceGroupSubmitInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4681,7 +4681,7 @@
 }
 
 void marshal_VkDeviceGroupBindSparseInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceGroupBindSparseInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4697,7 +4697,7 @@
 }
 
 void unmarshal_VkDeviceGroupBindSparseInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceGroupBindSparseInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4715,7 +4715,7 @@
 }
 
 void marshal_VkBindBufferMemoryDeviceGroupInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBindBufferMemoryDeviceGroupInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4731,7 +4731,7 @@
 }
 
 void unmarshal_VkBindBufferMemoryDeviceGroupInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBindBufferMemoryDeviceGroupInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4750,7 +4750,7 @@
 }
 
 void marshal_VkBindImageMemoryDeviceGroupInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBindImageMemoryDeviceGroupInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4771,7 +4771,7 @@
 }
 
 void unmarshal_VkBindImageMemoryDeviceGroupInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBindImageMemoryDeviceGroupInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4796,7 +4796,7 @@
 }
 
 void marshal_VkPhysicalDeviceGroupProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceGroupProperties* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4813,7 +4813,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceGroupProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceGroupProperties* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4832,7 +4832,7 @@
 }
 
 void marshal_VkDeviceGroupDeviceCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceGroupDeviceCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4854,7 +4854,7 @@
 }
 
 void unmarshal_VkDeviceGroupDeviceCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceGroupDeviceCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4879,7 +4879,7 @@
 }
 
 void marshal_VkBufferMemoryRequirementsInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBufferMemoryRequirementsInfo2* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4896,7 +4896,7 @@
 }
 
 void unmarshal_VkBufferMemoryRequirementsInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBufferMemoryRequirementsInfo2* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4915,7 +4915,7 @@
 }
 
 void marshal_VkImageMemoryRequirementsInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageMemoryRequirementsInfo2* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4932,7 +4932,7 @@
 }
 
 void unmarshal_VkImageMemoryRequirementsInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageMemoryRequirementsInfo2* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4951,7 +4951,7 @@
 }
 
 void marshal_VkImageSparseMemoryRequirementsInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageSparseMemoryRequirementsInfo2* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -4968,7 +4968,7 @@
 }
 
 void unmarshal_VkImageSparseMemoryRequirementsInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageSparseMemoryRequirementsInfo2* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -4987,7 +4987,7 @@
 }
 
 void marshal_VkMemoryRequirements2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryRequirements2* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5002,7 +5002,7 @@
 }
 
 void unmarshal_VkMemoryRequirements2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryRequirements2* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5019,7 +5019,7 @@
 }
 
 void marshal_VkSparseImageMemoryRequirements2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSparseImageMemoryRequirements2* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5034,7 +5034,7 @@
 }
 
 void unmarshal_VkSparseImageMemoryRequirements2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSparseImageMemoryRequirements2* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5051,7 +5051,7 @@
 }
 
 void marshal_VkPhysicalDeviceFeatures2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceFeatures2* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5066,7 +5066,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceFeatures2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceFeatures2* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5083,7 +5083,7 @@
 }
 
 void marshal_VkPhysicalDeviceProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceProperties2* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5098,7 +5098,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceProperties2* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5115,7 +5115,7 @@
 }
 
 void marshal_VkFormatProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkFormatProperties2* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5130,7 +5130,7 @@
 }
 
 void unmarshal_VkFormatProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkFormatProperties2* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5147,7 +5147,7 @@
 }
 
 void marshal_VkImageFormatProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageFormatProperties2* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5162,7 +5162,7 @@
 }
 
 void unmarshal_VkImageFormatProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageFormatProperties2* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5179,7 +5179,7 @@
 }
 
 void marshal_VkPhysicalDeviceImageFormatInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceImageFormatInfo2* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5198,7 +5198,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceImageFormatInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceImageFormatInfo2* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5219,7 +5219,7 @@
 }
 
 void marshal_VkQueueFamilyProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkQueueFamilyProperties2* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5234,7 +5234,7 @@
 }
 
 void unmarshal_VkQueueFamilyProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkQueueFamilyProperties2* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5251,7 +5251,7 @@
 }
 
 void marshal_VkPhysicalDeviceMemoryProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceMemoryProperties2* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5266,7 +5266,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceMemoryProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceMemoryProperties2* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5283,7 +5283,7 @@
 }
 
 void marshal_VkSparseImageFormatProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSparseImageFormatProperties2* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5298,7 +5298,7 @@
 }
 
 void unmarshal_VkSparseImageFormatProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSparseImageFormatProperties2* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5315,7 +5315,7 @@
 }
 
 void marshal_VkPhysicalDeviceSparseImageFormatInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceSparseImageFormatInfo2* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5334,7 +5334,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceSparseImageFormatInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceSparseImageFormatInfo2* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5355,7 +5355,7 @@
 }
 
 void marshal_VkPhysicalDevicePointClippingProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDevicePointClippingProperties* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5370,7 +5370,7 @@
 }
 
 void unmarshal_VkPhysicalDevicePointClippingProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDevicePointClippingProperties* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5387,7 +5387,7 @@
 }
 
 void marshal_VkInputAttachmentAspectReference(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkInputAttachmentAspectReference* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
@@ -5396,7 +5396,7 @@
 }
 
 void unmarshal_VkInputAttachmentAspectReference(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkInputAttachmentAspectReference* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->subpass, sizeof(uint32_t));
@@ -5405,7 +5405,7 @@
 }
 
 void marshal_VkRenderPassInputAttachmentAspectCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkRenderPassInputAttachmentAspectCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5424,7 +5424,7 @@
 }
 
 void unmarshal_VkRenderPassInputAttachmentAspectCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkRenderPassInputAttachmentAspectCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5446,7 +5446,7 @@
 }
 
 void marshal_VkImageViewUsageCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageViewUsageCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5461,7 +5461,7 @@
 }
 
 void unmarshal_VkImageViewUsageCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageViewUsageCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5478,7 +5478,7 @@
 }
 
 void marshal_VkPipelineTessellationDomainOriginStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineTessellationDomainOriginStateCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5493,7 +5493,7 @@
 }
 
 void unmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineTessellationDomainOriginStateCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5510,7 +5510,7 @@
 }
 
 void marshal_VkRenderPassMultiviewCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkRenderPassMultiviewCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5530,7 +5530,7 @@
 }
 
 void unmarshal_VkRenderPassMultiviewCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkRenderPassMultiviewCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5555,7 +5555,7 @@
 }
 
 void marshal_VkPhysicalDeviceMultiviewFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceMultiviewFeatures* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5572,7 +5572,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceMultiviewFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceMultiviewFeatures* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5591,7 +5591,7 @@
 }
 
 void marshal_VkPhysicalDeviceMultiviewProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceMultiviewProperties* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5607,7 +5607,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceMultiviewProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceMultiviewProperties* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5625,7 +5625,7 @@
 }
 
 void marshal_VkPhysicalDeviceVariablePointerFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceVariablePointerFeatures* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5641,7 +5641,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceVariablePointerFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceVariablePointerFeatures* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5659,7 +5659,7 @@
 }
 
 void marshal_VkPhysicalDeviceProtectedMemoryFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceProtectedMemoryFeatures* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5674,7 +5674,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceProtectedMemoryFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceProtectedMemoryFeatures* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5691,7 +5691,7 @@
 }
 
 void marshal_VkPhysicalDeviceProtectedMemoryProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceProtectedMemoryProperties* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5706,7 +5706,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceProtectedMemoryProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceProtectedMemoryProperties* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5723,7 +5723,7 @@
 }
 
 void marshal_VkDeviceQueueInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceQueueInfo2* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5740,7 +5740,7 @@
 }
 
 void unmarshal_VkDeviceQueueInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceQueueInfo2* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5759,7 +5759,7 @@
 }
 
 void marshal_VkProtectedSubmitInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkProtectedSubmitInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5774,7 +5774,7 @@
 }
 
 void unmarshal_VkProtectedSubmitInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkProtectedSubmitInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5791,7 +5791,7 @@
 }
 
 void marshal_VkSamplerYcbcrConversionCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSamplerYcbcrConversionCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5813,7 +5813,7 @@
 }
 
 void unmarshal_VkSamplerYcbcrConversionCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSamplerYcbcrConversionCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5837,7 +5837,7 @@
 }
 
 void marshal_VkSamplerYcbcrConversionInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSamplerYcbcrConversionInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5854,7 +5854,7 @@
 }
 
 void unmarshal_VkSamplerYcbcrConversionInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSamplerYcbcrConversionInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5873,7 +5873,7 @@
 }
 
 void marshal_VkBindImagePlaneMemoryInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBindImagePlaneMemoryInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5888,7 +5888,7 @@
 }
 
 void unmarshal_VkBindImagePlaneMemoryInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBindImagePlaneMemoryInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5905,7 +5905,7 @@
 }
 
 void marshal_VkImagePlaneMemoryRequirementsInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImagePlaneMemoryRequirementsInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5920,7 +5920,7 @@
 }
 
 void unmarshal_VkImagePlaneMemoryRequirementsInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImagePlaneMemoryRequirementsInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5937,7 +5937,7 @@
 }
 
 void marshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceSamplerYcbcrConversionFeatures* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5952,7 +5952,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceSamplerYcbcrConversionFeatures* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -5969,7 +5969,7 @@
 }
 
 void marshal_VkSamplerYcbcrConversionImageFormatProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSamplerYcbcrConversionImageFormatProperties* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -5984,7 +5984,7 @@
 }
 
 void unmarshal_VkSamplerYcbcrConversionImageFormatProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSamplerYcbcrConversionImageFormatProperties* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6001,7 +6001,7 @@
 }
 
 void marshal_VkDescriptorUpdateTemplateEntry(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorUpdateTemplateEntry* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
@@ -6015,7 +6015,7 @@
 }
 
 void unmarshal_VkDescriptorUpdateTemplateEntry(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorUpdateTemplateEntry* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->dstBinding, sizeof(uint32_t));
@@ -6027,7 +6027,7 @@
 }
 
 void marshal_VkDescriptorUpdateTemplateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorUpdateTemplateCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6056,7 +6056,7 @@
 }
 
 void unmarshal_VkDescriptorUpdateTemplateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorUpdateTemplateCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6088,7 +6088,7 @@
 }
 
 void marshal_VkExternalMemoryProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExternalMemoryProperties* forMarshaling)
 {
     vkStream->write((VkExternalMemoryFeatureFlags*)&forMarshaling->externalMemoryFeatures, sizeof(VkExternalMemoryFeatureFlags));
@@ -6097,7 +6097,7 @@
 }
 
 void unmarshal_VkExternalMemoryProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExternalMemoryProperties* forUnmarshaling)
 {
     vkStream->read((VkExternalMemoryFeatureFlags*)&forUnmarshaling->externalMemoryFeatures, sizeof(VkExternalMemoryFeatureFlags));
@@ -6106,7 +6106,7 @@
 }
 
 void marshal_VkPhysicalDeviceExternalImageFormatInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceExternalImageFormatInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6121,7 +6121,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceExternalImageFormatInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceExternalImageFormatInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6138,7 +6138,7 @@
 }
 
 void marshal_VkExternalImageFormatProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExternalImageFormatProperties* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6153,7 +6153,7 @@
 }
 
 void unmarshal_VkExternalImageFormatProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExternalImageFormatProperties* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6170,7 +6170,7 @@
 }
 
 void marshal_VkPhysicalDeviceExternalBufferInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceExternalBufferInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6187,7 +6187,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceExternalBufferInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceExternalBufferInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6206,7 +6206,7 @@
 }
 
 void marshal_VkExternalBufferProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExternalBufferProperties* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6221,7 +6221,7 @@
 }
 
 void unmarshal_VkExternalBufferProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExternalBufferProperties* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6238,7 +6238,7 @@
 }
 
 void marshal_VkPhysicalDeviceIDProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceIDProperties* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6257,7 +6257,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceIDProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceIDProperties* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6278,7 +6278,7 @@
 }
 
 void marshal_VkExternalMemoryImageCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExternalMemoryImageCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6293,7 +6293,7 @@
 }
 
 void unmarshal_VkExternalMemoryImageCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExternalMemoryImageCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6310,7 +6310,7 @@
 }
 
 void marshal_VkExternalMemoryBufferCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExternalMemoryBufferCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6325,7 +6325,7 @@
 }
 
 void unmarshal_VkExternalMemoryBufferCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExternalMemoryBufferCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6342,7 +6342,7 @@
 }
 
 void marshal_VkExportMemoryAllocateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExportMemoryAllocateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6357,7 +6357,7 @@
 }
 
 void unmarshal_VkExportMemoryAllocateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExportMemoryAllocateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6374,7 +6374,7 @@
 }
 
 void marshal_VkPhysicalDeviceExternalFenceInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceExternalFenceInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6389,7 +6389,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceExternalFenceInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceExternalFenceInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6406,7 +6406,7 @@
 }
 
 void marshal_VkExternalFenceProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExternalFenceProperties* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6423,7 +6423,7 @@
 }
 
 void unmarshal_VkExternalFenceProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExternalFenceProperties* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6442,7 +6442,7 @@
 }
 
 void marshal_VkExportFenceCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExportFenceCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6457,7 +6457,7 @@
 }
 
 void unmarshal_VkExportFenceCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExportFenceCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6474,7 +6474,7 @@
 }
 
 void marshal_VkExportSemaphoreCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExportSemaphoreCreateInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6489,7 +6489,7 @@
 }
 
 void unmarshal_VkExportSemaphoreCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExportSemaphoreCreateInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6506,7 +6506,7 @@
 }
 
 void marshal_VkPhysicalDeviceExternalSemaphoreInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceExternalSemaphoreInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6521,7 +6521,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceExternalSemaphoreInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceExternalSemaphoreInfo* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6538,7 +6538,7 @@
 }
 
 void marshal_VkExternalSemaphoreProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExternalSemaphoreProperties* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6555,7 +6555,7 @@
 }
 
 void unmarshal_VkExternalSemaphoreProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExternalSemaphoreProperties* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6574,7 +6574,7 @@
 }
 
 void marshal_VkPhysicalDeviceMaintenance3Properties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceMaintenance3Properties* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6590,7 +6590,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceMaintenance3Properties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceMaintenance3Properties* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6608,7 +6608,7 @@
 }
 
 void marshal_VkDescriptorSetLayoutSupport(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorSetLayoutSupport* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6623,7 +6623,7 @@
 }
 
 void unmarshal_VkDescriptorSetLayoutSupport(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorSetLayoutSupport* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6640,7 +6640,7 @@
 }
 
 void marshal_VkPhysicalDeviceShaderDrawParameterFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceShaderDrawParameterFeatures* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6655,7 +6655,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceShaderDrawParameterFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceShaderDrawParameterFeatures* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6674,7 +6674,7 @@
 #endif
 #ifdef VK_KHR_surface
 void marshal_VkSurfaceCapabilitiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSurfaceCapabilitiesKHR* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->minImageCount, sizeof(uint32_t));
@@ -6690,7 +6690,7 @@
 }
 
 void unmarshal_VkSurfaceCapabilitiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSurfaceCapabilitiesKHR* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->minImageCount, sizeof(uint32_t));
@@ -6706,7 +6706,7 @@
 }
 
 void marshal_VkSurfaceFormatKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSurfaceFormatKHR* forMarshaling)
 {
     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
@@ -6714,7 +6714,7 @@
 }
 
 void unmarshal_VkSurfaceFormatKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSurfaceFormatKHR* forUnmarshaling)
 {
     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
@@ -6724,7 +6724,7 @@
 #endif
 #ifdef VK_KHR_swapchain
 void marshal_VkSwapchainCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSwapchainCreateInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6764,7 +6764,7 @@
 }
 
 void unmarshal_VkSwapchainCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSwapchainCreateInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6806,7 +6806,7 @@
 }
 
 void marshal_VkPresentInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPresentInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6844,7 +6844,7 @@
 }
 
 void unmarshal_VkPresentInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPresentInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6887,7 +6887,7 @@
 }
 
 void marshal_VkImageSwapchainCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageSwapchainCreateInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6904,7 +6904,7 @@
 }
 
 void unmarshal_VkImageSwapchainCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageSwapchainCreateInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6923,7 +6923,7 @@
 }
 
 void marshal_VkBindImageMemorySwapchainInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBindImageMemorySwapchainInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6941,7 +6941,7 @@
 }
 
 void unmarshal_VkBindImageMemorySwapchainInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBindImageMemorySwapchainInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -6961,7 +6961,7 @@
 }
 
 void marshal_VkAcquireNextImageInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAcquireNextImageInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -6986,7 +6986,7 @@
 }
 
 void unmarshal_VkAcquireNextImageInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAcquireNextImageInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -7013,7 +7013,7 @@
 }
 
 void marshal_VkDeviceGroupPresentCapabilitiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceGroupPresentCapabilitiesKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -7029,7 +7029,7 @@
 }
 
 void unmarshal_VkDeviceGroupPresentCapabilitiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceGroupPresentCapabilitiesKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -7047,7 +7047,7 @@
 }
 
 void marshal_VkDeviceGroupPresentInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceGroupPresentInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -7064,7 +7064,7 @@
 }
 
 void unmarshal_VkDeviceGroupPresentInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceGroupPresentInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -7084,7 +7084,7 @@
 }
 
 void marshal_VkDeviceGroupSwapchainCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceGroupSwapchainCreateInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -7099,7 +7099,7 @@
 }
 
 void unmarshal_VkDeviceGroupSwapchainCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceGroupSwapchainCreateInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -7118,7 +7118,7 @@
 #endif
 #ifdef VK_KHR_display
 void marshal_VkDisplayPropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayPropertiesKHR* forMarshaling)
 {
     uint64_t cgen_var_196;
@@ -7133,7 +7133,7 @@
 }
 
 void unmarshal_VkDisplayPropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayPropertiesKHR* forUnmarshaling)
 {
     uint64_t cgen_var_197;
@@ -7148,7 +7148,7 @@
 }
 
 void marshal_VkDisplayModeParametersKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayModeParametersKHR* forMarshaling)
 {
     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->visibleRegion));
@@ -7156,7 +7156,7 @@
 }
 
 void unmarshal_VkDisplayModeParametersKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayModeParametersKHR* forUnmarshaling)
 {
     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->visibleRegion));
@@ -7164,7 +7164,7 @@
 }
 
 void marshal_VkDisplayModePropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayModePropertiesKHR* forMarshaling)
 {
     uint64_t cgen_var_198;
@@ -7174,7 +7174,7 @@
 }
 
 void unmarshal_VkDisplayModePropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayModePropertiesKHR* forUnmarshaling)
 {
     uint64_t cgen_var_199;
@@ -7184,7 +7184,7 @@
 }
 
 void marshal_VkDisplayModeCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayModeCreateInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -7200,7 +7200,7 @@
 }
 
 void unmarshal_VkDisplayModeCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayModeCreateInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -7218,7 +7218,7 @@
 }
 
 void marshal_VkDisplayPlaneCapabilitiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayPlaneCapabilitiesKHR* forMarshaling)
 {
     vkStream->write((VkDisplayPlaneAlphaFlagsKHR*)&forMarshaling->supportedAlpha, sizeof(VkDisplayPlaneAlphaFlagsKHR));
@@ -7233,7 +7233,7 @@
 }
 
 void unmarshal_VkDisplayPlaneCapabilitiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayPlaneCapabilitiesKHR* forUnmarshaling)
 {
     vkStream->read((VkDisplayPlaneAlphaFlagsKHR*)&forUnmarshaling->supportedAlpha, sizeof(VkDisplayPlaneAlphaFlagsKHR));
@@ -7248,7 +7248,7 @@
 }
 
 void marshal_VkDisplayPlanePropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayPlanePropertiesKHR* forMarshaling)
 {
     uint64_t cgen_var_200;
@@ -7258,7 +7258,7 @@
 }
 
 void unmarshal_VkDisplayPlanePropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayPlanePropertiesKHR* forUnmarshaling)
 {
     uint64_t cgen_var_201;
@@ -7268,7 +7268,7 @@
 }
 
 void marshal_VkDisplaySurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplaySurfaceCreateInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -7292,7 +7292,7 @@
 }
 
 void unmarshal_VkDisplaySurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplaySurfaceCreateInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -7320,7 +7320,7 @@
 #endif
 #ifdef VK_KHR_display_swapchain
 void marshal_VkDisplayPresentInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayPresentInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -7337,7 +7337,7 @@
 }
 
 void unmarshal_VkDisplayPresentInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayPresentInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -7358,7 +7358,7 @@
 #endif
 #ifdef VK_KHR_xlib_surface
 void marshal_VkXlibSurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkXlibSurfaceCreateInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -7381,7 +7381,7 @@
 }
 
 void unmarshal_VkXlibSurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkXlibSurfaceCreateInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -7408,7 +7408,7 @@
 #endif
 #ifdef VK_KHR_xcb_surface
 void marshal_VkXcbSurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkXcbSurfaceCreateInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -7431,7 +7431,7 @@
 }
 
 void unmarshal_VkXcbSurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkXcbSurfaceCreateInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -7458,7 +7458,7 @@
 #endif
 #ifdef VK_KHR_wayland_surface
 void marshal_VkWaylandSurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkWaylandSurfaceCreateInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -7487,7 +7487,7 @@
 }
 
 void unmarshal_VkWaylandSurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkWaylandSurfaceCreateInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -7520,7 +7520,7 @@
 #endif
 #ifdef VK_KHR_mir_surface
 void marshal_VkMirSurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMirSurfaceCreateInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -7549,7 +7549,7 @@
 }
 
 void unmarshal_VkMirSurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMirSurfaceCreateInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -7582,7 +7582,7 @@
 #endif
 #ifdef VK_KHR_android_surface
 void marshal_VkAndroidSurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAndroidSurfaceCreateInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -7604,7 +7604,7 @@
 }
 
 void unmarshal_VkAndroidSurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAndroidSurfaceCreateInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -7630,7 +7630,7 @@
 #endif
 #ifdef VK_KHR_win32_surface
 void marshal_VkWin32SurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkWin32SurfaceCreateInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -7647,7 +7647,7 @@
 }
 
 void unmarshal_VkWin32SurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkWin32SurfaceCreateInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -7686,7 +7686,7 @@
 #endif
 #ifdef VK_KHR_external_memory_win32
 void marshal_VkImportMemoryWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportMemoryWin32HandleInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -7703,7 +7703,7 @@
 }
 
 void unmarshal_VkImportMemoryWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportMemoryWin32HandleInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -7722,7 +7722,7 @@
 }
 
 void marshal_VkExportMemoryWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExportMemoryWin32HandleInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -7745,7 +7745,7 @@
 }
 
 void unmarshal_VkExportMemoryWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExportMemoryWin32HandleInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -7770,7 +7770,7 @@
 }
 
 void marshal_VkMemoryWin32HandlePropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryWin32HandlePropertiesKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -7785,7 +7785,7 @@
 }
 
 void unmarshal_VkMemoryWin32HandlePropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryWin32HandlePropertiesKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -7802,7 +7802,7 @@
 }
 
 void marshal_VkMemoryGetWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryGetWin32HandleInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -7820,7 +7820,7 @@
 }
 
 void unmarshal_VkMemoryGetWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryGetWin32HandleInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -7842,7 +7842,7 @@
 #endif
 #ifdef VK_KHR_external_memory_fd
 void marshal_VkImportMemoryFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportMemoryFdInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -7858,7 +7858,7 @@
 }
 
 void unmarshal_VkImportMemoryFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportMemoryFdInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -7876,7 +7876,7 @@
 }
 
 void marshal_VkMemoryFdPropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryFdPropertiesKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -7891,7 +7891,7 @@
 }
 
 void unmarshal_VkMemoryFdPropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryFdPropertiesKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -7908,7 +7908,7 @@
 }
 
 void marshal_VkMemoryGetFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryGetFdInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -7926,7 +7926,7 @@
 }
 
 void unmarshal_VkMemoryGetFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryGetFdInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -7948,7 +7948,7 @@
 #endif
 #ifdef VK_KHR_win32_keyed_mutex
 void marshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkWin32KeyedMutexAcquireReleaseInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -7981,7 +7981,7 @@
 }
 
 void unmarshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkWin32KeyedMutexAcquireReleaseInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -8027,7 +8027,7 @@
 #endif
 #ifdef VK_KHR_external_semaphore_win32
 void marshal_VkImportSemaphoreWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportSemaphoreWin32HandleInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -8048,7 +8048,7 @@
 }
 
 void unmarshal_VkImportSemaphoreWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportSemaphoreWin32HandleInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -8071,7 +8071,7 @@
 }
 
 void marshal_VkExportSemaphoreWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExportSemaphoreWin32HandleInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -8094,7 +8094,7 @@
 }
 
 void unmarshal_VkExportSemaphoreWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExportSemaphoreWin32HandleInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -8119,7 +8119,7 @@
 }
 
 void marshal_VkD3D12FenceSubmitInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkD3D12FenceSubmitInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -8149,7 +8149,7 @@
 }
 
 void unmarshal_VkD3D12FenceSubmitInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkD3D12FenceSubmitInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -8181,7 +8181,7 @@
 }
 
 void marshal_VkSemaphoreGetWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSemaphoreGetWin32HandleInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -8199,7 +8199,7 @@
 }
 
 void unmarshal_VkSemaphoreGetWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSemaphoreGetWin32HandleInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -8221,7 +8221,7 @@
 #endif
 #ifdef VK_KHR_external_semaphore_fd
 void marshal_VkImportSemaphoreFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportSemaphoreFdInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -8241,7 +8241,7 @@
 }
 
 void unmarshal_VkImportSemaphoreFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportSemaphoreFdInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -8263,7 +8263,7 @@
 }
 
 void marshal_VkSemaphoreGetFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSemaphoreGetFdInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -8281,7 +8281,7 @@
 }
 
 void unmarshal_VkSemaphoreGetFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSemaphoreGetFdInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -8303,7 +8303,7 @@
 #endif
 #ifdef VK_KHR_push_descriptor
 void marshal_VkPhysicalDevicePushDescriptorPropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDevicePushDescriptorPropertiesKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -8318,7 +8318,7 @@
 }
 
 void unmarshal_VkPhysicalDevicePushDescriptorPropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDevicePushDescriptorPropertiesKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -8339,7 +8339,7 @@
 #endif
 #ifdef VK_KHR_incremental_present
 void marshal_VkRectLayerKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkRectLayerKHR* forMarshaling)
 {
     marshal_VkOffset2D(vkStream, (VkOffset2D*)(&forMarshaling->offset));
@@ -8348,7 +8348,7 @@
 }
 
 void unmarshal_VkRectLayerKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkRectLayerKHR* forUnmarshaling)
 {
     unmarshal_VkOffset2D(vkStream, (VkOffset2D*)(&forUnmarshaling->offset));
@@ -8357,7 +8357,7 @@
 }
 
 void marshal_VkPresentRegionKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPresentRegionKHR* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->rectangleCount, sizeof(uint32_t));
@@ -8374,7 +8374,7 @@
 }
 
 void unmarshal_VkPresentRegionKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPresentRegionKHR* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->rectangleCount, sizeof(uint32_t));
@@ -8391,7 +8391,7 @@
 }
 
 void marshal_VkPresentRegionsKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPresentRegionsKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -8416,7 +8416,7 @@
 }
 
 void unmarshal_VkPresentRegionsKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPresentRegionsKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -8447,7 +8447,7 @@
 #endif
 #ifdef VK_KHR_create_renderpass2
 void marshal_VkAttachmentDescription2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAttachmentDescription2KHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -8470,7 +8470,7 @@
 }
 
 void unmarshal_VkAttachmentDescription2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAttachmentDescription2KHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -8495,7 +8495,7 @@
 }
 
 void marshal_VkAttachmentReference2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAttachmentReference2KHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -8512,7 +8512,7 @@
 }
 
 void unmarshal_VkAttachmentReference2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAttachmentReference2KHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -8531,7 +8531,7 @@
 }
 
 void marshal_VkSubpassDescription2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSubpassDescription2KHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -8577,7 +8577,7 @@
 }
 
 void unmarshal_VkSubpassDescription2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSubpassDescription2KHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -8628,7 +8628,7 @@
 }
 
 void marshal_VkSubpassDependency2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSubpassDependency2KHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -8650,7 +8650,7 @@
 }
 
 void unmarshal_VkSubpassDependency2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSubpassDependency2KHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -8674,7 +8674,7 @@
 }
 
 void marshal_VkRenderPassCreateInfo2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkRenderPassCreateInfo2KHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -8706,7 +8706,7 @@
 }
 
 void unmarshal_VkRenderPassCreateInfo2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkRenderPassCreateInfo2KHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -8744,7 +8744,7 @@
 }
 
 void marshal_VkSubpassBeginInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSubpassBeginInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -8759,7 +8759,7 @@
 }
 
 void unmarshal_VkSubpassBeginInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSubpassBeginInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -8776,7 +8776,7 @@
 }
 
 void marshal_VkSubpassEndInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSubpassEndInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -8790,7 +8790,7 @@
 }
 
 void unmarshal_VkSubpassEndInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSubpassEndInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -8808,7 +8808,7 @@
 #endif
 #ifdef VK_KHR_shared_presentable_image
 void marshal_VkSharedPresentSurfaceCapabilitiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSharedPresentSurfaceCapabilitiesKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -8823,7 +8823,7 @@
 }
 
 void unmarshal_VkSharedPresentSurfaceCapabilitiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSharedPresentSurfaceCapabilitiesKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -8846,7 +8846,7 @@
 #endif
 #ifdef VK_KHR_external_fence_win32
 void marshal_VkImportFenceWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportFenceWin32HandleInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -8867,7 +8867,7 @@
 }
 
 void unmarshal_VkImportFenceWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportFenceWin32HandleInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -8890,7 +8890,7 @@
 }
 
 void marshal_VkExportFenceWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExportFenceWin32HandleInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -8913,7 +8913,7 @@
 }
 
 void unmarshal_VkExportFenceWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExportFenceWin32HandleInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -8938,7 +8938,7 @@
 }
 
 void marshal_VkFenceGetWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkFenceGetWin32HandleInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -8956,7 +8956,7 @@
 }
 
 void unmarshal_VkFenceGetWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkFenceGetWin32HandleInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -8978,7 +8978,7 @@
 #endif
 #ifdef VK_KHR_external_fence_fd
 void marshal_VkImportFenceFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportFenceFdInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -8998,7 +8998,7 @@
 }
 
 void unmarshal_VkImportFenceFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportFenceFdInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9020,7 +9020,7 @@
 }
 
 void marshal_VkFenceGetFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkFenceGetFdInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9038,7 +9038,7 @@
 }
 
 void unmarshal_VkFenceGetFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkFenceGetFdInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9062,7 +9062,7 @@
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
 void marshal_VkPhysicalDeviceSurfaceInfo2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceSurfaceInfo2KHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9079,7 +9079,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceSurfaceInfo2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceSurfaceInfo2KHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9098,7 +9098,7 @@
 }
 
 void marshal_VkSurfaceCapabilities2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSurfaceCapabilities2KHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9113,7 +9113,7 @@
 }
 
 void unmarshal_VkSurfaceCapabilities2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSurfaceCapabilities2KHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9130,7 +9130,7 @@
 }
 
 void marshal_VkSurfaceFormat2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSurfaceFormat2KHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9145,7 +9145,7 @@
 }
 
 void unmarshal_VkSurfaceFormat2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSurfaceFormat2KHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9166,7 +9166,7 @@
 #endif
 #ifdef VK_KHR_get_display_properties2
 void marshal_VkDisplayProperties2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayProperties2KHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9181,7 +9181,7 @@
 }
 
 void unmarshal_VkDisplayProperties2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayProperties2KHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9198,7 +9198,7 @@
 }
 
 void marshal_VkDisplayPlaneProperties2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayPlaneProperties2KHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9213,7 +9213,7 @@
 }
 
 void unmarshal_VkDisplayPlaneProperties2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayPlaneProperties2KHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9230,7 +9230,7 @@
 }
 
 void marshal_VkDisplayModeProperties2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayModeProperties2KHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9245,7 +9245,7 @@
 }
 
 void unmarshal_VkDisplayModeProperties2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayModeProperties2KHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9262,7 +9262,7 @@
 }
 
 void marshal_VkDisplayPlaneInfo2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayPlaneInfo2KHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9280,7 +9280,7 @@
 }
 
 void unmarshal_VkDisplayPlaneInfo2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayPlaneInfo2KHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9300,7 +9300,7 @@
 }
 
 void marshal_VkDisplayPlaneCapabilities2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayPlaneCapabilities2KHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9315,7 +9315,7 @@
 }
 
 void unmarshal_VkDisplayPlaneCapabilities2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayPlaneCapabilities2KHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9342,7 +9342,7 @@
 #endif
 #ifdef VK_KHR_image_format_list
 void marshal_VkImageFormatListCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageFormatListCreateInfoKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9358,7 +9358,7 @@
 }
 
 void unmarshal_VkImageFormatListCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageFormatListCreateInfoKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9387,7 +9387,7 @@
 #endif
 #ifdef VK_KHR_8bit_storage
 void marshal_VkPhysicalDevice8BitStorageFeaturesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDevice8BitStorageFeaturesKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9404,7 +9404,7 @@
 }
 
 void unmarshal_VkPhysicalDevice8BitStorageFeaturesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDevice8BitStorageFeaturesKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9425,7 +9425,7 @@
 #endif
 #ifdef VK_ANDROID_native_buffer
 void marshal_VkNativeBufferANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkNativeBufferANDROID* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9451,7 +9451,7 @@
 }
 
 void unmarshal_VkNativeBufferANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkNativeBufferANDROID* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9481,7 +9481,7 @@
 #endif
 #ifdef VK_EXT_debug_report
 void marshal_VkDebugReportCallbackCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDebugReportCallbackCreateInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9505,7 +9505,7 @@
 }
 
 void unmarshal_VkDebugReportCallbackCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDebugReportCallbackCreateInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9538,7 +9538,7 @@
 #endif
 #ifdef VK_AMD_rasterization_order
 void marshal_VkPipelineRasterizationStateRasterizationOrderAMD(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineRasterizationStateRasterizationOrderAMD* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9553,7 +9553,7 @@
 }
 
 void unmarshal_VkPipelineRasterizationStateRasterizationOrderAMD(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineRasterizationStateRasterizationOrderAMD* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9576,7 +9576,7 @@
 #endif
 #ifdef VK_EXT_debug_marker
 void marshal_VkDebugMarkerObjectNameInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDebugMarkerObjectNameInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9593,7 +9593,7 @@
 }
 
 void unmarshal_VkDebugMarkerObjectNameInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDebugMarkerObjectNameInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9612,7 +9612,7 @@
 }
 
 void marshal_VkDebugMarkerObjectTagInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDebugMarkerObjectTagInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9632,7 +9632,7 @@
 }
 
 void unmarshal_VkDebugMarkerObjectTagInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDebugMarkerObjectTagInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9654,7 +9654,7 @@
 }
 
 void marshal_VkDebugMarkerMarkerInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDebugMarkerMarkerInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9670,7 +9670,7 @@
 }
 
 void unmarshal_VkDebugMarkerMarkerInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDebugMarkerMarkerInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9692,7 +9692,7 @@
 #endif
 #ifdef VK_NV_dedicated_allocation
 void marshal_VkDedicatedAllocationImageCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDedicatedAllocationImageCreateInfoNV* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9707,7 +9707,7 @@
 }
 
 void unmarshal_VkDedicatedAllocationImageCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDedicatedAllocationImageCreateInfoNV* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9724,7 +9724,7 @@
 }
 
 void marshal_VkDedicatedAllocationBufferCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDedicatedAllocationBufferCreateInfoNV* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9739,7 +9739,7 @@
 }
 
 void unmarshal_VkDedicatedAllocationBufferCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDedicatedAllocationBufferCreateInfoNV* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9756,7 +9756,7 @@
 }
 
 void marshal_VkDedicatedAllocationMemoryAllocateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDedicatedAllocationMemoryAllocateInfoNV* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9776,7 +9776,7 @@
 }
 
 void unmarshal_VkDedicatedAllocationMemoryAllocateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDedicatedAllocationMemoryAllocateInfoNV* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9808,7 +9808,7 @@
 #endif
 #ifdef VK_AMD_texture_gather_bias_lod
 void marshal_VkTextureLODGatherFormatPropertiesAMD(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkTextureLODGatherFormatPropertiesAMD* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9823,7 +9823,7 @@
 }
 
 void unmarshal_VkTextureLODGatherFormatPropertiesAMD(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkTextureLODGatherFormatPropertiesAMD* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9842,7 +9842,7 @@
 #endif
 #ifdef VK_AMD_shader_info
 void marshal_VkShaderResourceUsageAMD(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkShaderResourceUsageAMD* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->numUsedVgprs, sizeof(uint32_t));
@@ -9855,7 +9855,7 @@
 }
 
 void unmarshal_VkShaderResourceUsageAMD(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkShaderResourceUsageAMD* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->numUsedVgprs, sizeof(uint32_t));
@@ -9866,7 +9866,7 @@
 }
 
 void marshal_VkShaderStatisticsInfoAMD(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkShaderStatisticsInfoAMD* forMarshaling)
 {
     vkStream->write((VkShaderStageFlags*)&forMarshaling->shaderStageMask, sizeof(VkShaderStageFlags));
@@ -9879,7 +9879,7 @@
 }
 
 void unmarshal_VkShaderStatisticsInfoAMD(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkShaderStatisticsInfoAMD* forUnmarshaling)
 {
     vkStream->read((VkShaderStageFlags*)&forUnmarshaling->shaderStageMask, sizeof(VkShaderStageFlags));
@@ -9898,7 +9898,7 @@
 #endif
 #ifdef VK_NV_external_memory_capabilities
 void marshal_VkExternalImageFormatPropertiesNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExternalImageFormatPropertiesNV* forMarshaling)
 {
     marshal_VkImageFormatProperties(vkStream, (VkImageFormatProperties*)(&forMarshaling->imageFormatProperties));
@@ -9908,7 +9908,7 @@
 }
 
 void unmarshal_VkExternalImageFormatPropertiesNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExternalImageFormatPropertiesNV* forUnmarshaling)
 {
     unmarshal_VkImageFormatProperties(vkStream, (VkImageFormatProperties*)(&forUnmarshaling->imageFormatProperties));
@@ -9920,7 +9920,7 @@
 #endif
 #ifdef VK_NV_external_memory
 void marshal_VkExternalMemoryImageCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExternalMemoryImageCreateInfoNV* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9935,7 +9935,7 @@
 }
 
 void unmarshal_VkExternalMemoryImageCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExternalMemoryImageCreateInfoNV* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9952,7 +9952,7 @@
 }
 
 void marshal_VkExportMemoryAllocateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExportMemoryAllocateInfoNV* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -9967,7 +9967,7 @@
 }
 
 void unmarshal_VkExportMemoryAllocateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExportMemoryAllocateInfoNV* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -9986,7 +9986,7 @@
 #endif
 #ifdef VK_NV_external_memory_win32
 void marshal_VkImportMemoryWin32HandleInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportMemoryWin32HandleInfoNV* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -10002,7 +10002,7 @@
 }
 
 void unmarshal_VkImportMemoryWin32HandleInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportMemoryWin32HandleInfoNV* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -10020,7 +10020,7 @@
 }
 
 void marshal_VkExportMemoryWin32HandleInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExportMemoryWin32HandleInfoNV* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -10042,7 +10042,7 @@
 }
 
 void unmarshal_VkExportMemoryWin32HandleInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExportMemoryWin32HandleInfoNV* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -10068,7 +10068,7 @@
 #endif
 #ifdef VK_NV_win32_keyed_mutex
 void marshal_VkWin32KeyedMutexAcquireReleaseInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkWin32KeyedMutexAcquireReleaseInfoNV* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -10101,7 +10101,7 @@
 }
 
 void unmarshal_VkWin32KeyedMutexAcquireReleaseInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkWin32KeyedMutexAcquireReleaseInfoNV* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -10143,7 +10143,7 @@
 #endif
 #ifdef VK_EXT_validation_flags
 void marshal_VkValidationFlagsEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkValidationFlagsEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -10159,7 +10159,7 @@
 }
 
 void unmarshal_VkValidationFlagsEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkValidationFlagsEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -10180,7 +10180,7 @@
 #endif
 #ifdef VK_NN_vi_surface
 void marshal_VkViSurfaceCreateInfoNN(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkViSurfaceCreateInfoNN* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -10202,7 +10202,7 @@
 }
 
 void unmarshal_VkViSurfaceCreateInfoNN(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkViSurfaceCreateInfoNN* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -10232,7 +10232,7 @@
 #endif
 #ifdef VK_EXT_conditional_rendering
 void marshal_VkConditionalRenderingBeginInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkConditionalRenderingBeginInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -10251,7 +10251,7 @@
 }
 
 void unmarshal_VkConditionalRenderingBeginInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkConditionalRenderingBeginInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -10272,7 +10272,7 @@
 }
 
 void marshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceConditionalRenderingFeaturesEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -10288,7 +10288,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceConditionalRenderingFeaturesEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -10306,7 +10306,7 @@
 }
 
 void marshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkCommandBufferInheritanceConditionalRenderingInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -10321,7 +10321,7 @@
 }
 
 void unmarshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkCommandBufferInheritanceConditionalRenderingInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -10340,7 +10340,7 @@
 #endif
 #ifdef VK_NVX_device_generated_commands
 void marshal_VkDeviceGeneratedCommandsFeaturesNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceGeneratedCommandsFeaturesNVX* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -10355,7 +10355,7 @@
 }
 
 void unmarshal_VkDeviceGeneratedCommandsFeaturesNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceGeneratedCommandsFeaturesNVX* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -10372,7 +10372,7 @@
 }
 
 void marshal_VkDeviceGeneratedCommandsLimitsNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceGeneratedCommandsLimitsNVX* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -10391,7 +10391,7 @@
 }
 
 void unmarshal_VkDeviceGeneratedCommandsLimitsNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceGeneratedCommandsLimitsNVX* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -10412,7 +10412,7 @@
 }
 
 void marshal_VkIndirectCommandsTokenNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkIndirectCommandsTokenNVX* forMarshaling)
 {
     vkStream->write((VkIndirectCommandsTokenTypeNVX*)&forMarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNVX));
@@ -10423,7 +10423,7 @@
 }
 
 void unmarshal_VkIndirectCommandsTokenNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkIndirectCommandsTokenNVX* forUnmarshaling)
 {
     vkStream->read((VkIndirectCommandsTokenTypeNVX*)&forUnmarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNVX));
@@ -10434,7 +10434,7 @@
 }
 
 void marshal_VkIndirectCommandsLayoutTokenNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkIndirectCommandsLayoutTokenNVX* forMarshaling)
 {
     vkStream->write((VkIndirectCommandsTokenTypeNVX*)&forMarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNVX));
@@ -10444,7 +10444,7 @@
 }
 
 void unmarshal_VkIndirectCommandsLayoutTokenNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkIndirectCommandsLayoutTokenNVX* forUnmarshaling)
 {
     vkStream->read((VkIndirectCommandsTokenTypeNVX*)&forUnmarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNVX));
@@ -10454,7 +10454,7 @@
 }
 
 void marshal_VkIndirectCommandsLayoutCreateInfoNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkIndirectCommandsLayoutCreateInfoNVX* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -10475,7 +10475,7 @@
 }
 
 void unmarshal_VkIndirectCommandsLayoutCreateInfoNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkIndirectCommandsLayoutCreateInfoNVX* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -10499,7 +10499,7 @@
 }
 
 void marshal_VkCmdProcessCommandsInfoNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkCmdProcessCommandsInfoNVX* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -10536,7 +10536,7 @@
 }
 
 void unmarshal_VkCmdProcessCommandsInfoNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkCmdProcessCommandsInfoNVX* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -10576,7 +10576,7 @@
 }
 
 void marshal_VkCmdReserveSpaceForCommandsInfoNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkCmdReserveSpaceForCommandsInfoNVX* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -10597,7 +10597,7 @@
 }
 
 void unmarshal_VkCmdReserveSpaceForCommandsInfoNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkCmdReserveSpaceForCommandsInfoNVX* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -10620,7 +10620,7 @@
 }
 
 void marshal_VkObjectTableCreateInfoNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkObjectTableCreateInfoNVX* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -10643,7 +10643,7 @@
 }
 
 void unmarshal_VkObjectTableCreateInfoNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkObjectTableCreateInfoNVX* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -10671,7 +10671,7 @@
 }
 
 void marshal_VkObjectTableEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkObjectTableEntryNVX* forMarshaling)
 {
     vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
@@ -10679,7 +10679,7 @@
 }
 
 void unmarshal_VkObjectTableEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkObjectTableEntryNVX* forUnmarshaling)
 {
     vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
@@ -10687,7 +10687,7 @@
 }
 
 void marshal_VkObjectTablePipelineEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkObjectTablePipelineEntryNVX* forMarshaling)
 {
     vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
@@ -10698,7 +10698,7 @@
 }
 
 void unmarshal_VkObjectTablePipelineEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkObjectTablePipelineEntryNVX* forUnmarshaling)
 {
     vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
@@ -10709,7 +10709,7 @@
 }
 
 void marshal_VkObjectTableDescriptorSetEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkObjectTableDescriptorSetEntryNVX* forMarshaling)
 {
     vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
@@ -10723,7 +10723,7 @@
 }
 
 void unmarshal_VkObjectTableDescriptorSetEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkObjectTableDescriptorSetEntryNVX* forUnmarshaling)
 {
     vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
@@ -10737,7 +10737,7 @@
 }
 
 void marshal_VkObjectTableVertexBufferEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkObjectTableVertexBufferEntryNVX* forMarshaling)
 {
     vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
@@ -10748,7 +10748,7 @@
 }
 
 void unmarshal_VkObjectTableVertexBufferEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkObjectTableVertexBufferEntryNVX* forUnmarshaling)
 {
     vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
@@ -10759,7 +10759,7 @@
 }
 
 void marshal_VkObjectTableIndexBufferEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkObjectTableIndexBufferEntryNVX* forMarshaling)
 {
     vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
@@ -10771,7 +10771,7 @@
 }
 
 void unmarshal_VkObjectTableIndexBufferEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkObjectTableIndexBufferEntryNVX* forUnmarshaling)
 {
     vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
@@ -10783,7 +10783,7 @@
 }
 
 void marshal_VkObjectTablePushConstantEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkObjectTablePushConstantEntryNVX* forMarshaling)
 {
     vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
@@ -10795,7 +10795,7 @@
 }
 
 void unmarshal_VkObjectTablePushConstantEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkObjectTablePushConstantEntryNVX* forUnmarshaling)
 {
     vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
@@ -10809,7 +10809,7 @@
 #endif
 #ifdef VK_NV_clip_space_w_scaling
 void marshal_VkViewportWScalingNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkViewportWScalingNV* forMarshaling)
 {
     vkStream->write((float*)&forMarshaling->xcoeff, sizeof(float));
@@ -10817,7 +10817,7 @@
 }
 
 void unmarshal_VkViewportWScalingNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkViewportWScalingNV* forUnmarshaling)
 {
     vkStream->read((float*)&forUnmarshaling->xcoeff, sizeof(float));
@@ -10825,7 +10825,7 @@
 }
 
 void marshal_VkPipelineViewportWScalingStateCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineViewportWScalingStateCreateInfoNV* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -10851,7 +10851,7 @@
 }
 
 void unmarshal_VkPipelineViewportWScalingStateCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineViewportWScalingStateCreateInfoNV* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -10885,7 +10885,7 @@
 #endif
 #ifdef VK_EXT_display_surface_counter
 void marshal_VkSurfaceCapabilities2EXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSurfaceCapabilities2EXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -10910,7 +10910,7 @@
 }
 
 void unmarshal_VkSurfaceCapabilities2EXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSurfaceCapabilities2EXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -10939,7 +10939,7 @@
 #endif
 #ifdef VK_EXT_display_control
 void marshal_VkDisplayPowerInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayPowerInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -10954,7 +10954,7 @@
 }
 
 void unmarshal_VkDisplayPowerInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayPowerInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -10971,7 +10971,7 @@
 }
 
 void marshal_VkDeviceEventInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceEventInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -10986,7 +10986,7 @@
 }
 
 void unmarshal_VkDeviceEventInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceEventInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -11003,7 +11003,7 @@
 }
 
 void marshal_VkDisplayEventInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayEventInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -11018,7 +11018,7 @@
 }
 
 void unmarshal_VkDisplayEventInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayEventInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -11035,7 +11035,7 @@
 }
 
 void marshal_VkSwapchainCounterCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSwapchainCounterCreateInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -11050,7 +11050,7 @@
 }
 
 void unmarshal_VkSwapchainCounterCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSwapchainCounterCreateInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -11069,21 +11069,21 @@
 #endif
 #ifdef VK_GOOGLE_display_timing
 void marshal_VkRefreshCycleDurationGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkRefreshCycleDurationGOOGLE* forMarshaling)
 {
     vkStream->write((uint64_t*)&forMarshaling->refreshDuration, sizeof(uint64_t));
 }
 
 void unmarshal_VkRefreshCycleDurationGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkRefreshCycleDurationGOOGLE* forUnmarshaling)
 {
     vkStream->read((uint64_t*)&forUnmarshaling->refreshDuration, sizeof(uint64_t));
 }
 
 void marshal_VkPastPresentationTimingGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPastPresentationTimingGOOGLE* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->presentID, sizeof(uint32_t));
@@ -11094,7 +11094,7 @@
 }
 
 void unmarshal_VkPastPresentationTimingGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPastPresentationTimingGOOGLE* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->presentID, sizeof(uint32_t));
@@ -11105,7 +11105,7 @@
 }
 
 void marshal_VkPresentTimeGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPresentTimeGOOGLE* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->presentID, sizeof(uint32_t));
@@ -11113,7 +11113,7 @@
 }
 
 void unmarshal_VkPresentTimeGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPresentTimeGOOGLE* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->presentID, sizeof(uint32_t));
@@ -11121,7 +11121,7 @@
 }
 
 void marshal_VkPresentTimesInfoGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPresentTimesInfoGOOGLE* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -11146,7 +11146,7 @@
 }
 
 void unmarshal_VkPresentTimesInfoGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPresentTimesInfoGOOGLE* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -11181,7 +11181,7 @@
 #endif
 #ifdef VK_NVX_multiview_per_view_attributes
 void marshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -11196,7 +11196,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -11215,7 +11215,7 @@
 #endif
 #ifdef VK_NV_viewport_swizzle
 void marshal_VkViewportSwizzleNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkViewportSwizzleNV* forMarshaling)
 {
     vkStream->write((VkViewportCoordinateSwizzleNV*)&forMarshaling->x, sizeof(VkViewportCoordinateSwizzleNV));
@@ -11225,7 +11225,7 @@
 }
 
 void unmarshal_VkViewportSwizzleNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkViewportSwizzleNV* forUnmarshaling)
 {
     vkStream->read((VkViewportCoordinateSwizzleNV*)&forUnmarshaling->x, sizeof(VkViewportCoordinateSwizzleNV));
@@ -11235,7 +11235,7 @@
 }
 
 void marshal_VkPipelineViewportSwizzleStateCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineViewportSwizzleStateCreateInfoNV* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -11261,7 +11261,7 @@
 }
 
 void unmarshal_VkPipelineViewportSwizzleStateCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineViewportSwizzleStateCreateInfoNV* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -11291,7 +11291,7 @@
 #endif
 #ifdef VK_EXT_discard_rectangles
 void marshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceDiscardRectanglePropertiesEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -11306,7 +11306,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceDiscardRectanglePropertiesEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -11323,7 +11323,7 @@
 }
 
 void marshal_VkPipelineDiscardRectangleStateCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineDiscardRectangleStateCreateInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -11350,7 +11350,7 @@
 }
 
 void unmarshal_VkPipelineDiscardRectangleStateCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineDiscardRectangleStateCreateInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -11381,7 +11381,7 @@
 #endif
 #ifdef VK_EXT_conservative_rasterization
 void marshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceConservativeRasterizationPropertiesEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -11404,7 +11404,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceConservativeRasterizationPropertiesEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -11429,7 +11429,7 @@
 }
 
 void marshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineRasterizationConservativeStateCreateInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -11446,7 +11446,7 @@
 }
 
 void unmarshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineRasterizationConservativeStateCreateInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -11469,7 +11469,7 @@
 #endif
 #ifdef VK_EXT_hdr_metadata
 void marshal_VkXYColorEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkXYColorEXT* forMarshaling)
 {
     vkStream->write((float*)&forMarshaling->x, sizeof(float));
@@ -11477,7 +11477,7 @@
 }
 
 void unmarshal_VkXYColorEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkXYColorEXT* forUnmarshaling)
 {
     vkStream->read((float*)&forUnmarshaling->x, sizeof(float));
@@ -11485,7 +11485,7 @@
 }
 
 void marshal_VkHdrMetadataEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkHdrMetadataEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -11507,7 +11507,7 @@
 }
 
 void unmarshal_VkHdrMetadataEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkHdrMetadataEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -11533,7 +11533,7 @@
 #endif
 #ifdef VK_MVK_ios_surface
 void marshal_VkIOSSurfaceCreateInfoMVK(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkIOSSurfaceCreateInfoMVK* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -11555,7 +11555,7 @@
 }
 
 void unmarshal_VkIOSSurfaceCreateInfoMVK(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkIOSSurfaceCreateInfoMVK* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -11581,7 +11581,7 @@
 #endif
 #ifdef VK_MVK_macos_surface
 void marshal_VkMacOSSurfaceCreateInfoMVK(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMacOSSurfaceCreateInfoMVK* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -11603,7 +11603,7 @@
 }
 
 void unmarshal_VkMacOSSurfaceCreateInfoMVK(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMacOSSurfaceCreateInfoMVK* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -11633,7 +11633,7 @@
 #endif
 #ifdef VK_EXT_debug_utils
 void marshal_VkDebugUtilsObjectNameInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDebugUtilsObjectNameInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -11650,7 +11650,7 @@
 }
 
 void unmarshal_VkDebugUtilsObjectNameInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDebugUtilsObjectNameInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -11669,7 +11669,7 @@
 }
 
 void marshal_VkDebugUtilsObjectTagInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDebugUtilsObjectTagInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -11689,7 +11689,7 @@
 }
 
 void unmarshal_VkDebugUtilsObjectTagInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDebugUtilsObjectTagInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -11711,7 +11711,7 @@
 }
 
 void marshal_VkDebugUtilsLabelEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDebugUtilsLabelEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -11727,7 +11727,7 @@
 }
 
 void unmarshal_VkDebugUtilsLabelEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDebugUtilsLabelEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -11745,7 +11745,7 @@
 }
 
 void marshal_VkDebugUtilsMessengerCallbackDataEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDebugUtilsMessengerCallbackDataEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -11796,7 +11796,7 @@
 }
 
 void unmarshal_VkDebugUtilsMessengerCallbackDataEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDebugUtilsMessengerCallbackDataEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -11849,7 +11849,7 @@
 }
 
 void marshal_VkDebugUtilsMessengerCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDebugUtilsMessengerCreateInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -11875,7 +11875,7 @@
 }
 
 void unmarshal_VkDebugUtilsMessengerCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDebugUtilsMessengerCreateInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -11904,7 +11904,7 @@
 #endif
 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
 void marshal_VkAndroidHardwareBufferUsageANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAndroidHardwareBufferUsageANDROID* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -11919,7 +11919,7 @@
 }
 
 void unmarshal_VkAndroidHardwareBufferUsageANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAndroidHardwareBufferUsageANDROID* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -11936,7 +11936,7 @@
 }
 
 void marshal_VkAndroidHardwareBufferPropertiesANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAndroidHardwareBufferPropertiesANDROID* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -11952,7 +11952,7 @@
 }
 
 void unmarshal_VkAndroidHardwareBufferPropertiesANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAndroidHardwareBufferPropertiesANDROID* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -11970,7 +11970,7 @@
 }
 
 void marshal_VkAndroidHardwareBufferFormatPropertiesANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAndroidHardwareBufferFormatPropertiesANDROID* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -11992,7 +11992,7 @@
 }
 
 void unmarshal_VkAndroidHardwareBufferFormatPropertiesANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAndroidHardwareBufferFormatPropertiesANDROID* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12016,7 +12016,7 @@
 }
 
 void marshal_VkImportAndroidHardwareBufferInfoANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportAndroidHardwareBufferInfoANDROID* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12031,7 +12031,7 @@
 }
 
 void unmarshal_VkImportAndroidHardwareBufferInfoANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportAndroidHardwareBufferInfoANDROID* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12049,7 +12049,7 @@
 }
 
 void marshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryGetAndroidHardwareBufferInfoANDROID* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12066,7 +12066,7 @@
 }
 
 void unmarshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryGetAndroidHardwareBufferInfoANDROID* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12085,7 +12085,7 @@
 }
 
 void marshal_VkExternalFormatANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExternalFormatANDROID* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12100,7 +12100,7 @@
 }
 
 void unmarshal_VkExternalFormatANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExternalFormatANDROID* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12119,7 +12119,7 @@
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
 void marshal_VkSamplerReductionModeCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSamplerReductionModeCreateInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12134,7 +12134,7 @@
 }
 
 void unmarshal_VkSamplerReductionModeCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSamplerReductionModeCreateInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12151,7 +12151,7 @@
 }
 
 void marshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12167,7 +12167,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12195,7 +12195,7 @@
 #endif
 #ifdef VK_EXT_sample_locations
 void marshal_VkSampleLocationEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSampleLocationEXT* forMarshaling)
 {
     vkStream->write((float*)&forMarshaling->x, sizeof(float));
@@ -12203,7 +12203,7 @@
 }
 
 void unmarshal_VkSampleLocationEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSampleLocationEXT* forUnmarshaling)
 {
     vkStream->read((float*)&forUnmarshaling->x, sizeof(float));
@@ -12211,7 +12211,7 @@
 }
 
 void marshal_VkSampleLocationsInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSampleLocationsInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12232,7 +12232,7 @@
 }
 
 void unmarshal_VkSampleLocationsInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSampleLocationsInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12256,7 +12256,7 @@
 }
 
 void marshal_VkAttachmentSampleLocationsEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAttachmentSampleLocationsEXT* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->attachmentIndex, sizeof(uint32_t));
@@ -12264,7 +12264,7 @@
 }
 
 void unmarshal_VkAttachmentSampleLocationsEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAttachmentSampleLocationsEXT* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->attachmentIndex, sizeof(uint32_t));
@@ -12272,7 +12272,7 @@
 }
 
 void marshal_VkSubpassSampleLocationsEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSubpassSampleLocationsEXT* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->subpassIndex, sizeof(uint32_t));
@@ -12280,7 +12280,7 @@
 }
 
 void unmarshal_VkSubpassSampleLocationsEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSubpassSampleLocationsEXT* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->subpassIndex, sizeof(uint32_t));
@@ -12288,7 +12288,7 @@
 }
 
 void marshal_VkRenderPassSampleLocationsBeginInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkRenderPassSampleLocationsBeginInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12312,7 +12312,7 @@
 }
 
 void unmarshal_VkRenderPassSampleLocationsBeginInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkRenderPassSampleLocationsBeginInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12340,7 +12340,7 @@
 }
 
 void marshal_VkPipelineSampleLocationsStateCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineSampleLocationsStateCreateInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12356,7 +12356,7 @@
 }
 
 void unmarshal_VkPipelineSampleLocationsStateCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineSampleLocationsStateCreateInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12374,7 +12374,7 @@
 }
 
 void marshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceSampleLocationsPropertiesEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12393,7 +12393,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceSampleLocationsPropertiesEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12414,7 +12414,7 @@
 }
 
 void marshal_VkMultisamplePropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMultisamplePropertiesEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12429,7 +12429,7 @@
 }
 
 void unmarshal_VkMultisamplePropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMultisamplePropertiesEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12448,7 +12448,7 @@
 #endif
 #ifdef VK_EXT_blend_operation_advanced
 void marshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12463,7 +12463,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12480,7 +12480,7 @@
 }
 
 void marshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12500,7 +12500,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12522,7 +12522,7 @@
 }
 
 void marshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineColorBlendAdvancedStateCreateInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12539,7 +12539,7 @@
 }
 
 void unmarshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineColorBlendAdvancedStateCreateInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12560,7 +12560,7 @@
 #endif
 #ifdef VK_NV_fragment_coverage_to_color
 void marshal_VkPipelineCoverageToColorStateCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineCoverageToColorStateCreateInfoNV* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12577,7 +12577,7 @@
 }
 
 void unmarshal_VkPipelineCoverageToColorStateCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineCoverageToColorStateCreateInfoNV* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12598,7 +12598,7 @@
 #endif
 #ifdef VK_NV_framebuffer_mixed_samples
 void marshal_VkPipelineCoverageModulationStateCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineCoverageModulationStateCreateInfoNV* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12623,7 +12623,7 @@
 }
 
 void unmarshal_VkPipelineCoverageModulationStateCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineCoverageModulationStateCreateInfoNV* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12656,7 +12656,7 @@
 #endif
 #ifdef VK_EXT_validation_cache
 void marshal_VkValidationCacheCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkValidationCacheCreateInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12674,7 +12674,7 @@
 }
 
 void unmarshal_VkValidationCacheCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkValidationCacheCreateInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12694,7 +12694,7 @@
 }
 
 void marshal_VkShaderModuleValidationCacheCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkShaderModuleValidationCacheCreateInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12711,7 +12711,7 @@
 }
 
 void unmarshal_VkShaderModuleValidationCacheCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkShaderModuleValidationCacheCreateInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12732,7 +12732,7 @@
 #endif
 #ifdef VK_EXT_descriptor_indexing
 void marshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12748,7 +12748,7 @@
 }
 
 void unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12767,7 +12767,7 @@
 }
 
 void marshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceDescriptorIndexingFeaturesEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12801,7 +12801,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceDescriptorIndexingFeaturesEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12837,7 +12837,7 @@
 }
 
 void marshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceDescriptorIndexingPropertiesEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12874,7 +12874,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceDescriptorIndexingPropertiesEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12913,7 +12913,7 @@
 }
 
 void marshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12929,7 +12929,7 @@
 }
 
 void unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12948,7 +12948,7 @@
 }
 
 void marshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12963,7 +12963,7 @@
 }
 
 void unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -12984,7 +12984,7 @@
 #endif
 #ifdef VK_EXT_global_priority
 void marshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceQueueGlobalPriorityCreateInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -12999,7 +12999,7 @@
 }
 
 void unmarshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceQueueGlobalPriorityCreateInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -13018,7 +13018,7 @@
 #endif
 #ifdef VK_EXT_external_memory_host
 void marshal_VkImportMemoryHostPointerInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportMemoryHostPointerInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -13040,7 +13040,7 @@
 }
 
 void unmarshal_VkImportMemoryHostPointerInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportMemoryHostPointerInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -13064,7 +13064,7 @@
 }
 
 void marshal_VkMemoryHostPointerPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryHostPointerPropertiesEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -13079,7 +13079,7 @@
 }
 
 void unmarshal_VkMemoryHostPointerPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryHostPointerPropertiesEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -13096,7 +13096,7 @@
 }
 
 void marshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceExternalMemoryHostPropertiesEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -13111,7 +13111,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceExternalMemoryHostPropertiesEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -13132,7 +13132,7 @@
 #endif
 #ifdef VK_AMD_shader_core_properties
 void marshal_VkPhysicalDeviceShaderCorePropertiesAMD(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceShaderCorePropertiesAMD* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -13160,7 +13160,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceShaderCorePropertiesAMD(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceShaderCorePropertiesAMD* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -13192,7 +13192,7 @@
 #endif
 #ifdef VK_EXT_vertex_attribute_divisor
 void marshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -13207,7 +13207,7 @@
 }
 
 void unmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -13224,7 +13224,7 @@
 }
 
 void marshal_VkVertexInputBindingDivisorDescriptionEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkVertexInputBindingDivisorDescriptionEXT* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
@@ -13232,7 +13232,7 @@
 }
 
 void unmarshal_VkVertexInputBindingDivisorDescriptionEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkVertexInputBindingDivisorDescriptionEXT* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
@@ -13240,7 +13240,7 @@
 }
 
 void marshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineVertexInputDivisorStateCreateInfoEXT* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -13259,7 +13259,7 @@
 }
 
 void unmarshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineVertexInputDivisorStateCreateInfoEXT* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -13285,7 +13285,7 @@
 #endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 void marshal_VkQueueFamilyCheckpointPropertiesNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkQueueFamilyCheckpointPropertiesNV* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -13300,7 +13300,7 @@
 }
 
 void unmarshal_VkQueueFamilyCheckpointPropertiesNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkQueueFamilyCheckpointPropertiesNV* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -13317,7 +13317,7 @@
 }
 
 void marshal_VkCheckpointDataNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkCheckpointDataNV* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -13339,7 +13339,7 @@
 }
 
 void unmarshal_VkCheckpointDataNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkCheckpointDataNV* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -13367,7 +13367,7 @@
 #endif
 #ifdef VK_GOOGLE_color_buffer
 void marshal_VkImportColorBufferGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportColorBufferGOOGLE* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -13382,7 +13382,7 @@
 }
 
 void unmarshal_VkImportColorBufferGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportColorBufferGOOGLE* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -13399,7 +13399,7 @@
 }
 
 void marshal_VkImportPhysicalAddressGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportPhysicalAddressGOOGLE* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
@@ -13418,7 +13418,7 @@
 }
 
 void unmarshal_VkImportPhysicalAddressGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportPhysicalAddressGOOGLE* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
@@ -13440,7 +13440,7 @@
 
 #endif
 void marshal_extension_struct(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const void* structExtension)
 {
     if (!structExtension)
@@ -14091,7 +14091,7 @@
 }
 
 void unmarshal_extension_struct(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     void* structExtension_out)
 {
     if (!structExtension_out)
diff --git a/system/vulkan_enc/goldfish_vk_marshaling_guest.h b/system/vulkan_enc/goldfish_vk_marshaling_guest.h
index 966f0bc..5d04b41 100644
--- a/system/vulkan_enc/goldfish_vk_marshaling_guest.h
+++ b/system/vulkan_enc/goldfish_vk_marshaling_guest.h
@@ -31,7 +31,7 @@
 
 #include "goldfish_vk_marshaling_guest.h"
 #include "goldfish_vk_private_defs.h"
-#include "VulkanStream.h"
+#include "VulkanStreamGuest.h"
 
 // Stuff we are not going to use but if included,
 // will cause compile errors. These are Android Vulkan
@@ -45,184 +45,184 @@
 
 #ifdef VK_VERSION_1_0
 void marshal_VkApplicationInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkApplicationInfo* forMarshaling);
 
 void unmarshal_VkApplicationInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkApplicationInfo* forUnmarshaling);
 
 void marshal_VkInstanceCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkInstanceCreateInfo* forMarshaling);
 
 void unmarshal_VkInstanceCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkInstanceCreateInfo* forUnmarshaling);
 
 void marshal_VkAllocationCallbacks(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAllocationCallbacks* forMarshaling);
 
 void unmarshal_VkAllocationCallbacks(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAllocationCallbacks* forUnmarshaling);
 
 #define OP_vkCreateInstance 20000
 #define OP_vkDestroyInstance 20001
 #define OP_vkEnumeratePhysicalDevices 20002
 void marshal_VkPhysicalDeviceFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceFeatures* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceFeatures* forUnmarshaling);
 
 #define OP_vkGetPhysicalDeviceFeatures 20003
 void marshal_VkFormatProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkFormatProperties* forMarshaling);
 
 void unmarshal_VkFormatProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkFormatProperties* forUnmarshaling);
 
 #define OP_vkGetPhysicalDeviceFormatProperties 20004
 void marshal_VkExtent3D(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExtent3D* forMarshaling);
 
 void unmarshal_VkExtent3D(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExtent3D* forUnmarshaling);
 
 void marshal_VkImageFormatProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageFormatProperties* forMarshaling);
 
 void unmarshal_VkImageFormatProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageFormatProperties* forUnmarshaling);
 
 #define OP_vkGetPhysicalDeviceImageFormatProperties 20005
 void marshal_VkPhysicalDeviceLimits(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceLimits* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceLimits(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceLimits* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceSparseProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceSparseProperties* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceSparseProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceSparseProperties* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceProperties* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceProperties* forUnmarshaling);
 
 #define OP_vkGetPhysicalDeviceProperties 20006
 void marshal_VkQueueFamilyProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkQueueFamilyProperties* forMarshaling);
 
 void unmarshal_VkQueueFamilyProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkQueueFamilyProperties* forUnmarshaling);
 
 #define OP_vkGetPhysicalDeviceQueueFamilyProperties 20007
 void marshal_VkMemoryType(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryType* forMarshaling);
 
 void unmarshal_VkMemoryType(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryType* forUnmarshaling);
 
 void marshal_VkMemoryHeap(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryHeap* forMarshaling);
 
 void unmarshal_VkMemoryHeap(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryHeap* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceMemoryProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceMemoryProperties* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceMemoryProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceMemoryProperties* forUnmarshaling);
 
 #define OP_vkGetPhysicalDeviceMemoryProperties 20008
 #define OP_vkGetInstanceProcAddr 20009
 #define OP_vkGetDeviceProcAddr 20010
 void marshal_VkDeviceQueueCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceQueueCreateInfo* forMarshaling);
 
 void unmarshal_VkDeviceQueueCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceQueueCreateInfo* forUnmarshaling);
 
 void marshal_VkDeviceCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceCreateInfo* forMarshaling);
 
 void unmarshal_VkDeviceCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceCreateInfo* forUnmarshaling);
 
 #define OP_vkCreateDevice 20011
 #define OP_vkDestroyDevice 20012
 void marshal_VkExtensionProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExtensionProperties* forMarshaling);
 
 void unmarshal_VkExtensionProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExtensionProperties* forUnmarshaling);
 
 #define OP_vkEnumerateInstanceExtensionProperties 20013
 #define OP_vkEnumerateDeviceExtensionProperties 20014
 void marshal_VkLayerProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkLayerProperties* forMarshaling);
 
 void unmarshal_VkLayerProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkLayerProperties* forUnmarshaling);
 
 #define OP_vkEnumerateInstanceLayerProperties 20015
 #define OP_vkEnumerateDeviceLayerProperties 20016
 #define OP_vkGetDeviceQueue 20017
 void marshal_VkSubmitInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSubmitInfo* forMarshaling);
 
 void unmarshal_VkSubmitInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSubmitInfo* forUnmarshaling);
 
 #define OP_vkQueueSubmit 20018
 #define OP_vkQueueWaitIdle 20019
 #define OP_vkDeviceWaitIdle 20020
 void marshal_VkMemoryAllocateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryAllocateInfo* forMarshaling);
 
 void unmarshal_VkMemoryAllocateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryAllocateInfo* forUnmarshaling);
 
 #define OP_vkAllocateMemory 20021
@@ -230,11 +230,11 @@
 #define OP_vkMapMemory 20023
 #define OP_vkUnmapMemory 20024
 void marshal_VkMappedMemoryRange(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMappedMemoryRange* forMarshaling);
 
 void unmarshal_VkMappedMemoryRange(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMappedMemoryRange* forUnmarshaling);
 
 #define OP_vkFlushMappedMemoryRanges 20025
@@ -243,104 +243,104 @@
 #define OP_vkBindBufferMemory 20028
 #define OP_vkBindImageMemory 20029
 void marshal_VkMemoryRequirements(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryRequirements* forMarshaling);
 
 void unmarshal_VkMemoryRequirements(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryRequirements* forUnmarshaling);
 
 #define OP_vkGetBufferMemoryRequirements 20030
 #define OP_vkGetImageMemoryRequirements 20031
 void marshal_VkSparseImageFormatProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSparseImageFormatProperties* forMarshaling);
 
 void unmarshal_VkSparseImageFormatProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSparseImageFormatProperties* forUnmarshaling);
 
 void marshal_VkSparseImageMemoryRequirements(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSparseImageMemoryRequirements* forMarshaling);
 
 void unmarshal_VkSparseImageMemoryRequirements(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSparseImageMemoryRequirements* forUnmarshaling);
 
 #define OP_vkGetImageSparseMemoryRequirements 20032
 #define OP_vkGetPhysicalDeviceSparseImageFormatProperties 20033
 void marshal_VkSparseMemoryBind(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSparseMemoryBind* forMarshaling);
 
 void unmarshal_VkSparseMemoryBind(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSparseMemoryBind* forUnmarshaling);
 
 void marshal_VkSparseBufferMemoryBindInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSparseBufferMemoryBindInfo* forMarshaling);
 
 void unmarshal_VkSparseBufferMemoryBindInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSparseBufferMemoryBindInfo* forUnmarshaling);
 
 void marshal_VkSparseImageOpaqueMemoryBindInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSparseImageOpaqueMemoryBindInfo* forMarshaling);
 
 void unmarshal_VkSparseImageOpaqueMemoryBindInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSparseImageOpaqueMemoryBindInfo* forUnmarshaling);
 
 void marshal_VkImageSubresource(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageSubresource* forMarshaling);
 
 void unmarshal_VkImageSubresource(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageSubresource* forUnmarshaling);
 
 void marshal_VkOffset3D(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkOffset3D* forMarshaling);
 
 void unmarshal_VkOffset3D(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkOffset3D* forUnmarshaling);
 
 void marshal_VkSparseImageMemoryBind(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSparseImageMemoryBind* forMarshaling);
 
 void unmarshal_VkSparseImageMemoryBind(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSparseImageMemoryBind* forUnmarshaling);
 
 void marshal_VkSparseImageMemoryBindInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSparseImageMemoryBindInfo* forMarshaling);
 
 void unmarshal_VkSparseImageMemoryBindInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSparseImageMemoryBindInfo* forUnmarshaling);
 
 void marshal_VkBindSparseInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBindSparseInfo* forMarshaling);
 
 void unmarshal_VkBindSparseInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBindSparseInfo* forUnmarshaling);
 
 #define OP_vkQueueBindSparse 20034
 void marshal_VkFenceCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkFenceCreateInfo* forMarshaling);
 
 void unmarshal_VkFenceCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkFenceCreateInfo* forUnmarshaling);
 
 #define OP_vkCreateFence 20035
@@ -349,21 +349,21 @@
 #define OP_vkGetFenceStatus 20038
 #define OP_vkWaitForFences 20039
 void marshal_VkSemaphoreCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSemaphoreCreateInfo* forMarshaling);
 
 void unmarshal_VkSemaphoreCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSemaphoreCreateInfo* forUnmarshaling);
 
 #define OP_vkCreateSemaphore 20040
 #define OP_vkDestroySemaphore 20041
 void marshal_VkEventCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkEventCreateInfo* forMarshaling);
 
 void unmarshal_VkEventCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkEventCreateInfo* forUnmarshaling);
 
 #define OP_vkCreateEvent 20042
@@ -372,97 +372,97 @@
 #define OP_vkSetEvent 20045
 #define OP_vkResetEvent 20046
 void marshal_VkQueryPoolCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkQueryPoolCreateInfo* forMarshaling);
 
 void unmarshal_VkQueryPoolCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkQueryPoolCreateInfo* forUnmarshaling);
 
 #define OP_vkCreateQueryPool 20047
 #define OP_vkDestroyQueryPool 20048
 #define OP_vkGetQueryPoolResults 20049
 void marshal_VkBufferCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBufferCreateInfo* forMarshaling);
 
 void unmarshal_VkBufferCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBufferCreateInfo* forUnmarshaling);
 
 #define OP_vkCreateBuffer 20050
 #define OP_vkDestroyBuffer 20051
 void marshal_VkBufferViewCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBufferViewCreateInfo* forMarshaling);
 
 void unmarshal_VkBufferViewCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBufferViewCreateInfo* forUnmarshaling);
 
 #define OP_vkCreateBufferView 20052
 #define OP_vkDestroyBufferView 20053
 void marshal_VkImageCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageCreateInfo* forMarshaling);
 
 void unmarshal_VkImageCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageCreateInfo* forUnmarshaling);
 
 #define OP_vkCreateImage 20054
 #define OP_vkDestroyImage 20055
 void marshal_VkSubresourceLayout(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSubresourceLayout* forMarshaling);
 
 void unmarshal_VkSubresourceLayout(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSubresourceLayout* forUnmarshaling);
 
 #define OP_vkGetImageSubresourceLayout 20056
 void marshal_VkComponentMapping(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkComponentMapping* forMarshaling);
 
 void unmarshal_VkComponentMapping(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkComponentMapping* forUnmarshaling);
 
 void marshal_VkImageSubresourceRange(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageSubresourceRange* forMarshaling);
 
 void unmarshal_VkImageSubresourceRange(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageSubresourceRange* forUnmarshaling);
 
 void marshal_VkImageViewCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageViewCreateInfo* forMarshaling);
 
 void unmarshal_VkImageViewCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageViewCreateInfo* forUnmarshaling);
 
 #define OP_vkCreateImageView 20057
 #define OP_vkDestroyImageView 20058
 void marshal_VkShaderModuleCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkShaderModuleCreateInfo* forMarshaling);
 
 void unmarshal_VkShaderModuleCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkShaderModuleCreateInfo* forUnmarshaling);
 
 #define OP_vkCreateShaderModule 20059
 #define OP_vkDestroyShaderModule 20060
 void marshal_VkPipelineCacheCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineCacheCreateInfo* forMarshaling);
 
 void unmarshal_VkPipelineCacheCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineCacheCreateInfo* forUnmarshaling);
 
 #define OP_vkCreatePipelineCache 20061
@@ -470,380 +470,380 @@
 #define OP_vkGetPipelineCacheData 20063
 #define OP_vkMergePipelineCaches 20064
 void marshal_VkSpecializationMapEntry(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSpecializationMapEntry* forMarshaling);
 
 void unmarshal_VkSpecializationMapEntry(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSpecializationMapEntry* forUnmarshaling);
 
 void marshal_VkSpecializationInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSpecializationInfo* forMarshaling);
 
 void unmarshal_VkSpecializationInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSpecializationInfo* forUnmarshaling);
 
 void marshal_VkPipelineShaderStageCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineShaderStageCreateInfo* forMarshaling);
 
 void unmarshal_VkPipelineShaderStageCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineShaderStageCreateInfo* forUnmarshaling);
 
 void marshal_VkVertexInputBindingDescription(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkVertexInputBindingDescription* forMarshaling);
 
 void unmarshal_VkVertexInputBindingDescription(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkVertexInputBindingDescription* forUnmarshaling);
 
 void marshal_VkVertexInputAttributeDescription(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkVertexInputAttributeDescription* forMarshaling);
 
 void unmarshal_VkVertexInputAttributeDescription(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkVertexInputAttributeDescription* forUnmarshaling);
 
 void marshal_VkPipelineVertexInputStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineVertexInputStateCreateInfo* forMarshaling);
 
 void unmarshal_VkPipelineVertexInputStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineVertexInputStateCreateInfo* forUnmarshaling);
 
 void marshal_VkPipelineInputAssemblyStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineInputAssemblyStateCreateInfo* forMarshaling);
 
 void unmarshal_VkPipelineInputAssemblyStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineInputAssemblyStateCreateInfo* forUnmarshaling);
 
 void marshal_VkPipelineTessellationStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineTessellationStateCreateInfo* forMarshaling);
 
 void unmarshal_VkPipelineTessellationStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineTessellationStateCreateInfo* forUnmarshaling);
 
 void marshal_VkViewport(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkViewport* forMarshaling);
 
 void unmarshal_VkViewport(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkViewport* forUnmarshaling);
 
 void marshal_VkOffset2D(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkOffset2D* forMarshaling);
 
 void unmarshal_VkOffset2D(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkOffset2D* forUnmarshaling);
 
 void marshal_VkExtent2D(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExtent2D* forMarshaling);
 
 void unmarshal_VkExtent2D(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExtent2D* forUnmarshaling);
 
 void marshal_VkRect2D(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkRect2D* forMarshaling);
 
 void unmarshal_VkRect2D(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkRect2D* forUnmarshaling);
 
 void marshal_VkPipelineViewportStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineViewportStateCreateInfo* forMarshaling);
 
 void unmarshal_VkPipelineViewportStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineViewportStateCreateInfo* forUnmarshaling);
 
 void marshal_VkPipelineRasterizationStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineRasterizationStateCreateInfo* forMarshaling);
 
 void unmarshal_VkPipelineRasterizationStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineRasterizationStateCreateInfo* forUnmarshaling);
 
 void marshal_VkPipelineMultisampleStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineMultisampleStateCreateInfo* forMarshaling);
 
 void unmarshal_VkPipelineMultisampleStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineMultisampleStateCreateInfo* forUnmarshaling);
 
 void marshal_VkStencilOpState(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkStencilOpState* forMarshaling);
 
 void unmarshal_VkStencilOpState(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkStencilOpState* forUnmarshaling);
 
 void marshal_VkPipelineDepthStencilStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineDepthStencilStateCreateInfo* forMarshaling);
 
 void unmarshal_VkPipelineDepthStencilStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineDepthStencilStateCreateInfo* forUnmarshaling);
 
 void marshal_VkPipelineColorBlendAttachmentState(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineColorBlendAttachmentState* forMarshaling);
 
 void unmarshal_VkPipelineColorBlendAttachmentState(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineColorBlendAttachmentState* forUnmarshaling);
 
 void marshal_VkPipelineColorBlendStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineColorBlendStateCreateInfo* forMarshaling);
 
 void unmarshal_VkPipelineColorBlendStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineColorBlendStateCreateInfo* forUnmarshaling);
 
 void marshal_VkPipelineDynamicStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineDynamicStateCreateInfo* forMarshaling);
 
 void unmarshal_VkPipelineDynamicStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineDynamicStateCreateInfo* forUnmarshaling);
 
 void marshal_VkGraphicsPipelineCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkGraphicsPipelineCreateInfo* forMarshaling);
 
 void unmarshal_VkGraphicsPipelineCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkGraphicsPipelineCreateInfo* forUnmarshaling);
 
 #define OP_vkCreateGraphicsPipelines 20065
 void marshal_VkComputePipelineCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkComputePipelineCreateInfo* forMarshaling);
 
 void unmarshal_VkComputePipelineCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkComputePipelineCreateInfo* forUnmarshaling);
 
 #define OP_vkCreateComputePipelines 20066
 #define OP_vkDestroyPipeline 20067
 void marshal_VkPushConstantRange(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPushConstantRange* forMarshaling);
 
 void unmarshal_VkPushConstantRange(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPushConstantRange* forUnmarshaling);
 
 void marshal_VkPipelineLayoutCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineLayoutCreateInfo* forMarshaling);
 
 void unmarshal_VkPipelineLayoutCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineLayoutCreateInfo* forUnmarshaling);
 
 #define OP_vkCreatePipelineLayout 20068
 #define OP_vkDestroyPipelineLayout 20069
 void marshal_VkSamplerCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSamplerCreateInfo* forMarshaling);
 
 void unmarshal_VkSamplerCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSamplerCreateInfo* forUnmarshaling);
 
 #define OP_vkCreateSampler 20070
 #define OP_vkDestroySampler 20071
 void marshal_VkDescriptorSetLayoutBinding(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorSetLayoutBinding* forMarshaling);
 
 void unmarshal_VkDescriptorSetLayoutBinding(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorSetLayoutBinding* forUnmarshaling);
 
 void marshal_VkDescriptorSetLayoutCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorSetLayoutCreateInfo* forMarshaling);
 
 void unmarshal_VkDescriptorSetLayoutCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorSetLayoutCreateInfo* forUnmarshaling);
 
 #define OP_vkCreateDescriptorSetLayout 20072
 #define OP_vkDestroyDescriptorSetLayout 20073
 void marshal_VkDescriptorPoolSize(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorPoolSize* forMarshaling);
 
 void unmarshal_VkDescriptorPoolSize(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorPoolSize* forUnmarshaling);
 
 void marshal_VkDescriptorPoolCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorPoolCreateInfo* forMarshaling);
 
 void unmarshal_VkDescriptorPoolCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorPoolCreateInfo* forUnmarshaling);
 
 #define OP_vkCreateDescriptorPool 20074
 #define OP_vkDestroyDescriptorPool 20075
 #define OP_vkResetDescriptorPool 20076
 void marshal_VkDescriptorSetAllocateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorSetAllocateInfo* forMarshaling);
 
 void unmarshal_VkDescriptorSetAllocateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorSetAllocateInfo* forUnmarshaling);
 
 #define OP_vkAllocateDescriptorSets 20077
 #define OP_vkFreeDescriptorSets 20078
 void marshal_VkDescriptorImageInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorImageInfo* forMarshaling);
 
 void unmarshal_VkDescriptorImageInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorImageInfo* forUnmarshaling);
 
 void marshal_VkDescriptorBufferInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorBufferInfo* forMarshaling);
 
 void unmarshal_VkDescriptorBufferInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorBufferInfo* forUnmarshaling);
 
 void marshal_VkWriteDescriptorSet(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkWriteDescriptorSet* forMarshaling);
 
 void unmarshal_VkWriteDescriptorSet(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkWriteDescriptorSet* forUnmarshaling);
 
 void marshal_VkCopyDescriptorSet(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkCopyDescriptorSet* forMarshaling);
 
 void unmarshal_VkCopyDescriptorSet(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkCopyDescriptorSet* forUnmarshaling);
 
 #define OP_vkUpdateDescriptorSets 20079
 void marshal_VkFramebufferCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkFramebufferCreateInfo* forMarshaling);
 
 void unmarshal_VkFramebufferCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkFramebufferCreateInfo* forUnmarshaling);
 
 #define OP_vkCreateFramebuffer 20080
 #define OP_vkDestroyFramebuffer 20081
 void marshal_VkAttachmentDescription(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAttachmentDescription* forMarshaling);
 
 void unmarshal_VkAttachmentDescription(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAttachmentDescription* forUnmarshaling);
 
 void marshal_VkAttachmentReference(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAttachmentReference* forMarshaling);
 
 void unmarshal_VkAttachmentReference(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAttachmentReference* forUnmarshaling);
 
 void marshal_VkSubpassDescription(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSubpassDescription* forMarshaling);
 
 void unmarshal_VkSubpassDescription(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSubpassDescription* forUnmarshaling);
 
 void marshal_VkSubpassDependency(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSubpassDependency* forMarshaling);
 
 void unmarshal_VkSubpassDependency(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSubpassDependency* forUnmarshaling);
 
 void marshal_VkRenderPassCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkRenderPassCreateInfo* forMarshaling);
 
 void unmarshal_VkRenderPassCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkRenderPassCreateInfo* forUnmarshaling);
 
 #define OP_vkCreateRenderPass 20082
 #define OP_vkDestroyRenderPass 20083
 #define OP_vkGetRenderAreaGranularity 20084
 void marshal_VkCommandPoolCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkCommandPoolCreateInfo* forMarshaling);
 
 void unmarshal_VkCommandPoolCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkCommandPoolCreateInfo* forUnmarshaling);
 
 #define OP_vkCreateCommandPool 20085
 #define OP_vkDestroyCommandPool 20086
 #define OP_vkResetCommandPool 20087
 void marshal_VkCommandBufferAllocateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkCommandBufferAllocateInfo* forMarshaling);
 
 void unmarshal_VkCommandBufferAllocateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkCommandBufferAllocateInfo* forUnmarshaling);
 
 #define OP_vkAllocateCommandBuffers 20088
 #define OP_vkFreeCommandBuffers 20089
 void marshal_VkCommandBufferInheritanceInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkCommandBufferInheritanceInfo* forMarshaling);
 
 void unmarshal_VkCommandBufferInheritanceInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkCommandBufferInheritanceInfo* forUnmarshaling);
 
 void marshal_VkCommandBufferBeginInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkCommandBufferBeginInfo* forMarshaling);
 
 void unmarshal_VkCommandBufferBeginInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkCommandBufferBeginInfo* forUnmarshaling);
 
 #define OP_vkBeginCommandBuffer 20090
@@ -869,46 +869,46 @@
 #define OP_vkCmdDispatch 20110
 #define OP_vkCmdDispatchIndirect 20111
 void marshal_VkBufferCopy(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBufferCopy* forMarshaling);
 
 void unmarshal_VkBufferCopy(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBufferCopy* forUnmarshaling);
 
 #define OP_vkCmdCopyBuffer 20112
 void marshal_VkImageSubresourceLayers(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageSubresourceLayers* forMarshaling);
 
 void unmarshal_VkImageSubresourceLayers(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageSubresourceLayers* forUnmarshaling);
 
 void marshal_VkImageCopy(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageCopy* forMarshaling);
 
 void unmarshal_VkImageCopy(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageCopy* forUnmarshaling);
 
 #define OP_vkCmdCopyImage 20113
 void marshal_VkImageBlit(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageBlit* forMarshaling);
 
 void unmarshal_VkImageBlit(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageBlit* forUnmarshaling);
 
 #define OP_vkCmdBlitImage 20114
 void marshal_VkBufferImageCopy(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBufferImageCopy* forMarshaling);
 
 void unmarshal_VkBufferImageCopy(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBufferImageCopy* forUnmarshaling);
 
 #define OP_vkCmdCopyBufferToImage 20115
@@ -916,81 +916,81 @@
 #define OP_vkCmdUpdateBuffer 20117
 #define OP_vkCmdFillBuffer 20118
 void marshal_VkClearColorValue(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkClearColorValue* forMarshaling);
 
 void unmarshal_VkClearColorValue(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkClearColorValue* forUnmarshaling);
 
 #define OP_vkCmdClearColorImage 20119
 void marshal_VkClearDepthStencilValue(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkClearDepthStencilValue* forMarshaling);
 
 void unmarshal_VkClearDepthStencilValue(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkClearDepthStencilValue* forUnmarshaling);
 
 #define OP_vkCmdClearDepthStencilImage 20120
 void marshal_VkClearValue(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkClearValue* forMarshaling);
 
 void unmarshal_VkClearValue(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkClearValue* forUnmarshaling);
 
 void marshal_VkClearAttachment(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkClearAttachment* forMarshaling);
 
 void unmarshal_VkClearAttachment(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkClearAttachment* forUnmarshaling);
 
 void marshal_VkClearRect(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkClearRect* forMarshaling);
 
 void unmarshal_VkClearRect(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkClearRect* forUnmarshaling);
 
 #define OP_vkCmdClearAttachments 20121
 void marshal_VkImageResolve(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageResolve* forMarshaling);
 
 void unmarshal_VkImageResolve(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageResolve* forUnmarshaling);
 
 #define OP_vkCmdResolveImage 20122
 #define OP_vkCmdSetEvent 20123
 #define OP_vkCmdResetEvent 20124
 void marshal_VkMemoryBarrier(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryBarrier* forMarshaling);
 
 void unmarshal_VkMemoryBarrier(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryBarrier* forUnmarshaling);
 
 void marshal_VkBufferMemoryBarrier(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBufferMemoryBarrier* forMarshaling);
 
 void unmarshal_VkBufferMemoryBarrier(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBufferMemoryBarrier* forUnmarshaling);
 
 void marshal_VkImageMemoryBarrier(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageMemoryBarrier* forMarshaling);
 
 void unmarshal_VkImageMemoryBarrier(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageMemoryBarrier* forUnmarshaling);
 
 #define OP_vkCmdWaitEvents 20125
@@ -1002,11 +1002,11 @@
 #define OP_vkCmdCopyQueryPoolResults 20131
 #define OP_vkCmdPushConstants 20132
 void marshal_VkRenderPassBeginInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkRenderPassBeginInfo* forMarshaling);
 
 void unmarshal_VkRenderPassBeginInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkRenderPassBeginInfo* forUnmarshaling);
 
 #define OP_vkCmdBeginRenderPass 20133
@@ -1014,287 +1014,287 @@
 #define OP_vkCmdEndRenderPass 20135
 #define OP_vkCmdExecuteCommands 20136
 void marshal_VkDispatchIndirectCommand(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDispatchIndirectCommand* forMarshaling);
 
 void unmarshal_VkDispatchIndirectCommand(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDispatchIndirectCommand* forUnmarshaling);
 
 void marshal_VkDrawIndexedIndirectCommand(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDrawIndexedIndirectCommand* forMarshaling);
 
 void unmarshal_VkDrawIndexedIndirectCommand(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDrawIndexedIndirectCommand* forUnmarshaling);
 
 void marshal_VkDrawIndirectCommand(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDrawIndirectCommand* forMarshaling);
 
 void unmarshal_VkDrawIndirectCommand(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDrawIndirectCommand* forUnmarshaling);
 
 void marshal_VkBaseOutStructure(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBaseOutStructure* forMarshaling);
 
 void unmarshal_VkBaseOutStructure(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBaseOutStructure* forUnmarshaling);
 
 void marshal_VkBaseInStructure(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBaseInStructure* forMarshaling);
 
 void unmarshal_VkBaseInStructure(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBaseInStructure* forUnmarshaling);
 
 #endif
 #ifdef VK_VERSION_1_1
 #define OP_vkEnumerateInstanceVersion 20137
 void marshal_VkPhysicalDeviceSubgroupProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceSubgroupProperties* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceSubgroupProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceSubgroupProperties* forUnmarshaling);
 
 void marshal_VkBindBufferMemoryInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBindBufferMemoryInfo* forMarshaling);
 
 void unmarshal_VkBindBufferMemoryInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBindBufferMemoryInfo* forUnmarshaling);
 
 void marshal_VkBindImageMemoryInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBindImageMemoryInfo* forMarshaling);
 
 void unmarshal_VkBindImageMemoryInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBindImageMemoryInfo* forUnmarshaling);
 
 #define OP_vkBindBufferMemory2 20138
 #define OP_vkBindImageMemory2 20139
 void marshal_VkPhysicalDevice16BitStorageFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDevice16BitStorageFeatures* forMarshaling);
 
 void unmarshal_VkPhysicalDevice16BitStorageFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDevice16BitStorageFeatures* forUnmarshaling);
 
 void marshal_VkMemoryDedicatedRequirements(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryDedicatedRequirements* forMarshaling);
 
 void unmarshal_VkMemoryDedicatedRequirements(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryDedicatedRequirements* forUnmarshaling);
 
 void marshal_VkMemoryDedicatedAllocateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryDedicatedAllocateInfo* forMarshaling);
 
 void unmarshal_VkMemoryDedicatedAllocateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryDedicatedAllocateInfo* forUnmarshaling);
 
 void marshal_VkMemoryAllocateFlagsInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryAllocateFlagsInfo* forMarshaling);
 
 void unmarshal_VkMemoryAllocateFlagsInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryAllocateFlagsInfo* forUnmarshaling);
 
 void marshal_VkDeviceGroupRenderPassBeginInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceGroupRenderPassBeginInfo* forMarshaling);
 
 void unmarshal_VkDeviceGroupRenderPassBeginInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceGroupRenderPassBeginInfo* forUnmarshaling);
 
 void marshal_VkDeviceGroupCommandBufferBeginInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceGroupCommandBufferBeginInfo* forMarshaling);
 
 void unmarshal_VkDeviceGroupCommandBufferBeginInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceGroupCommandBufferBeginInfo* forUnmarshaling);
 
 void marshal_VkDeviceGroupSubmitInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceGroupSubmitInfo* forMarshaling);
 
 void unmarshal_VkDeviceGroupSubmitInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceGroupSubmitInfo* forUnmarshaling);
 
 void marshal_VkDeviceGroupBindSparseInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceGroupBindSparseInfo* forMarshaling);
 
 void unmarshal_VkDeviceGroupBindSparseInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceGroupBindSparseInfo* forUnmarshaling);
 
 #define OP_vkGetDeviceGroupPeerMemoryFeatures 20140
 #define OP_vkCmdSetDeviceMask 20141
 #define OP_vkCmdDispatchBase 20142
 void marshal_VkBindBufferMemoryDeviceGroupInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBindBufferMemoryDeviceGroupInfo* forMarshaling);
 
 void unmarshal_VkBindBufferMemoryDeviceGroupInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBindBufferMemoryDeviceGroupInfo* forUnmarshaling);
 
 void marshal_VkBindImageMemoryDeviceGroupInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBindImageMemoryDeviceGroupInfo* forMarshaling);
 
 void unmarshal_VkBindImageMemoryDeviceGroupInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBindImageMemoryDeviceGroupInfo* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceGroupProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceGroupProperties* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceGroupProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceGroupProperties* forUnmarshaling);
 
 void marshal_VkDeviceGroupDeviceCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceGroupDeviceCreateInfo* forMarshaling);
 
 void unmarshal_VkDeviceGroupDeviceCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceGroupDeviceCreateInfo* forUnmarshaling);
 
 #define OP_vkEnumeratePhysicalDeviceGroups 20143
 void marshal_VkBufferMemoryRequirementsInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBufferMemoryRequirementsInfo2* forMarshaling);
 
 void unmarshal_VkBufferMemoryRequirementsInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBufferMemoryRequirementsInfo2* forUnmarshaling);
 
 void marshal_VkImageMemoryRequirementsInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageMemoryRequirementsInfo2* forMarshaling);
 
 void unmarshal_VkImageMemoryRequirementsInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageMemoryRequirementsInfo2* forUnmarshaling);
 
 void marshal_VkImageSparseMemoryRequirementsInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageSparseMemoryRequirementsInfo2* forMarshaling);
 
 void unmarshal_VkImageSparseMemoryRequirementsInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageSparseMemoryRequirementsInfo2* forUnmarshaling);
 
 void marshal_VkMemoryRequirements2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryRequirements2* forMarshaling);
 
 void unmarshal_VkMemoryRequirements2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryRequirements2* forUnmarshaling);
 
 void marshal_VkSparseImageMemoryRequirements2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSparseImageMemoryRequirements2* forMarshaling);
 
 void unmarshal_VkSparseImageMemoryRequirements2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSparseImageMemoryRequirements2* forUnmarshaling);
 
 #define OP_vkGetImageMemoryRequirements2 20144
 #define OP_vkGetBufferMemoryRequirements2 20145
 #define OP_vkGetImageSparseMemoryRequirements2 20146
 void marshal_VkPhysicalDeviceFeatures2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceFeatures2* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceFeatures2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceFeatures2* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceProperties2* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceProperties2* forUnmarshaling);
 
 void marshal_VkFormatProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkFormatProperties2* forMarshaling);
 
 void unmarshal_VkFormatProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkFormatProperties2* forUnmarshaling);
 
 void marshal_VkImageFormatProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageFormatProperties2* forMarshaling);
 
 void unmarshal_VkImageFormatProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageFormatProperties2* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceImageFormatInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceImageFormatInfo2* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceImageFormatInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceImageFormatInfo2* forUnmarshaling);
 
 void marshal_VkQueueFamilyProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkQueueFamilyProperties2* forMarshaling);
 
 void unmarshal_VkQueueFamilyProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkQueueFamilyProperties2* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceMemoryProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceMemoryProperties2* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceMemoryProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceMemoryProperties2* forUnmarshaling);
 
 void marshal_VkSparseImageFormatProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSparseImageFormatProperties2* forMarshaling);
 
 void unmarshal_VkSparseImageFormatProperties2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSparseImageFormatProperties2* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceSparseImageFormatInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceSparseImageFormatInfo2* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceSparseImageFormatInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceSparseImageFormatInfo2* forUnmarshaling);
 
 #define OP_vkGetPhysicalDeviceFeatures2 20147
@@ -1306,325 +1306,325 @@
 #define OP_vkGetPhysicalDeviceSparseImageFormatProperties2 20153
 #define OP_vkTrimCommandPool 20154
 void marshal_VkPhysicalDevicePointClippingProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDevicePointClippingProperties* forMarshaling);
 
 void unmarshal_VkPhysicalDevicePointClippingProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDevicePointClippingProperties* forUnmarshaling);
 
 void marshal_VkInputAttachmentAspectReference(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkInputAttachmentAspectReference* forMarshaling);
 
 void unmarshal_VkInputAttachmentAspectReference(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkInputAttachmentAspectReference* forUnmarshaling);
 
 void marshal_VkRenderPassInputAttachmentAspectCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkRenderPassInputAttachmentAspectCreateInfo* forMarshaling);
 
 void unmarshal_VkRenderPassInputAttachmentAspectCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkRenderPassInputAttachmentAspectCreateInfo* forUnmarshaling);
 
 void marshal_VkImageViewUsageCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageViewUsageCreateInfo* forMarshaling);
 
 void unmarshal_VkImageViewUsageCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageViewUsageCreateInfo* forUnmarshaling);
 
 void marshal_VkPipelineTessellationDomainOriginStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineTessellationDomainOriginStateCreateInfo* forMarshaling);
 
 void unmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineTessellationDomainOriginStateCreateInfo* forUnmarshaling);
 
 void marshal_VkRenderPassMultiviewCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkRenderPassMultiviewCreateInfo* forMarshaling);
 
 void unmarshal_VkRenderPassMultiviewCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkRenderPassMultiviewCreateInfo* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceMultiviewFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceMultiviewFeatures* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceMultiviewFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceMultiviewFeatures* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceMultiviewProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceMultiviewProperties* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceMultiviewProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceMultiviewProperties* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceVariablePointerFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceVariablePointerFeatures* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceVariablePointerFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceVariablePointerFeatures* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceProtectedMemoryFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceProtectedMemoryFeatures* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceProtectedMemoryFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceProtectedMemoryFeatures* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceProtectedMemoryProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceProtectedMemoryProperties* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceProtectedMemoryProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceProtectedMemoryProperties* forUnmarshaling);
 
 void marshal_VkDeviceQueueInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceQueueInfo2* forMarshaling);
 
 void unmarshal_VkDeviceQueueInfo2(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceQueueInfo2* forUnmarshaling);
 
 void marshal_VkProtectedSubmitInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkProtectedSubmitInfo* forMarshaling);
 
 void unmarshal_VkProtectedSubmitInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkProtectedSubmitInfo* forUnmarshaling);
 
 #define OP_vkGetDeviceQueue2 20155
 void marshal_VkSamplerYcbcrConversionCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSamplerYcbcrConversionCreateInfo* forMarshaling);
 
 void unmarshal_VkSamplerYcbcrConversionCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSamplerYcbcrConversionCreateInfo* forUnmarshaling);
 
 void marshal_VkSamplerYcbcrConversionInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSamplerYcbcrConversionInfo* forMarshaling);
 
 void unmarshal_VkSamplerYcbcrConversionInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSamplerYcbcrConversionInfo* forUnmarshaling);
 
 void marshal_VkBindImagePlaneMemoryInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBindImagePlaneMemoryInfo* forMarshaling);
 
 void unmarshal_VkBindImagePlaneMemoryInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBindImagePlaneMemoryInfo* forUnmarshaling);
 
 void marshal_VkImagePlaneMemoryRequirementsInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImagePlaneMemoryRequirementsInfo* forMarshaling);
 
 void unmarshal_VkImagePlaneMemoryRequirementsInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImagePlaneMemoryRequirementsInfo* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceSamplerYcbcrConversionFeatures* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceSamplerYcbcrConversionFeatures* forUnmarshaling);
 
 void marshal_VkSamplerYcbcrConversionImageFormatProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSamplerYcbcrConversionImageFormatProperties* forMarshaling);
 
 void unmarshal_VkSamplerYcbcrConversionImageFormatProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSamplerYcbcrConversionImageFormatProperties* forUnmarshaling);
 
 #define OP_vkCreateSamplerYcbcrConversion 20156
 #define OP_vkDestroySamplerYcbcrConversion 20157
 void marshal_VkDescriptorUpdateTemplateEntry(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorUpdateTemplateEntry* forMarshaling);
 
 void unmarshal_VkDescriptorUpdateTemplateEntry(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorUpdateTemplateEntry* forUnmarshaling);
 
 void marshal_VkDescriptorUpdateTemplateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorUpdateTemplateCreateInfo* forMarshaling);
 
 void unmarshal_VkDescriptorUpdateTemplateCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorUpdateTemplateCreateInfo* forUnmarshaling);
 
 #define OP_vkCreateDescriptorUpdateTemplate 20158
 #define OP_vkDestroyDescriptorUpdateTemplate 20159
 #define OP_vkUpdateDescriptorSetWithTemplate 20160
 void marshal_VkExternalMemoryProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExternalMemoryProperties* forMarshaling);
 
 void unmarshal_VkExternalMemoryProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExternalMemoryProperties* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceExternalImageFormatInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceExternalImageFormatInfo* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceExternalImageFormatInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceExternalImageFormatInfo* forUnmarshaling);
 
 void marshal_VkExternalImageFormatProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExternalImageFormatProperties* forMarshaling);
 
 void unmarshal_VkExternalImageFormatProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExternalImageFormatProperties* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceExternalBufferInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceExternalBufferInfo* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceExternalBufferInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceExternalBufferInfo* forUnmarshaling);
 
 void marshal_VkExternalBufferProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExternalBufferProperties* forMarshaling);
 
 void unmarshal_VkExternalBufferProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExternalBufferProperties* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceIDProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceIDProperties* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceIDProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceIDProperties* forUnmarshaling);
 
 #define OP_vkGetPhysicalDeviceExternalBufferProperties 20161
 void marshal_VkExternalMemoryImageCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExternalMemoryImageCreateInfo* forMarshaling);
 
 void unmarshal_VkExternalMemoryImageCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExternalMemoryImageCreateInfo* forUnmarshaling);
 
 void marshal_VkExternalMemoryBufferCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExternalMemoryBufferCreateInfo* forMarshaling);
 
 void unmarshal_VkExternalMemoryBufferCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExternalMemoryBufferCreateInfo* forUnmarshaling);
 
 void marshal_VkExportMemoryAllocateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExportMemoryAllocateInfo* forMarshaling);
 
 void unmarshal_VkExportMemoryAllocateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExportMemoryAllocateInfo* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceExternalFenceInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceExternalFenceInfo* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceExternalFenceInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceExternalFenceInfo* forUnmarshaling);
 
 void marshal_VkExternalFenceProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExternalFenceProperties* forMarshaling);
 
 void unmarshal_VkExternalFenceProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExternalFenceProperties* forUnmarshaling);
 
 #define OP_vkGetPhysicalDeviceExternalFenceProperties 20162
 void marshal_VkExportFenceCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExportFenceCreateInfo* forMarshaling);
 
 void unmarshal_VkExportFenceCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExportFenceCreateInfo* forUnmarshaling);
 
 void marshal_VkExportSemaphoreCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExportSemaphoreCreateInfo* forMarshaling);
 
 void unmarshal_VkExportSemaphoreCreateInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExportSemaphoreCreateInfo* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceExternalSemaphoreInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceExternalSemaphoreInfo* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceExternalSemaphoreInfo(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceExternalSemaphoreInfo* forUnmarshaling);
 
 void marshal_VkExternalSemaphoreProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExternalSemaphoreProperties* forMarshaling);
 
 void unmarshal_VkExternalSemaphoreProperties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExternalSemaphoreProperties* forUnmarshaling);
 
 #define OP_vkGetPhysicalDeviceExternalSemaphoreProperties 20163
 void marshal_VkPhysicalDeviceMaintenance3Properties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceMaintenance3Properties* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceMaintenance3Properties(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceMaintenance3Properties* forUnmarshaling);
 
 void marshal_VkDescriptorSetLayoutSupport(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorSetLayoutSupport* forMarshaling);
 
 void unmarshal_VkDescriptorSetLayoutSupport(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorSetLayoutSupport* forUnmarshaling);
 
 #define OP_vkGetDescriptorSetLayoutSupport 20164
 void marshal_VkPhysicalDeviceShaderDrawParameterFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceShaderDrawParameterFeatures* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceShaderDrawParameterFeatures(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceShaderDrawParameterFeatures* forUnmarshaling);
 
 #endif
@@ -1632,20 +1632,20 @@
 #define OP_vkDestroySurfaceKHR 20165
 #define OP_vkGetPhysicalDeviceSurfaceSupportKHR 20166
 void marshal_VkSurfaceCapabilitiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSurfaceCapabilitiesKHR* forMarshaling);
 
 void unmarshal_VkSurfaceCapabilitiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSurfaceCapabilitiesKHR* forUnmarshaling);
 
 #define OP_vkGetPhysicalDeviceSurfaceCapabilitiesKHR 20167
 void marshal_VkSurfaceFormatKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSurfaceFormatKHR* forMarshaling);
 
 void unmarshal_VkSurfaceFormatKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSurfaceFormatKHR* forUnmarshaling);
 
 #define OP_vkGetPhysicalDeviceSurfaceFormatsKHR 20168
@@ -1653,11 +1653,11 @@
 #endif
 #ifdef VK_KHR_swapchain
 void marshal_VkSwapchainCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSwapchainCreateInfoKHR* forMarshaling);
 
 void unmarshal_VkSwapchainCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSwapchainCreateInfoKHR* forUnmarshaling);
 
 #define OP_vkCreateSwapchainKHR 20170
@@ -1665,60 +1665,60 @@
 #define OP_vkGetSwapchainImagesKHR 20172
 #define OP_vkAcquireNextImageKHR 20173
 void marshal_VkPresentInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPresentInfoKHR* forMarshaling);
 
 void unmarshal_VkPresentInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPresentInfoKHR* forUnmarshaling);
 
 #define OP_vkQueuePresentKHR 20174
 void marshal_VkImageSwapchainCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageSwapchainCreateInfoKHR* forMarshaling);
 
 void unmarshal_VkImageSwapchainCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageSwapchainCreateInfoKHR* forUnmarshaling);
 
 void marshal_VkBindImageMemorySwapchainInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkBindImageMemorySwapchainInfoKHR* forMarshaling);
 
 void unmarshal_VkBindImageMemorySwapchainInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkBindImageMemorySwapchainInfoKHR* forUnmarshaling);
 
 void marshal_VkAcquireNextImageInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAcquireNextImageInfoKHR* forMarshaling);
 
 void unmarshal_VkAcquireNextImageInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAcquireNextImageInfoKHR* forUnmarshaling);
 
 void marshal_VkDeviceGroupPresentCapabilitiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceGroupPresentCapabilitiesKHR* forMarshaling);
 
 void unmarshal_VkDeviceGroupPresentCapabilitiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceGroupPresentCapabilitiesKHR* forUnmarshaling);
 
 void marshal_VkDeviceGroupPresentInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceGroupPresentInfoKHR* forMarshaling);
 
 void unmarshal_VkDeviceGroupPresentInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceGroupPresentInfoKHR* forUnmarshaling);
 
 void marshal_VkDeviceGroupSwapchainCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceGroupSwapchainCreateInfoKHR* forMarshaling);
 
 void unmarshal_VkDeviceGroupSwapchainCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceGroupSwapchainCreateInfoKHR* forUnmarshaling);
 
 #define OP_vkGetDeviceGroupPresentCapabilitiesKHR 20175
@@ -1728,59 +1728,59 @@
 #endif
 #ifdef VK_KHR_display
 void marshal_VkDisplayPropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayPropertiesKHR* forMarshaling);
 
 void unmarshal_VkDisplayPropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayPropertiesKHR* forUnmarshaling);
 
 void marshal_VkDisplayModeParametersKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayModeParametersKHR* forMarshaling);
 
 void unmarshal_VkDisplayModeParametersKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayModeParametersKHR* forUnmarshaling);
 
 void marshal_VkDisplayModePropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayModePropertiesKHR* forMarshaling);
 
 void unmarshal_VkDisplayModePropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayModePropertiesKHR* forUnmarshaling);
 
 void marshal_VkDisplayModeCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayModeCreateInfoKHR* forMarshaling);
 
 void unmarshal_VkDisplayModeCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayModeCreateInfoKHR* forUnmarshaling);
 
 void marshal_VkDisplayPlaneCapabilitiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayPlaneCapabilitiesKHR* forMarshaling);
 
 void unmarshal_VkDisplayPlaneCapabilitiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayPlaneCapabilitiesKHR* forUnmarshaling);
 
 void marshal_VkDisplayPlanePropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayPlanePropertiesKHR* forMarshaling);
 
 void unmarshal_VkDisplayPlanePropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayPlanePropertiesKHR* forUnmarshaling);
 
 void marshal_VkDisplaySurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplaySurfaceCreateInfoKHR* forMarshaling);
 
 void unmarshal_VkDisplaySurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplaySurfaceCreateInfoKHR* forUnmarshaling);
 
 #define OP_vkGetPhysicalDeviceDisplayPropertiesKHR 20179
@@ -1793,22 +1793,22 @@
 #endif
 #ifdef VK_KHR_display_swapchain
 void marshal_VkDisplayPresentInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayPresentInfoKHR* forMarshaling);
 
 void unmarshal_VkDisplayPresentInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayPresentInfoKHR* forUnmarshaling);
 
 #define OP_vkCreateSharedSwapchainsKHR 20186
 #endif
 #ifdef VK_KHR_xlib_surface
 void marshal_VkXlibSurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkXlibSurfaceCreateInfoKHR* forMarshaling);
 
 void unmarshal_VkXlibSurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkXlibSurfaceCreateInfoKHR* forUnmarshaling);
 
 #define OP_vkCreateXlibSurfaceKHR 20187
@@ -1816,11 +1816,11 @@
 #endif
 #ifdef VK_KHR_xcb_surface
 void marshal_VkXcbSurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkXcbSurfaceCreateInfoKHR* forMarshaling);
 
 void unmarshal_VkXcbSurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkXcbSurfaceCreateInfoKHR* forUnmarshaling);
 
 #define OP_vkCreateXcbSurfaceKHR 20189
@@ -1828,11 +1828,11 @@
 #endif
 #ifdef VK_KHR_wayland_surface
 void marshal_VkWaylandSurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkWaylandSurfaceCreateInfoKHR* forMarshaling);
 
 void unmarshal_VkWaylandSurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkWaylandSurfaceCreateInfoKHR* forUnmarshaling);
 
 #define OP_vkCreateWaylandSurfaceKHR 20191
@@ -1840,11 +1840,11 @@
 #endif
 #ifdef VK_KHR_mir_surface
 void marshal_VkMirSurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMirSurfaceCreateInfoKHR* forMarshaling);
 
 void unmarshal_VkMirSurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMirSurfaceCreateInfoKHR* forUnmarshaling);
 
 #define OP_vkCreateMirSurfaceKHR 20193
@@ -1852,22 +1852,22 @@
 #endif
 #ifdef VK_KHR_android_surface
 void marshal_VkAndroidSurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAndroidSurfaceCreateInfoKHR* forMarshaling);
 
 void unmarshal_VkAndroidSurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAndroidSurfaceCreateInfoKHR* forUnmarshaling);
 
 #define OP_vkCreateAndroidSurfaceKHR 20195
 #endif
 #ifdef VK_KHR_win32_surface
 void marshal_VkWin32SurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkWin32SurfaceCreateInfoKHR* forMarshaling);
 
 void unmarshal_VkWin32SurfaceCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkWin32SurfaceCreateInfoKHR* forUnmarshaling);
 
 #define OP_vkCreateWin32SurfaceKHR 20196
@@ -1906,35 +1906,35 @@
 #endif
 #ifdef VK_KHR_external_memory_win32
 void marshal_VkImportMemoryWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportMemoryWin32HandleInfoKHR* forMarshaling);
 
 void unmarshal_VkImportMemoryWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportMemoryWin32HandleInfoKHR* forUnmarshaling);
 
 void marshal_VkExportMemoryWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExportMemoryWin32HandleInfoKHR* forMarshaling);
 
 void unmarshal_VkExportMemoryWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExportMemoryWin32HandleInfoKHR* forUnmarshaling);
 
 void marshal_VkMemoryWin32HandlePropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryWin32HandlePropertiesKHR* forMarshaling);
 
 void unmarshal_VkMemoryWin32HandlePropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryWin32HandlePropertiesKHR* forUnmarshaling);
 
 void marshal_VkMemoryGetWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryGetWin32HandleInfoKHR* forMarshaling);
 
 void unmarshal_VkMemoryGetWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryGetWin32HandleInfoKHR* forUnmarshaling);
 
 #define OP_vkGetMemoryWin32HandleKHR 20211
@@ -1942,27 +1942,27 @@
 #endif
 #ifdef VK_KHR_external_memory_fd
 void marshal_VkImportMemoryFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportMemoryFdInfoKHR* forMarshaling);
 
 void unmarshal_VkImportMemoryFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportMemoryFdInfoKHR* forUnmarshaling);
 
 void marshal_VkMemoryFdPropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryFdPropertiesKHR* forMarshaling);
 
 void unmarshal_VkMemoryFdPropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryFdPropertiesKHR* forUnmarshaling);
 
 void marshal_VkMemoryGetFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryGetFdInfoKHR* forMarshaling);
 
 void unmarshal_VkMemoryGetFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryGetFdInfoKHR* forUnmarshaling);
 
 #define OP_vkGetMemoryFdKHR 20213
@@ -1970,11 +1970,11 @@
 #endif
 #ifdef VK_KHR_win32_keyed_mutex
 void marshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkWin32KeyedMutexAcquireReleaseInfoKHR* forMarshaling);
 
 void unmarshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkWin32KeyedMutexAcquireReleaseInfoKHR* forUnmarshaling);
 
 #endif
@@ -1985,35 +1985,35 @@
 #endif
 #ifdef VK_KHR_external_semaphore_win32
 void marshal_VkImportSemaphoreWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportSemaphoreWin32HandleInfoKHR* forMarshaling);
 
 void unmarshal_VkImportSemaphoreWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportSemaphoreWin32HandleInfoKHR* forUnmarshaling);
 
 void marshal_VkExportSemaphoreWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExportSemaphoreWin32HandleInfoKHR* forMarshaling);
 
 void unmarshal_VkExportSemaphoreWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExportSemaphoreWin32HandleInfoKHR* forUnmarshaling);
 
 void marshal_VkD3D12FenceSubmitInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkD3D12FenceSubmitInfoKHR* forMarshaling);
 
 void unmarshal_VkD3D12FenceSubmitInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkD3D12FenceSubmitInfoKHR* forUnmarshaling);
 
 void marshal_VkSemaphoreGetWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSemaphoreGetWin32HandleInfoKHR* forMarshaling);
 
 void unmarshal_VkSemaphoreGetWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSemaphoreGetWin32HandleInfoKHR* forUnmarshaling);
 
 #define OP_vkImportSemaphoreWin32HandleKHR 20216
@@ -2021,19 +2021,19 @@
 #endif
 #ifdef VK_KHR_external_semaphore_fd
 void marshal_VkImportSemaphoreFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportSemaphoreFdInfoKHR* forMarshaling);
 
 void unmarshal_VkImportSemaphoreFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportSemaphoreFdInfoKHR* forUnmarshaling);
 
 void marshal_VkSemaphoreGetFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSemaphoreGetFdInfoKHR* forMarshaling);
 
 void unmarshal_VkSemaphoreGetFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSemaphoreGetFdInfoKHR* forUnmarshaling);
 
 #define OP_vkImportSemaphoreFdKHR 20218
@@ -2041,11 +2041,11 @@
 #endif
 #ifdef VK_KHR_push_descriptor
 void marshal_VkPhysicalDevicePushDescriptorPropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDevicePushDescriptorPropertiesKHR* forMarshaling);
 
 void unmarshal_VkPhysicalDevicePushDescriptorPropertiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDevicePushDescriptorPropertiesKHR* forUnmarshaling);
 
 #define OP_vkCmdPushDescriptorSetKHR 20220
@@ -2055,27 +2055,27 @@
 #endif
 #ifdef VK_KHR_incremental_present
 void marshal_VkRectLayerKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkRectLayerKHR* forMarshaling);
 
 void unmarshal_VkRectLayerKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkRectLayerKHR* forUnmarshaling);
 
 void marshal_VkPresentRegionKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPresentRegionKHR* forMarshaling);
 
 void unmarshal_VkPresentRegionKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPresentRegionKHR* forUnmarshaling);
 
 void marshal_VkPresentRegionsKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPresentRegionsKHR* forMarshaling);
 
 void unmarshal_VkPresentRegionsKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPresentRegionsKHR* forUnmarshaling);
 
 #endif
@@ -2086,61 +2086,61 @@
 #endif
 #ifdef VK_KHR_create_renderpass2
 void marshal_VkAttachmentDescription2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAttachmentDescription2KHR* forMarshaling);
 
 void unmarshal_VkAttachmentDescription2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAttachmentDescription2KHR* forUnmarshaling);
 
 void marshal_VkAttachmentReference2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAttachmentReference2KHR* forMarshaling);
 
 void unmarshal_VkAttachmentReference2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAttachmentReference2KHR* forUnmarshaling);
 
 void marshal_VkSubpassDescription2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSubpassDescription2KHR* forMarshaling);
 
 void unmarshal_VkSubpassDescription2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSubpassDescription2KHR* forUnmarshaling);
 
 void marshal_VkSubpassDependency2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSubpassDependency2KHR* forMarshaling);
 
 void unmarshal_VkSubpassDependency2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSubpassDependency2KHR* forUnmarshaling);
 
 void marshal_VkRenderPassCreateInfo2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkRenderPassCreateInfo2KHR* forMarshaling);
 
 void unmarshal_VkRenderPassCreateInfo2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkRenderPassCreateInfo2KHR* forUnmarshaling);
 
 #define OP_vkCreateRenderPass2KHR 20225
 void marshal_VkSubpassBeginInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSubpassBeginInfoKHR* forMarshaling);
 
 void unmarshal_VkSubpassBeginInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSubpassBeginInfoKHR* forUnmarshaling);
 
 #define OP_vkCmdBeginRenderPass2KHR 20226
 void marshal_VkSubpassEndInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSubpassEndInfoKHR* forMarshaling);
 
 void unmarshal_VkSubpassEndInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSubpassEndInfoKHR* forUnmarshaling);
 
 #define OP_vkCmdNextSubpass2KHR 20227
@@ -2148,11 +2148,11 @@
 #endif
 #ifdef VK_KHR_shared_presentable_image
 void marshal_VkSharedPresentSurfaceCapabilitiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSharedPresentSurfaceCapabilitiesKHR* forMarshaling);
 
 void unmarshal_VkSharedPresentSurfaceCapabilitiesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSharedPresentSurfaceCapabilitiesKHR* forUnmarshaling);
 
 #define OP_vkGetSwapchainStatusKHR 20229
@@ -2164,27 +2164,27 @@
 #endif
 #ifdef VK_KHR_external_fence_win32
 void marshal_VkImportFenceWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportFenceWin32HandleInfoKHR* forMarshaling);
 
 void unmarshal_VkImportFenceWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportFenceWin32HandleInfoKHR* forUnmarshaling);
 
 void marshal_VkExportFenceWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExportFenceWin32HandleInfoKHR* forMarshaling);
 
 void unmarshal_VkExportFenceWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExportFenceWin32HandleInfoKHR* forUnmarshaling);
 
 void marshal_VkFenceGetWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkFenceGetWin32HandleInfoKHR* forMarshaling);
 
 void unmarshal_VkFenceGetWin32HandleInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkFenceGetWin32HandleInfoKHR* forUnmarshaling);
 
 #define OP_vkImportFenceWin32HandleKHR 20231
@@ -2192,19 +2192,19 @@
 #endif
 #ifdef VK_KHR_external_fence_fd
 void marshal_VkImportFenceFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportFenceFdInfoKHR* forMarshaling);
 
 void unmarshal_VkImportFenceFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportFenceFdInfoKHR* forUnmarshaling);
 
 void marshal_VkFenceGetFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkFenceGetFdInfoKHR* forMarshaling);
 
 void unmarshal_VkFenceGetFdInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkFenceGetFdInfoKHR* forUnmarshaling);
 
 #define OP_vkImportFenceFdKHR 20233
@@ -2214,27 +2214,27 @@
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
 void marshal_VkPhysicalDeviceSurfaceInfo2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceSurfaceInfo2KHR* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceSurfaceInfo2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceSurfaceInfo2KHR* forUnmarshaling);
 
 void marshal_VkSurfaceCapabilities2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSurfaceCapabilities2KHR* forMarshaling);
 
 void unmarshal_VkSurfaceCapabilities2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSurfaceCapabilities2KHR* forUnmarshaling);
 
 void marshal_VkSurfaceFormat2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSurfaceFormat2KHR* forMarshaling);
 
 void unmarshal_VkSurfaceFormat2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSurfaceFormat2KHR* forUnmarshaling);
 
 #define OP_vkGetPhysicalDeviceSurfaceCapabilities2KHR 20235
@@ -2244,43 +2244,43 @@
 #endif
 #ifdef VK_KHR_get_display_properties2
 void marshal_VkDisplayProperties2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayProperties2KHR* forMarshaling);
 
 void unmarshal_VkDisplayProperties2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayProperties2KHR* forUnmarshaling);
 
 void marshal_VkDisplayPlaneProperties2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayPlaneProperties2KHR* forMarshaling);
 
 void unmarshal_VkDisplayPlaneProperties2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayPlaneProperties2KHR* forUnmarshaling);
 
 void marshal_VkDisplayModeProperties2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayModeProperties2KHR* forMarshaling);
 
 void unmarshal_VkDisplayModeProperties2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayModeProperties2KHR* forUnmarshaling);
 
 void marshal_VkDisplayPlaneInfo2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayPlaneInfo2KHR* forMarshaling);
 
 void unmarshal_VkDisplayPlaneInfo2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayPlaneInfo2KHR* forUnmarshaling);
 
 void marshal_VkDisplayPlaneCapabilities2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayPlaneCapabilities2KHR* forMarshaling);
 
 void unmarshal_VkDisplayPlaneCapabilities2KHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayPlaneCapabilities2KHR* forUnmarshaling);
 
 #define OP_vkGetPhysicalDeviceDisplayProperties2KHR 20237
@@ -2301,11 +2301,11 @@
 #endif
 #ifdef VK_KHR_image_format_list
 void marshal_VkImageFormatListCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImageFormatListCreateInfoKHR* forMarshaling);
 
 void unmarshal_VkImageFormatListCreateInfoKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImageFormatListCreateInfoKHR* forUnmarshaling);
 
 #endif
@@ -2326,21 +2326,21 @@
 #endif
 #ifdef VK_KHR_8bit_storage
 void marshal_VkPhysicalDevice8BitStorageFeaturesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDevice8BitStorageFeaturesKHR* forMarshaling);
 
 void unmarshal_VkPhysicalDevice8BitStorageFeaturesKHR(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDevice8BitStorageFeaturesKHR* forUnmarshaling);
 
 #endif
 #ifdef VK_ANDROID_native_buffer
 void marshal_VkNativeBufferANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkNativeBufferANDROID* forMarshaling);
 
 void unmarshal_VkNativeBufferANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkNativeBufferANDROID* forUnmarshaling);
 
 #define OP_vkGetSwapchainGrallocUsageANDROID 20251
@@ -2349,11 +2349,11 @@
 #endif
 #ifdef VK_EXT_debug_report
 void marshal_VkDebugReportCallbackCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDebugReportCallbackCreateInfoEXT* forMarshaling);
 
 void unmarshal_VkDebugReportCallbackCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDebugReportCallbackCreateInfoEXT* forUnmarshaling);
 
 #define OP_vkCreateDebugReportCallbackEXT 20254
@@ -2368,11 +2368,11 @@
 #endif
 #ifdef VK_AMD_rasterization_order
 void marshal_VkPipelineRasterizationStateRasterizationOrderAMD(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineRasterizationStateRasterizationOrderAMD* forMarshaling);
 
 void unmarshal_VkPipelineRasterizationStateRasterizationOrderAMD(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineRasterizationStateRasterizationOrderAMD* forUnmarshaling);
 
 #endif
@@ -2382,27 +2382,27 @@
 #endif
 #ifdef VK_EXT_debug_marker
 void marshal_VkDebugMarkerObjectNameInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDebugMarkerObjectNameInfoEXT* forMarshaling);
 
 void unmarshal_VkDebugMarkerObjectNameInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDebugMarkerObjectNameInfoEXT* forUnmarshaling);
 
 void marshal_VkDebugMarkerObjectTagInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDebugMarkerObjectTagInfoEXT* forMarshaling);
 
 void unmarshal_VkDebugMarkerObjectTagInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDebugMarkerObjectTagInfoEXT* forUnmarshaling);
 
 void marshal_VkDebugMarkerMarkerInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDebugMarkerMarkerInfoEXT* forMarshaling);
 
 void unmarshal_VkDebugMarkerMarkerInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDebugMarkerMarkerInfoEXT* forUnmarshaling);
 
 #define OP_vkDebugMarkerSetObjectTagEXT 20257
@@ -2415,27 +2415,27 @@
 #endif
 #ifdef VK_NV_dedicated_allocation
 void marshal_VkDedicatedAllocationImageCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDedicatedAllocationImageCreateInfoNV* forMarshaling);
 
 void unmarshal_VkDedicatedAllocationImageCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDedicatedAllocationImageCreateInfoNV* forUnmarshaling);
 
 void marshal_VkDedicatedAllocationBufferCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDedicatedAllocationBufferCreateInfoNV* forMarshaling);
 
 void unmarshal_VkDedicatedAllocationBufferCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDedicatedAllocationBufferCreateInfoNV* forUnmarshaling);
 
 void marshal_VkDedicatedAllocationMemoryAllocateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDedicatedAllocationMemoryAllocateInfoNV* forMarshaling);
 
 void unmarshal_VkDedicatedAllocationMemoryAllocateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDedicatedAllocationMemoryAllocateInfoNV* forUnmarshaling);
 
 #endif
@@ -2451,29 +2451,29 @@
 #endif
 #ifdef VK_AMD_texture_gather_bias_lod
 void marshal_VkTextureLODGatherFormatPropertiesAMD(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkTextureLODGatherFormatPropertiesAMD* forMarshaling);
 
 void unmarshal_VkTextureLODGatherFormatPropertiesAMD(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkTextureLODGatherFormatPropertiesAMD* forUnmarshaling);
 
 #endif
 #ifdef VK_AMD_shader_info
 void marshal_VkShaderResourceUsageAMD(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkShaderResourceUsageAMD* forMarshaling);
 
 void unmarshal_VkShaderResourceUsageAMD(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkShaderResourceUsageAMD* forUnmarshaling);
 
 void marshal_VkShaderStatisticsInfoAMD(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkShaderStatisticsInfoAMD* forMarshaling);
 
 void unmarshal_VkShaderStatisticsInfoAMD(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkShaderStatisticsInfoAMD* forUnmarshaling);
 
 #define OP_vkGetShaderInfoAMD 20264
@@ -2484,79 +2484,79 @@
 #endif
 #ifdef VK_NV_external_memory_capabilities
 void marshal_VkExternalImageFormatPropertiesNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExternalImageFormatPropertiesNV* forMarshaling);
 
 void unmarshal_VkExternalImageFormatPropertiesNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExternalImageFormatPropertiesNV* forUnmarshaling);
 
 #define OP_vkGetPhysicalDeviceExternalImageFormatPropertiesNV 20265
 #endif
 #ifdef VK_NV_external_memory
 void marshal_VkExternalMemoryImageCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExternalMemoryImageCreateInfoNV* forMarshaling);
 
 void unmarshal_VkExternalMemoryImageCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExternalMemoryImageCreateInfoNV* forUnmarshaling);
 
 void marshal_VkExportMemoryAllocateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExportMemoryAllocateInfoNV* forMarshaling);
 
 void unmarshal_VkExportMemoryAllocateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExportMemoryAllocateInfoNV* forUnmarshaling);
 
 #endif
 #ifdef VK_NV_external_memory_win32
 void marshal_VkImportMemoryWin32HandleInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportMemoryWin32HandleInfoNV* forMarshaling);
 
 void unmarshal_VkImportMemoryWin32HandleInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportMemoryWin32HandleInfoNV* forUnmarshaling);
 
 void marshal_VkExportMemoryWin32HandleInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExportMemoryWin32HandleInfoNV* forMarshaling);
 
 void unmarshal_VkExportMemoryWin32HandleInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExportMemoryWin32HandleInfoNV* forUnmarshaling);
 
 #define OP_vkGetMemoryWin32HandleNV 20266
 #endif
 #ifdef VK_NV_win32_keyed_mutex
 void marshal_VkWin32KeyedMutexAcquireReleaseInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkWin32KeyedMutexAcquireReleaseInfoNV* forMarshaling);
 
 void unmarshal_VkWin32KeyedMutexAcquireReleaseInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkWin32KeyedMutexAcquireReleaseInfoNV* forUnmarshaling);
 
 #endif
 #ifdef VK_EXT_validation_flags
 void marshal_VkValidationFlagsEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkValidationFlagsEXT* forMarshaling);
 
 void unmarshal_VkValidationFlagsEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkValidationFlagsEXT* forUnmarshaling);
 
 #endif
 #ifdef VK_NN_vi_surface
 void marshal_VkViSurfaceCreateInfoNN(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkViSurfaceCreateInfoNN* forMarshaling);
 
 void unmarshal_VkViSurfaceCreateInfoNN(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkViSurfaceCreateInfoNN* forUnmarshaling);
 
 #define OP_vkCreateViSurfaceNN 20267
@@ -2567,27 +2567,27 @@
 #endif
 #ifdef VK_EXT_conditional_rendering
 void marshal_VkConditionalRenderingBeginInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkConditionalRenderingBeginInfoEXT* forMarshaling);
 
 void unmarshal_VkConditionalRenderingBeginInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkConditionalRenderingBeginInfoEXT* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceConditionalRenderingFeaturesEXT* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceConditionalRenderingFeaturesEXT* forUnmarshaling);
 
 void marshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkCommandBufferInheritanceConditionalRenderingInfoEXT* forMarshaling);
 
 void unmarshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkCommandBufferInheritanceConditionalRenderingInfoEXT* forUnmarshaling);
 
 #define OP_vkCmdBeginConditionalRenderingEXT 20268
@@ -2595,115 +2595,115 @@
 #endif
 #ifdef VK_NVX_device_generated_commands
 void marshal_VkDeviceGeneratedCommandsFeaturesNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceGeneratedCommandsFeaturesNVX* forMarshaling);
 
 void unmarshal_VkDeviceGeneratedCommandsFeaturesNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceGeneratedCommandsFeaturesNVX* forUnmarshaling);
 
 void marshal_VkDeviceGeneratedCommandsLimitsNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceGeneratedCommandsLimitsNVX* forMarshaling);
 
 void unmarshal_VkDeviceGeneratedCommandsLimitsNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceGeneratedCommandsLimitsNVX* forUnmarshaling);
 
 void marshal_VkIndirectCommandsTokenNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkIndirectCommandsTokenNVX* forMarshaling);
 
 void unmarshal_VkIndirectCommandsTokenNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkIndirectCommandsTokenNVX* forUnmarshaling);
 
 void marshal_VkIndirectCommandsLayoutTokenNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkIndirectCommandsLayoutTokenNVX* forMarshaling);
 
 void unmarshal_VkIndirectCommandsLayoutTokenNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkIndirectCommandsLayoutTokenNVX* forUnmarshaling);
 
 void marshal_VkIndirectCommandsLayoutCreateInfoNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkIndirectCommandsLayoutCreateInfoNVX* forMarshaling);
 
 void unmarshal_VkIndirectCommandsLayoutCreateInfoNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkIndirectCommandsLayoutCreateInfoNVX* forUnmarshaling);
 
 void marshal_VkCmdProcessCommandsInfoNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkCmdProcessCommandsInfoNVX* forMarshaling);
 
 void unmarshal_VkCmdProcessCommandsInfoNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkCmdProcessCommandsInfoNVX* forUnmarshaling);
 
 void marshal_VkCmdReserveSpaceForCommandsInfoNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkCmdReserveSpaceForCommandsInfoNVX* forMarshaling);
 
 void unmarshal_VkCmdReserveSpaceForCommandsInfoNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkCmdReserveSpaceForCommandsInfoNVX* forUnmarshaling);
 
 void marshal_VkObjectTableCreateInfoNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkObjectTableCreateInfoNVX* forMarshaling);
 
 void unmarshal_VkObjectTableCreateInfoNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkObjectTableCreateInfoNVX* forUnmarshaling);
 
 void marshal_VkObjectTableEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkObjectTableEntryNVX* forMarshaling);
 
 void unmarshal_VkObjectTableEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkObjectTableEntryNVX* forUnmarshaling);
 
 void marshal_VkObjectTablePipelineEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkObjectTablePipelineEntryNVX* forMarshaling);
 
 void unmarshal_VkObjectTablePipelineEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkObjectTablePipelineEntryNVX* forUnmarshaling);
 
 void marshal_VkObjectTableDescriptorSetEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkObjectTableDescriptorSetEntryNVX* forMarshaling);
 
 void unmarshal_VkObjectTableDescriptorSetEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkObjectTableDescriptorSetEntryNVX* forUnmarshaling);
 
 void marshal_VkObjectTableVertexBufferEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkObjectTableVertexBufferEntryNVX* forMarshaling);
 
 void unmarshal_VkObjectTableVertexBufferEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkObjectTableVertexBufferEntryNVX* forUnmarshaling);
 
 void marshal_VkObjectTableIndexBufferEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkObjectTableIndexBufferEntryNVX* forMarshaling);
 
 void unmarshal_VkObjectTableIndexBufferEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkObjectTableIndexBufferEntryNVX* forUnmarshaling);
 
 void marshal_VkObjectTablePushConstantEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkObjectTablePushConstantEntryNVX* forMarshaling);
 
 void unmarshal_VkObjectTablePushConstantEntryNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkObjectTablePushConstantEntryNVX* forUnmarshaling);
 
 #define OP_vkCmdProcessCommandsNVX 20270
@@ -2718,19 +2718,19 @@
 #endif
 #ifdef VK_NV_clip_space_w_scaling
 void marshal_VkViewportWScalingNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkViewportWScalingNV* forMarshaling);
 
 void unmarshal_VkViewportWScalingNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkViewportWScalingNV* forUnmarshaling);
 
 void marshal_VkPipelineViewportWScalingStateCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineViewportWScalingStateCreateInfoNV* forMarshaling);
 
 void unmarshal_VkPipelineViewportWScalingStateCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineViewportWScalingStateCreateInfoNV* forUnmarshaling);
 
 #define OP_vkCmdSetViewportWScalingNV 20279
@@ -2744,46 +2744,46 @@
 #endif
 #ifdef VK_EXT_display_surface_counter
 void marshal_VkSurfaceCapabilities2EXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSurfaceCapabilities2EXT* forMarshaling);
 
 void unmarshal_VkSurfaceCapabilities2EXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSurfaceCapabilities2EXT* forUnmarshaling);
 
 #define OP_vkGetPhysicalDeviceSurfaceCapabilities2EXT 20283
 #endif
 #ifdef VK_EXT_display_control
 void marshal_VkDisplayPowerInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayPowerInfoEXT* forMarshaling);
 
 void unmarshal_VkDisplayPowerInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayPowerInfoEXT* forUnmarshaling);
 
 void marshal_VkDeviceEventInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceEventInfoEXT* forMarshaling);
 
 void unmarshal_VkDeviceEventInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceEventInfoEXT* forUnmarshaling);
 
 void marshal_VkDisplayEventInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDisplayEventInfoEXT* forMarshaling);
 
 void unmarshal_VkDisplayEventInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDisplayEventInfoEXT* forUnmarshaling);
 
 void marshal_VkSwapchainCounterCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSwapchainCounterCreateInfoEXT* forMarshaling);
 
 void unmarshal_VkSwapchainCounterCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSwapchainCounterCreateInfoEXT* forUnmarshaling);
 
 #define OP_vkDisplayPowerControlEXT 20284
@@ -2793,35 +2793,35 @@
 #endif
 #ifdef VK_GOOGLE_display_timing
 void marshal_VkRefreshCycleDurationGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkRefreshCycleDurationGOOGLE* forMarshaling);
 
 void unmarshal_VkRefreshCycleDurationGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkRefreshCycleDurationGOOGLE* forUnmarshaling);
 
 void marshal_VkPastPresentationTimingGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPastPresentationTimingGOOGLE* forMarshaling);
 
 void unmarshal_VkPastPresentationTimingGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPastPresentationTimingGOOGLE* forUnmarshaling);
 
 void marshal_VkPresentTimeGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPresentTimeGOOGLE* forMarshaling);
 
 void unmarshal_VkPresentTimeGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPresentTimeGOOGLE* forUnmarshaling);
 
 void marshal_VkPresentTimesInfoGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPresentTimesInfoGOOGLE* forMarshaling);
 
 void unmarshal_VkPresentTimesInfoGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPresentTimesInfoGOOGLE* forUnmarshaling);
 
 #define OP_vkGetRefreshCycleDurationGOOGLE 20288
@@ -2835,66 +2835,66 @@
 #endif
 #ifdef VK_NVX_multiview_per_view_attributes
 void marshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* forUnmarshaling);
 
 #endif
 #ifdef VK_NV_viewport_swizzle
 void marshal_VkViewportSwizzleNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkViewportSwizzleNV* forMarshaling);
 
 void unmarshal_VkViewportSwizzleNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkViewportSwizzleNV* forUnmarshaling);
 
 void marshal_VkPipelineViewportSwizzleStateCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineViewportSwizzleStateCreateInfoNV* forMarshaling);
 
 void unmarshal_VkPipelineViewportSwizzleStateCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineViewportSwizzleStateCreateInfoNV* forUnmarshaling);
 
 #endif
 #ifdef VK_EXT_discard_rectangles
 void marshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceDiscardRectanglePropertiesEXT* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceDiscardRectanglePropertiesEXT* forUnmarshaling);
 
 void marshal_VkPipelineDiscardRectangleStateCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineDiscardRectangleStateCreateInfoEXT* forMarshaling);
 
 void unmarshal_VkPipelineDiscardRectangleStateCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineDiscardRectangleStateCreateInfoEXT* forUnmarshaling);
 
 #define OP_vkCmdSetDiscardRectangleEXT 20290
 #endif
 #ifdef VK_EXT_conservative_rasterization
 void marshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceConservativeRasterizationPropertiesEXT* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceConservativeRasterizationPropertiesEXT* forUnmarshaling);
 
 void marshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineRasterizationConservativeStateCreateInfoEXT* forMarshaling);
 
 void unmarshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineRasterizationConservativeStateCreateInfoEXT* forUnmarshaling);
 
 #endif
@@ -2902,41 +2902,41 @@
 #endif
 #ifdef VK_EXT_hdr_metadata
 void marshal_VkXYColorEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkXYColorEXT* forMarshaling);
 
 void unmarshal_VkXYColorEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkXYColorEXT* forUnmarshaling);
 
 void marshal_VkHdrMetadataEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkHdrMetadataEXT* forMarshaling);
 
 void unmarshal_VkHdrMetadataEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkHdrMetadataEXT* forUnmarshaling);
 
 #define OP_vkSetHdrMetadataEXT 20291
 #endif
 #ifdef VK_MVK_ios_surface
 void marshal_VkIOSSurfaceCreateInfoMVK(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkIOSSurfaceCreateInfoMVK* forMarshaling);
 
 void unmarshal_VkIOSSurfaceCreateInfoMVK(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkIOSSurfaceCreateInfoMVK* forUnmarshaling);
 
 #define OP_vkCreateIOSSurfaceMVK 20292
 #endif
 #ifdef VK_MVK_macos_surface
 void marshal_VkMacOSSurfaceCreateInfoMVK(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMacOSSurfaceCreateInfoMVK* forMarshaling);
 
 void unmarshal_VkMacOSSurfaceCreateInfoMVK(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMacOSSurfaceCreateInfoMVK* forUnmarshaling);
 
 #define OP_vkCreateMacOSSurfaceMVK 20293
@@ -2947,43 +2947,43 @@
 #endif
 #ifdef VK_EXT_debug_utils
 void marshal_VkDebugUtilsObjectNameInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDebugUtilsObjectNameInfoEXT* forMarshaling);
 
 void unmarshal_VkDebugUtilsObjectNameInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDebugUtilsObjectNameInfoEXT* forUnmarshaling);
 
 void marshal_VkDebugUtilsObjectTagInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDebugUtilsObjectTagInfoEXT* forMarshaling);
 
 void unmarshal_VkDebugUtilsObjectTagInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDebugUtilsObjectTagInfoEXT* forUnmarshaling);
 
 void marshal_VkDebugUtilsLabelEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDebugUtilsLabelEXT* forMarshaling);
 
 void unmarshal_VkDebugUtilsLabelEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDebugUtilsLabelEXT* forUnmarshaling);
 
 void marshal_VkDebugUtilsMessengerCallbackDataEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDebugUtilsMessengerCallbackDataEXT* forMarshaling);
 
 void unmarshal_VkDebugUtilsMessengerCallbackDataEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDebugUtilsMessengerCallbackDataEXT* forUnmarshaling);
 
 void marshal_VkDebugUtilsMessengerCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDebugUtilsMessengerCreateInfoEXT* forMarshaling);
 
 void unmarshal_VkDebugUtilsMessengerCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDebugUtilsMessengerCreateInfoEXT* forUnmarshaling);
 
 #define OP_vkSetDebugUtilsObjectNameEXT 20294
@@ -3000,51 +3000,51 @@
 #endif
 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
 void marshal_VkAndroidHardwareBufferUsageANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAndroidHardwareBufferUsageANDROID* forMarshaling);
 
 void unmarshal_VkAndroidHardwareBufferUsageANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAndroidHardwareBufferUsageANDROID* forUnmarshaling);
 
 void marshal_VkAndroidHardwareBufferPropertiesANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAndroidHardwareBufferPropertiesANDROID* forMarshaling);
 
 void unmarshal_VkAndroidHardwareBufferPropertiesANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAndroidHardwareBufferPropertiesANDROID* forUnmarshaling);
 
 void marshal_VkAndroidHardwareBufferFormatPropertiesANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAndroidHardwareBufferFormatPropertiesANDROID* forMarshaling);
 
 void unmarshal_VkAndroidHardwareBufferFormatPropertiesANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAndroidHardwareBufferFormatPropertiesANDROID* forUnmarshaling);
 
 void marshal_VkImportAndroidHardwareBufferInfoANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportAndroidHardwareBufferInfoANDROID* forMarshaling);
 
 void unmarshal_VkImportAndroidHardwareBufferInfoANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportAndroidHardwareBufferInfoANDROID* forUnmarshaling);
 
 void marshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryGetAndroidHardwareBufferInfoANDROID* forMarshaling);
 
 void unmarshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryGetAndroidHardwareBufferInfoANDROID* forUnmarshaling);
 
 void marshal_VkExternalFormatANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkExternalFormatANDROID* forMarshaling);
 
 void unmarshal_VkExternalFormatANDROID(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkExternalFormatANDROID* forUnmarshaling);
 
 #define OP_vkGetAndroidHardwareBufferPropertiesANDROID 20305
@@ -3052,19 +3052,19 @@
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
 void marshal_VkSamplerReductionModeCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSamplerReductionModeCreateInfoEXT* forMarshaling);
 
 void unmarshal_VkSamplerReductionModeCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSamplerReductionModeCreateInfoEXT* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* forUnmarshaling);
 
 #endif
@@ -3078,67 +3078,67 @@
 #endif
 #ifdef VK_EXT_sample_locations
 void marshal_VkSampleLocationEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSampleLocationEXT* forMarshaling);
 
 void unmarshal_VkSampleLocationEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSampleLocationEXT* forUnmarshaling);
 
 void marshal_VkSampleLocationsInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSampleLocationsInfoEXT* forMarshaling);
 
 void unmarshal_VkSampleLocationsInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSampleLocationsInfoEXT* forUnmarshaling);
 
 void marshal_VkAttachmentSampleLocationsEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkAttachmentSampleLocationsEXT* forMarshaling);
 
 void unmarshal_VkAttachmentSampleLocationsEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkAttachmentSampleLocationsEXT* forUnmarshaling);
 
 void marshal_VkSubpassSampleLocationsEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkSubpassSampleLocationsEXT* forMarshaling);
 
 void unmarshal_VkSubpassSampleLocationsEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkSubpassSampleLocationsEXT* forUnmarshaling);
 
 void marshal_VkRenderPassSampleLocationsBeginInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkRenderPassSampleLocationsBeginInfoEXT* forMarshaling);
 
 void unmarshal_VkRenderPassSampleLocationsBeginInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkRenderPassSampleLocationsBeginInfoEXT* forUnmarshaling);
 
 void marshal_VkPipelineSampleLocationsStateCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineSampleLocationsStateCreateInfoEXT* forMarshaling);
 
 void unmarshal_VkPipelineSampleLocationsStateCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineSampleLocationsStateCreateInfoEXT* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceSampleLocationsPropertiesEXT* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceSampleLocationsPropertiesEXT* forUnmarshaling);
 
 void marshal_VkMultisamplePropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMultisamplePropertiesEXT* forMarshaling);
 
 void unmarshal_VkMultisamplePropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMultisamplePropertiesEXT* forUnmarshaling);
 
 #define OP_vkCmdSetSampleLocationsEXT 20307
@@ -3146,47 +3146,47 @@
 #endif
 #ifdef VK_EXT_blend_operation_advanced
 void marshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* forUnmarshaling);
 
 void marshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineColorBlendAdvancedStateCreateInfoEXT* forMarshaling);
 
 void unmarshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineColorBlendAdvancedStateCreateInfoEXT* forUnmarshaling);
 
 #endif
 #ifdef VK_NV_fragment_coverage_to_color
 void marshal_VkPipelineCoverageToColorStateCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineCoverageToColorStateCreateInfoNV* forMarshaling);
 
 void unmarshal_VkPipelineCoverageToColorStateCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineCoverageToColorStateCreateInfoNV* forUnmarshaling);
 
 #endif
 #ifdef VK_NV_framebuffer_mixed_samples
 void marshal_VkPipelineCoverageModulationStateCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineCoverageModulationStateCreateInfoNV* forMarshaling);
 
 void unmarshal_VkPipelineCoverageModulationStateCreateInfoNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineCoverageModulationStateCreateInfoNV* forUnmarshaling);
 
 #endif
@@ -3196,19 +3196,19 @@
 #endif
 #ifdef VK_EXT_validation_cache
 void marshal_VkValidationCacheCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkValidationCacheCreateInfoEXT* forMarshaling);
 
 void unmarshal_VkValidationCacheCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkValidationCacheCreateInfoEXT* forUnmarshaling);
 
 void marshal_VkShaderModuleValidationCacheCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkShaderModuleValidationCacheCreateInfoEXT* forMarshaling);
 
 void unmarshal_VkShaderModuleValidationCacheCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkShaderModuleValidationCacheCreateInfoEXT* forUnmarshaling);
 
 #define OP_vkCreateValidationCacheEXT 20309
@@ -3218,43 +3218,43 @@
 #endif
 #ifdef VK_EXT_descriptor_indexing
 void marshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* forMarshaling);
 
 void unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceDescriptorIndexingFeaturesEXT* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceDescriptorIndexingFeaturesEXT* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceDescriptorIndexingPropertiesEXT* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceDescriptorIndexingPropertiesEXT* forUnmarshaling);
 
 void marshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* forMarshaling);
 
 void unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* forUnmarshaling);
 
 void marshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* forMarshaling);
 
 void unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* forUnmarshaling);
 
 #endif
@@ -3262,37 +3262,37 @@
 #endif
 #ifdef VK_EXT_global_priority
 void marshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkDeviceQueueGlobalPriorityCreateInfoEXT* forMarshaling);
 
 void unmarshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkDeviceQueueGlobalPriorityCreateInfoEXT* forUnmarshaling);
 
 #endif
 #ifdef VK_EXT_external_memory_host
 void marshal_VkImportMemoryHostPointerInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportMemoryHostPointerInfoEXT* forMarshaling);
 
 void unmarshal_VkImportMemoryHostPointerInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportMemoryHostPointerInfoEXT* forUnmarshaling);
 
 void marshal_VkMemoryHostPointerPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkMemoryHostPointerPropertiesEXT* forMarshaling);
 
 void unmarshal_VkMemoryHostPointerPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkMemoryHostPointerPropertiesEXT* forUnmarshaling);
 
 void marshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceExternalMemoryHostPropertiesEXT* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceExternalMemoryHostPropertiesEXT* forUnmarshaling);
 
 #define OP_vkGetMemoryHostPointerPropertiesEXT 20313
@@ -3302,37 +3302,37 @@
 #endif
 #ifdef VK_AMD_shader_core_properties
 void marshal_VkPhysicalDeviceShaderCorePropertiesAMD(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceShaderCorePropertiesAMD* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceShaderCorePropertiesAMD(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceShaderCorePropertiesAMD* forUnmarshaling);
 
 #endif
 #ifdef VK_EXT_vertex_attribute_divisor
 void marshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* forMarshaling);
 
 void unmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* forUnmarshaling);
 
 void marshal_VkVertexInputBindingDivisorDescriptionEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkVertexInputBindingDivisorDescriptionEXT* forMarshaling);
 
 void unmarshal_VkVertexInputBindingDivisorDescriptionEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkVertexInputBindingDivisorDescriptionEXT* forUnmarshaling);
 
 void marshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkPipelineVertexInputDivisorStateCreateInfoEXT* forMarshaling);
 
 void unmarshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkPipelineVertexInputDivisorStateCreateInfoEXT* forUnmarshaling);
 
 #endif
@@ -3340,19 +3340,19 @@
 #endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 void marshal_VkQueueFamilyCheckpointPropertiesNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkQueueFamilyCheckpointPropertiesNV* forMarshaling);
 
 void unmarshal_VkQueueFamilyCheckpointPropertiesNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkQueueFamilyCheckpointPropertiesNV* forUnmarshaling);
 
 void marshal_VkCheckpointDataNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkCheckpointDataNV* forMarshaling);
 
 void unmarshal_VkCheckpointDataNV(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkCheckpointDataNV* forUnmarshaling);
 
 #define OP_vkCmdSetCheckpointNV 20315
@@ -3363,19 +3363,19 @@
 #endif
 #ifdef VK_GOOGLE_color_buffer
 void marshal_VkImportColorBufferGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportColorBufferGOOGLE* forMarshaling);
 
 void unmarshal_VkImportColorBufferGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportColorBufferGOOGLE* forUnmarshaling);
 
 void marshal_VkImportPhysicalAddressGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     const VkImportPhysicalAddressGOOGLE* forMarshaling);
 
 void unmarshal_VkImportPhysicalAddressGOOGLE(
-    VulkanStream* vkStream,
+    VulkanStreamGuest* vkStream,
     VkImportPhysicalAddressGOOGLE* forUnmarshaling);
 
 #define OP_vkRegisterImageColorBufferGOOGLE 20318