// Copyright (C) 2018 The Android Open Source Project
// Copyright (C) 2018 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Autogenerated module goldfish_vk_marshaling
// (header) generated by ../protocols/vk-gen/xml/genvk.py -registry ../protocols/vk-gen/xml/vk.xml cereal -o ../stream-servers/vulkan/cereal
// Please do not modify directly;
// re-run generate-vulkan-sources.sh,
// or directly from Python by defining:
// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR

#pragma once

#include <vulkan/vulkan.h>


#include "goldfish_vk_private_defs.h"

#include "VulkanStream.h"
#include "base/StreamSerializing.h"


namespace goldfish_vk {

#ifdef VK_VERSION_1_0
void marshal_VkApplicationInfo(
    VulkanStream* vkStream,
    const VkApplicationInfo* forMarshaling);

void unmarshal_VkApplicationInfo(
    VulkanStream* vkStream,
    VkApplicationInfo* forUnmarshaling);

void marshal_VkInstanceCreateInfo(
    VulkanStream* vkStream,
    const VkInstanceCreateInfo* forMarshaling);

void unmarshal_VkInstanceCreateInfo(
    VulkanStream* vkStream,
    VkInstanceCreateInfo* forUnmarshaling);

void marshal_VkAllocationCallbacks(
    VulkanStream* vkStream,
    const VkAllocationCallbacks* forMarshaling);

void unmarshal_VkAllocationCallbacks(
    VulkanStream* vkStream,
    VkAllocationCallbacks* forUnmarshaling);

#define OP_vkCreateInstance 20000
#define OP_vkDestroyInstance 20001
#define OP_vkEnumeratePhysicalDevices 20002
void marshal_VkPhysicalDeviceFeatures(
    VulkanStream* vkStream,
    const VkPhysicalDeviceFeatures* forMarshaling);

void unmarshal_VkPhysicalDeviceFeatures(
    VulkanStream* vkStream,
    VkPhysicalDeviceFeatures* forUnmarshaling);

#define OP_vkGetPhysicalDeviceFeatures 20003
void marshal_VkFormatProperties(
    VulkanStream* vkStream,
    const VkFormatProperties* forMarshaling);

void unmarshal_VkFormatProperties(
    VulkanStream* vkStream,
    VkFormatProperties* forUnmarshaling);

#define OP_vkGetPhysicalDeviceFormatProperties 20004
void marshal_VkExtent3D(
    VulkanStream* vkStream,
    const VkExtent3D* forMarshaling);

void unmarshal_VkExtent3D(
    VulkanStream* vkStream,
    VkExtent3D* forUnmarshaling);

void marshal_VkImageFormatProperties(
    VulkanStream* vkStream,
    const VkImageFormatProperties* forMarshaling);

void unmarshal_VkImageFormatProperties(
    VulkanStream* vkStream,
    VkImageFormatProperties* forUnmarshaling);

#define OP_vkGetPhysicalDeviceImageFormatProperties 20005
void marshal_VkPhysicalDeviceLimits(
    VulkanStream* vkStream,
    const VkPhysicalDeviceLimits* forMarshaling);

void unmarshal_VkPhysicalDeviceLimits(
    VulkanStream* vkStream,
    VkPhysicalDeviceLimits* forUnmarshaling);

void marshal_VkPhysicalDeviceSparseProperties(
    VulkanStream* vkStream,
    const VkPhysicalDeviceSparseProperties* forMarshaling);

void unmarshal_VkPhysicalDeviceSparseProperties(
    VulkanStream* vkStream,
    VkPhysicalDeviceSparseProperties* forUnmarshaling);

void marshal_VkPhysicalDeviceProperties(
    VulkanStream* vkStream,
    const VkPhysicalDeviceProperties* forMarshaling);

void unmarshal_VkPhysicalDeviceProperties(
    VulkanStream* vkStream,
    VkPhysicalDeviceProperties* forUnmarshaling);

#define OP_vkGetPhysicalDeviceProperties 20006
void marshal_VkQueueFamilyProperties(
    VulkanStream* vkStream,
    const VkQueueFamilyProperties* forMarshaling);

void unmarshal_VkQueueFamilyProperties(
    VulkanStream* vkStream,
    VkQueueFamilyProperties* forUnmarshaling);

#define OP_vkGetPhysicalDeviceQueueFamilyProperties 20007
void marshal_VkMemoryType(
    VulkanStream* vkStream,
    const VkMemoryType* forMarshaling);

void unmarshal_VkMemoryType(
    VulkanStream* vkStream,
    VkMemoryType* forUnmarshaling);

void marshal_VkMemoryHeap(
    VulkanStream* vkStream,
    const VkMemoryHeap* forMarshaling);

void unmarshal_VkMemoryHeap(
    VulkanStream* vkStream,
    VkMemoryHeap* forUnmarshaling);

void marshal_VkPhysicalDeviceMemoryProperties(
    VulkanStream* vkStream,
    const VkPhysicalDeviceMemoryProperties* forMarshaling);

void unmarshal_VkPhysicalDeviceMemoryProperties(
    VulkanStream* vkStream,
    VkPhysicalDeviceMemoryProperties* forUnmarshaling);

#define OP_vkGetPhysicalDeviceMemoryProperties 20008
#define OP_vkGetInstanceProcAddr 20009
#define OP_vkGetDeviceProcAddr 20010
void marshal_VkDeviceQueueCreateInfo(
    VulkanStream* vkStream,
    const VkDeviceQueueCreateInfo* forMarshaling);

void unmarshal_VkDeviceQueueCreateInfo(
    VulkanStream* vkStream,
    VkDeviceQueueCreateInfo* forUnmarshaling);

void marshal_VkDeviceCreateInfo(
    VulkanStream* vkStream,
    const VkDeviceCreateInfo* forMarshaling);

void unmarshal_VkDeviceCreateInfo(
    VulkanStream* vkStream,
    VkDeviceCreateInfo* forUnmarshaling);

#define OP_vkCreateDevice 20011
#define OP_vkDestroyDevice 20012
void marshal_VkExtensionProperties(
    VulkanStream* vkStream,
    const VkExtensionProperties* forMarshaling);

void unmarshal_VkExtensionProperties(
    VulkanStream* vkStream,
    VkExtensionProperties* forUnmarshaling);

#define OP_vkEnumerateInstanceExtensionProperties 20013
#define OP_vkEnumerateDeviceExtensionProperties 20014
void marshal_VkLayerProperties(
    VulkanStream* vkStream,
    const VkLayerProperties* forMarshaling);

void unmarshal_VkLayerProperties(
    VulkanStream* vkStream,
    VkLayerProperties* forUnmarshaling);

#define OP_vkEnumerateInstanceLayerProperties 20015
#define OP_vkEnumerateDeviceLayerProperties 20016
#define OP_vkGetDeviceQueue 20017
void marshal_VkSubmitInfo(
    VulkanStream* vkStream,
    const VkSubmitInfo* forMarshaling);

void unmarshal_VkSubmitInfo(
    VulkanStream* vkStream,
    VkSubmitInfo* forUnmarshaling);

#define OP_vkQueueSubmit 20018
#define OP_vkQueueWaitIdle 20019
#define OP_vkDeviceWaitIdle 20020
void marshal_VkMemoryAllocateInfo(
    VulkanStream* vkStream,
    const VkMemoryAllocateInfo* forMarshaling);

void unmarshal_VkMemoryAllocateInfo(
    VulkanStream* vkStream,
    VkMemoryAllocateInfo* forUnmarshaling);

#define OP_vkAllocateMemory 20021
#define OP_vkFreeMemory 20022
#define OP_vkMapMemory 20023
#define OP_vkUnmapMemory 20024
void marshal_VkMappedMemoryRange(
    VulkanStream* vkStream,
    const VkMappedMemoryRange* forMarshaling);

void unmarshal_VkMappedMemoryRange(
    VulkanStream* vkStream,
    VkMappedMemoryRange* forUnmarshaling);

#define OP_vkFlushMappedMemoryRanges 20025
#define OP_vkInvalidateMappedMemoryRanges 20026
#define OP_vkGetDeviceMemoryCommitment 20027
#define OP_vkBindBufferMemory 20028
#define OP_vkBindImageMemory 20029
void marshal_VkMemoryRequirements(
    VulkanStream* vkStream,
    const VkMemoryRequirements* forMarshaling);

void unmarshal_VkMemoryRequirements(
    VulkanStream* vkStream,
    VkMemoryRequirements* forUnmarshaling);

#define OP_vkGetBufferMemoryRequirements 20030
#define OP_vkGetImageMemoryRequirements 20031
void marshal_VkSparseImageFormatProperties(
    VulkanStream* vkStream,
    const VkSparseImageFormatProperties* forMarshaling);

void unmarshal_VkSparseImageFormatProperties(
    VulkanStream* vkStream,
    VkSparseImageFormatProperties* forUnmarshaling);

void marshal_VkSparseImageMemoryRequirements(
    VulkanStream* vkStream,
    const VkSparseImageMemoryRequirements* forMarshaling);

void unmarshal_VkSparseImageMemoryRequirements(
    VulkanStream* vkStream,
    VkSparseImageMemoryRequirements* forUnmarshaling);

#define OP_vkGetImageSparseMemoryRequirements 20032
#define OP_vkGetPhysicalDeviceSparseImageFormatProperties 20033
void marshal_VkSparseMemoryBind(
    VulkanStream* vkStream,
    const VkSparseMemoryBind* forMarshaling);

void unmarshal_VkSparseMemoryBind(
    VulkanStream* vkStream,
    VkSparseMemoryBind* forUnmarshaling);

void marshal_VkSparseBufferMemoryBindInfo(
    VulkanStream* vkStream,
    const VkSparseBufferMemoryBindInfo* forMarshaling);

void unmarshal_VkSparseBufferMemoryBindInfo(
    VulkanStream* vkStream,
    VkSparseBufferMemoryBindInfo* forUnmarshaling);

void marshal_VkSparseImageOpaqueMemoryBindInfo(
    VulkanStream* vkStream,
    const VkSparseImageOpaqueMemoryBindInfo* forMarshaling);

void unmarshal_VkSparseImageOpaqueMemoryBindInfo(
    VulkanStream* vkStream,
    VkSparseImageOpaqueMemoryBindInfo* forUnmarshaling);

void marshal_VkImageSubresource(
    VulkanStream* vkStream,
    const VkImageSubresource* forMarshaling);

void unmarshal_VkImageSubresource(
    VulkanStream* vkStream,
    VkImageSubresource* forUnmarshaling);

void marshal_VkOffset3D(
    VulkanStream* vkStream,
    const VkOffset3D* forMarshaling);

void unmarshal_VkOffset3D(
    VulkanStream* vkStream,
    VkOffset3D* forUnmarshaling);

void marshal_VkSparseImageMemoryBind(
    VulkanStream* vkStream,
    const VkSparseImageMemoryBind* forMarshaling);

void unmarshal_VkSparseImageMemoryBind(
    VulkanStream* vkStream,
    VkSparseImageMemoryBind* forUnmarshaling);

void marshal_VkSparseImageMemoryBindInfo(
    VulkanStream* vkStream,
    const VkSparseImageMemoryBindInfo* forMarshaling);

void unmarshal_VkSparseImageMemoryBindInfo(
    VulkanStream* vkStream,
    VkSparseImageMemoryBindInfo* forUnmarshaling);

void marshal_VkBindSparseInfo(
    VulkanStream* vkStream,
    const VkBindSparseInfo* forMarshaling);

void unmarshal_VkBindSparseInfo(
    VulkanStream* vkStream,
    VkBindSparseInfo* forUnmarshaling);

#define OP_vkQueueBindSparse 20034
void marshal_VkFenceCreateInfo(
    VulkanStream* vkStream,
    const VkFenceCreateInfo* forMarshaling);

void unmarshal_VkFenceCreateInfo(
    VulkanStream* vkStream,
    VkFenceCreateInfo* forUnmarshaling);

#define OP_vkCreateFence 20035
#define OP_vkDestroyFence 20036
#define OP_vkResetFences 20037
#define OP_vkGetFenceStatus 20038
#define OP_vkWaitForFences 20039
void marshal_VkSemaphoreCreateInfo(
    VulkanStream* vkStream,
    const VkSemaphoreCreateInfo* forMarshaling);

void unmarshal_VkSemaphoreCreateInfo(
    VulkanStream* vkStream,
    VkSemaphoreCreateInfo* forUnmarshaling);

#define OP_vkCreateSemaphore 20040
#define OP_vkDestroySemaphore 20041
void marshal_VkEventCreateInfo(
    VulkanStream* vkStream,
    const VkEventCreateInfo* forMarshaling);

void unmarshal_VkEventCreateInfo(
    VulkanStream* vkStream,
    VkEventCreateInfo* forUnmarshaling);

#define OP_vkCreateEvent 20042
#define OP_vkDestroyEvent 20043
#define OP_vkGetEventStatus 20044
#define OP_vkSetEvent 20045
#define OP_vkResetEvent 20046
void marshal_VkQueryPoolCreateInfo(
    VulkanStream* vkStream,
    const VkQueryPoolCreateInfo* forMarshaling);

void unmarshal_VkQueryPoolCreateInfo(
    VulkanStream* vkStream,
    VkQueryPoolCreateInfo* forUnmarshaling);

#define OP_vkCreateQueryPool 20047
#define OP_vkDestroyQueryPool 20048
#define OP_vkGetQueryPoolResults 20049
void marshal_VkBufferCreateInfo(
    VulkanStream* vkStream,
    const VkBufferCreateInfo* forMarshaling);

void unmarshal_VkBufferCreateInfo(
    VulkanStream* vkStream,
    VkBufferCreateInfo* forUnmarshaling);

#define OP_vkCreateBuffer 20050
#define OP_vkDestroyBuffer 20051
void marshal_VkBufferViewCreateInfo(
    VulkanStream* vkStream,
    const VkBufferViewCreateInfo* forMarshaling);

void unmarshal_VkBufferViewCreateInfo(
    VulkanStream* vkStream,
    VkBufferViewCreateInfo* forUnmarshaling);

#define OP_vkCreateBufferView 20052
#define OP_vkDestroyBufferView 20053
void marshal_VkImageCreateInfo(
    VulkanStream* vkStream,
    const VkImageCreateInfo* forMarshaling);

void unmarshal_VkImageCreateInfo(
    VulkanStream* vkStream,
    VkImageCreateInfo* forUnmarshaling);

#define OP_vkCreateImage 20054
#define OP_vkDestroyImage 20055
void marshal_VkSubresourceLayout(
    VulkanStream* vkStream,
    const VkSubresourceLayout* forMarshaling);

void unmarshal_VkSubresourceLayout(
    VulkanStream* vkStream,
    VkSubresourceLayout* forUnmarshaling);

#define OP_vkGetImageSubresourceLayout 20056
void marshal_VkComponentMapping(
    VulkanStream* vkStream,
    const VkComponentMapping* forMarshaling);

void unmarshal_VkComponentMapping(
    VulkanStream* vkStream,
    VkComponentMapping* forUnmarshaling);

void marshal_VkImageSubresourceRange(
    VulkanStream* vkStream,
    const VkImageSubresourceRange* forMarshaling);

void unmarshal_VkImageSubresourceRange(
    VulkanStream* vkStream,
    VkImageSubresourceRange* forUnmarshaling);

void marshal_VkImageViewCreateInfo(
    VulkanStream* vkStream,
    const VkImageViewCreateInfo* forMarshaling);

void unmarshal_VkImageViewCreateInfo(
    VulkanStream* vkStream,
    VkImageViewCreateInfo* forUnmarshaling);

#define OP_vkCreateImageView 20057
#define OP_vkDestroyImageView 20058
void marshal_VkShaderModuleCreateInfo(
    VulkanStream* vkStream,
    const VkShaderModuleCreateInfo* forMarshaling);

void unmarshal_VkShaderModuleCreateInfo(
    VulkanStream* vkStream,
    VkShaderModuleCreateInfo* forUnmarshaling);

#define OP_vkCreateShaderModule 20059
#define OP_vkDestroyShaderModule 20060
void marshal_VkPipelineCacheCreateInfo(
    VulkanStream* vkStream,
    const VkPipelineCacheCreateInfo* forMarshaling);

void unmarshal_VkPipelineCacheCreateInfo(
    VulkanStream* vkStream,
    VkPipelineCacheCreateInfo* forUnmarshaling);

#define OP_vkCreatePipelineCache 20061
#define OP_vkDestroyPipelineCache 20062
#define OP_vkGetPipelineCacheData 20063
#define OP_vkMergePipelineCaches 20064
void marshal_VkSpecializationMapEntry(
    VulkanStream* vkStream,
    const VkSpecializationMapEntry* forMarshaling);

void unmarshal_VkSpecializationMapEntry(
    VulkanStream* vkStream,
    VkSpecializationMapEntry* forUnmarshaling);

void marshal_VkSpecializationInfo(
    VulkanStream* vkStream,
    const VkSpecializationInfo* forMarshaling);

void unmarshal_VkSpecializationInfo(
    VulkanStream* vkStream,
    VkSpecializationInfo* forUnmarshaling);

void marshal_VkPipelineShaderStageCreateInfo(
    VulkanStream* vkStream,
    const VkPipelineShaderStageCreateInfo* forMarshaling);

void unmarshal_VkPipelineShaderStageCreateInfo(
    VulkanStream* vkStream,
    VkPipelineShaderStageCreateInfo* forUnmarshaling);

void marshal_VkVertexInputBindingDescription(
    VulkanStream* vkStream,
    const VkVertexInputBindingDescription* forMarshaling);

void unmarshal_VkVertexInputBindingDescription(
    VulkanStream* vkStream,
    VkVertexInputBindingDescription* forUnmarshaling);

void marshal_VkVertexInputAttributeDescription(
    VulkanStream* vkStream,
    const VkVertexInputAttributeDescription* forMarshaling);

void unmarshal_VkVertexInputAttributeDescription(
    VulkanStream* vkStream,
    VkVertexInputAttributeDescription* forUnmarshaling);

void marshal_VkPipelineVertexInputStateCreateInfo(
    VulkanStream* vkStream,
    const VkPipelineVertexInputStateCreateInfo* forMarshaling);

void unmarshal_VkPipelineVertexInputStateCreateInfo(
    VulkanStream* vkStream,
    VkPipelineVertexInputStateCreateInfo* forUnmarshaling);

void marshal_VkPipelineInputAssemblyStateCreateInfo(
    VulkanStream* vkStream,
    const VkPipelineInputAssemblyStateCreateInfo* forMarshaling);

void unmarshal_VkPipelineInputAssemblyStateCreateInfo(
    VulkanStream* vkStream,
    VkPipelineInputAssemblyStateCreateInfo* forUnmarshaling);

void marshal_VkPipelineTessellationStateCreateInfo(
    VulkanStream* vkStream,
    const VkPipelineTessellationStateCreateInfo* forMarshaling);

void unmarshal_VkPipelineTessellationStateCreateInfo(
    VulkanStream* vkStream,
    VkPipelineTessellationStateCreateInfo* forUnmarshaling);

void marshal_VkViewport(
    VulkanStream* vkStream,
    const VkViewport* forMarshaling);

void unmarshal_VkViewport(
    VulkanStream* vkStream,
    VkViewport* forUnmarshaling);

void marshal_VkOffset2D(
    VulkanStream* vkStream,
    const VkOffset2D* forMarshaling);

void unmarshal_VkOffset2D(
    VulkanStream* vkStream,
    VkOffset2D* forUnmarshaling);

void marshal_VkExtent2D(
    VulkanStream* vkStream,
    const VkExtent2D* forMarshaling);

void unmarshal_VkExtent2D(
    VulkanStream* vkStream,
    VkExtent2D* forUnmarshaling);

void marshal_VkRect2D(
    VulkanStream* vkStream,
    const VkRect2D* forMarshaling);

void unmarshal_VkRect2D(
    VulkanStream* vkStream,
    VkRect2D* forUnmarshaling);

void marshal_VkPipelineViewportStateCreateInfo(
    VulkanStream* vkStream,
    const VkPipelineViewportStateCreateInfo* forMarshaling);

void unmarshal_VkPipelineViewportStateCreateInfo(
    VulkanStream* vkStream,
    VkPipelineViewportStateCreateInfo* forUnmarshaling);

void marshal_VkPipelineRasterizationStateCreateInfo(
    VulkanStream* vkStream,
    const VkPipelineRasterizationStateCreateInfo* forMarshaling);

void unmarshal_VkPipelineRasterizationStateCreateInfo(
    VulkanStream* vkStream,
    VkPipelineRasterizationStateCreateInfo* forUnmarshaling);

void marshal_VkPipelineMultisampleStateCreateInfo(
    VulkanStream* vkStream,
    const VkPipelineMultisampleStateCreateInfo* forMarshaling);

void unmarshal_VkPipelineMultisampleStateCreateInfo(
    VulkanStream* vkStream,
    VkPipelineMultisampleStateCreateInfo* forUnmarshaling);

void marshal_VkStencilOpState(
    VulkanStream* vkStream,
    const VkStencilOpState* forMarshaling);

void unmarshal_VkStencilOpState(
    VulkanStream* vkStream,
    VkStencilOpState* forUnmarshaling);

void marshal_VkPipelineDepthStencilStateCreateInfo(
    VulkanStream* vkStream,
    const VkPipelineDepthStencilStateCreateInfo* forMarshaling);

void unmarshal_VkPipelineDepthStencilStateCreateInfo(
    VulkanStream* vkStream,
    VkPipelineDepthStencilStateCreateInfo* forUnmarshaling);

void marshal_VkPipelineColorBlendAttachmentState(
    VulkanStream* vkStream,
    const VkPipelineColorBlendAttachmentState* forMarshaling);

void unmarshal_VkPipelineColorBlendAttachmentState(
    VulkanStream* vkStream,
    VkPipelineColorBlendAttachmentState* forUnmarshaling);

void marshal_VkPipelineColorBlendStateCreateInfo(
    VulkanStream* vkStream,
    const VkPipelineColorBlendStateCreateInfo* forMarshaling);

void unmarshal_VkPipelineColorBlendStateCreateInfo(
    VulkanStream* vkStream,
    VkPipelineColorBlendStateCreateInfo* forUnmarshaling);

void marshal_VkPipelineDynamicStateCreateInfo(
    VulkanStream* vkStream,
    const VkPipelineDynamicStateCreateInfo* forMarshaling);

void unmarshal_VkPipelineDynamicStateCreateInfo(
    VulkanStream* vkStream,
    VkPipelineDynamicStateCreateInfo* forUnmarshaling);

void marshal_VkGraphicsPipelineCreateInfo(
    VulkanStream* vkStream,
    const VkGraphicsPipelineCreateInfo* forMarshaling);

void unmarshal_VkGraphicsPipelineCreateInfo(
    VulkanStream* vkStream,
    VkGraphicsPipelineCreateInfo* forUnmarshaling);

#define OP_vkCreateGraphicsPipelines 20065
void marshal_VkComputePipelineCreateInfo(
    VulkanStream* vkStream,
    const VkComputePipelineCreateInfo* forMarshaling);

void unmarshal_VkComputePipelineCreateInfo(
    VulkanStream* vkStream,
    VkComputePipelineCreateInfo* forUnmarshaling);

#define OP_vkCreateComputePipelines 20066
#define OP_vkDestroyPipeline 20067
void marshal_VkPushConstantRange(
    VulkanStream* vkStream,
    const VkPushConstantRange* forMarshaling);

void unmarshal_VkPushConstantRange(
    VulkanStream* vkStream,
    VkPushConstantRange* forUnmarshaling);

void marshal_VkPipelineLayoutCreateInfo(
    VulkanStream* vkStream,
    const VkPipelineLayoutCreateInfo* forMarshaling);

void unmarshal_VkPipelineLayoutCreateInfo(
    VulkanStream* vkStream,
    VkPipelineLayoutCreateInfo* forUnmarshaling);

#define OP_vkCreatePipelineLayout 20068
#define OP_vkDestroyPipelineLayout 20069
void marshal_VkSamplerCreateInfo(
    VulkanStream* vkStream,
    const VkSamplerCreateInfo* forMarshaling);

void unmarshal_VkSamplerCreateInfo(
    VulkanStream* vkStream,
    VkSamplerCreateInfo* forUnmarshaling);

#define OP_vkCreateSampler 20070
#define OP_vkDestroySampler 20071
void marshal_VkDescriptorSetLayoutBinding(
    VulkanStream* vkStream,
    const VkDescriptorSetLayoutBinding* forMarshaling);

void unmarshal_VkDescriptorSetLayoutBinding(
    VulkanStream* vkStream,
    VkDescriptorSetLayoutBinding* forUnmarshaling);

void marshal_VkDescriptorSetLayoutCreateInfo(
    VulkanStream* vkStream,
    const VkDescriptorSetLayoutCreateInfo* forMarshaling);

void unmarshal_VkDescriptorSetLayoutCreateInfo(
    VulkanStream* vkStream,
    VkDescriptorSetLayoutCreateInfo* forUnmarshaling);

#define OP_vkCreateDescriptorSetLayout 20072
#define OP_vkDestroyDescriptorSetLayout 20073
void marshal_VkDescriptorPoolSize(
    VulkanStream* vkStream,
    const VkDescriptorPoolSize* forMarshaling);

void unmarshal_VkDescriptorPoolSize(
    VulkanStream* vkStream,
    VkDescriptorPoolSize* forUnmarshaling);

void marshal_VkDescriptorPoolCreateInfo(
    VulkanStream* vkStream,
    const VkDescriptorPoolCreateInfo* forMarshaling);

void unmarshal_VkDescriptorPoolCreateInfo(
    VulkanStream* vkStream,
    VkDescriptorPoolCreateInfo* forUnmarshaling);

#define OP_vkCreateDescriptorPool 20074
#define OP_vkDestroyDescriptorPool 20075
#define OP_vkResetDescriptorPool 20076
void marshal_VkDescriptorSetAllocateInfo(
    VulkanStream* vkStream,
    const VkDescriptorSetAllocateInfo* forMarshaling);

void unmarshal_VkDescriptorSetAllocateInfo(
    VulkanStream* vkStream,
    VkDescriptorSetAllocateInfo* forUnmarshaling);

#define OP_vkAllocateDescriptorSets 20077
#define OP_vkFreeDescriptorSets 20078
void marshal_VkDescriptorImageInfo(
    VulkanStream* vkStream,
    const VkDescriptorImageInfo* forMarshaling);

void unmarshal_VkDescriptorImageInfo(
    VulkanStream* vkStream,
    VkDescriptorImageInfo* forUnmarshaling);

void marshal_VkDescriptorBufferInfo(
    VulkanStream* vkStream,
    const VkDescriptorBufferInfo* forMarshaling);

void unmarshal_VkDescriptorBufferInfo(
    VulkanStream* vkStream,
    VkDescriptorBufferInfo* forUnmarshaling);

void marshal_VkWriteDescriptorSet(
    VulkanStream* vkStream,
    const VkWriteDescriptorSet* forMarshaling);

void unmarshal_VkWriteDescriptorSet(
    VulkanStream* vkStream,
    VkWriteDescriptorSet* forUnmarshaling);

void marshal_VkCopyDescriptorSet(
    VulkanStream* vkStream,
    const VkCopyDescriptorSet* forMarshaling);

void unmarshal_VkCopyDescriptorSet(
    VulkanStream* vkStream,
    VkCopyDescriptorSet* forUnmarshaling);

#define OP_vkUpdateDescriptorSets 20079
void marshal_VkFramebufferCreateInfo(
    VulkanStream* vkStream,
    const VkFramebufferCreateInfo* forMarshaling);

void unmarshal_VkFramebufferCreateInfo(
    VulkanStream* vkStream,
    VkFramebufferCreateInfo* forUnmarshaling);

#define OP_vkCreateFramebuffer 20080
#define OP_vkDestroyFramebuffer 20081
void marshal_VkAttachmentDescription(
    VulkanStream* vkStream,
    const VkAttachmentDescription* forMarshaling);

void unmarshal_VkAttachmentDescription(
    VulkanStream* vkStream,
    VkAttachmentDescription* forUnmarshaling);

void marshal_VkAttachmentReference(
    VulkanStream* vkStream,
    const VkAttachmentReference* forMarshaling);

void unmarshal_VkAttachmentReference(
    VulkanStream* vkStream,
    VkAttachmentReference* forUnmarshaling);

void marshal_VkSubpassDescription(
    VulkanStream* vkStream,
    const VkSubpassDescription* forMarshaling);

void unmarshal_VkSubpassDescription(
    VulkanStream* vkStream,
    VkSubpassDescription* forUnmarshaling);

void marshal_VkSubpassDependency(
    VulkanStream* vkStream,
    const VkSubpassDependency* forMarshaling);

void unmarshal_VkSubpassDependency(
    VulkanStream* vkStream,
    VkSubpassDependency* forUnmarshaling);

void marshal_VkRenderPassCreateInfo(
    VulkanStream* vkStream,
    const VkRenderPassCreateInfo* forMarshaling);

void unmarshal_VkRenderPassCreateInfo(
    VulkanStream* vkStream,
    VkRenderPassCreateInfo* forUnmarshaling);

#define OP_vkCreateRenderPass 20082
#define OP_vkDestroyRenderPass 20083
#define OP_vkGetRenderAreaGranularity 20084
void marshal_VkCommandPoolCreateInfo(
    VulkanStream* vkStream,
    const VkCommandPoolCreateInfo* forMarshaling);

void unmarshal_VkCommandPoolCreateInfo(
    VulkanStream* vkStream,
    VkCommandPoolCreateInfo* forUnmarshaling);

#define OP_vkCreateCommandPool 20085
#define OP_vkDestroyCommandPool 20086
#define OP_vkResetCommandPool 20087
void marshal_VkCommandBufferAllocateInfo(
    VulkanStream* vkStream,
    const VkCommandBufferAllocateInfo* forMarshaling);

void unmarshal_VkCommandBufferAllocateInfo(
    VulkanStream* vkStream,
    VkCommandBufferAllocateInfo* forUnmarshaling);

#define OP_vkAllocateCommandBuffers 20088
#define OP_vkFreeCommandBuffers 20089
void marshal_VkCommandBufferInheritanceInfo(
    VulkanStream* vkStream,
    const VkCommandBufferInheritanceInfo* forMarshaling);

void unmarshal_VkCommandBufferInheritanceInfo(
    VulkanStream* vkStream,
    VkCommandBufferInheritanceInfo* forUnmarshaling);

void marshal_VkCommandBufferBeginInfo(
    VulkanStream* vkStream,
    const VkCommandBufferBeginInfo* forMarshaling);

void unmarshal_VkCommandBufferBeginInfo(
    VulkanStream* vkStream,
    VkCommandBufferBeginInfo* forUnmarshaling);

#define OP_vkBeginCommandBuffer 20090
#define OP_vkEndCommandBuffer 20091
#define OP_vkResetCommandBuffer 20092
#define OP_vkCmdBindPipeline 20093
#define OP_vkCmdSetViewport 20094
#define OP_vkCmdSetScissor 20095
#define OP_vkCmdSetLineWidth 20096
#define OP_vkCmdSetDepthBias 20097
#define OP_vkCmdSetBlendConstants 20098
#define OP_vkCmdSetDepthBounds 20099
#define OP_vkCmdSetStencilCompareMask 20100
#define OP_vkCmdSetStencilWriteMask 20101
#define OP_vkCmdSetStencilReference 20102
#define OP_vkCmdBindDescriptorSets 20103
#define OP_vkCmdBindIndexBuffer 20104
#define OP_vkCmdBindVertexBuffers 20105
#define OP_vkCmdDraw 20106
#define OP_vkCmdDrawIndexed 20107
#define OP_vkCmdDrawIndirect 20108
#define OP_vkCmdDrawIndexedIndirect 20109
#define OP_vkCmdDispatch 20110
#define OP_vkCmdDispatchIndirect 20111
void marshal_VkBufferCopy(
    VulkanStream* vkStream,
    const VkBufferCopy* forMarshaling);

void unmarshal_VkBufferCopy(
    VulkanStream* vkStream,
    VkBufferCopy* forUnmarshaling);

#define OP_vkCmdCopyBuffer 20112
void marshal_VkImageSubresourceLayers(
    VulkanStream* vkStream,
    const VkImageSubresourceLayers* forMarshaling);

void unmarshal_VkImageSubresourceLayers(
    VulkanStream* vkStream,
    VkImageSubresourceLayers* forUnmarshaling);

void marshal_VkImageCopy(
    VulkanStream* vkStream,
    const VkImageCopy* forMarshaling);

void unmarshal_VkImageCopy(
    VulkanStream* vkStream,
    VkImageCopy* forUnmarshaling);

#define OP_vkCmdCopyImage 20113
void marshal_VkImageBlit(
    VulkanStream* vkStream,
    const VkImageBlit* forMarshaling);

void unmarshal_VkImageBlit(
    VulkanStream* vkStream,
    VkImageBlit* forUnmarshaling);

#define OP_vkCmdBlitImage 20114
void marshal_VkBufferImageCopy(
    VulkanStream* vkStream,
    const VkBufferImageCopy* forMarshaling);

void unmarshal_VkBufferImageCopy(
    VulkanStream* vkStream,
    VkBufferImageCopy* forUnmarshaling);

#define OP_vkCmdCopyBufferToImage 20115
#define OP_vkCmdCopyImageToBuffer 20116
#define OP_vkCmdUpdateBuffer 20117
#define OP_vkCmdFillBuffer 20118
void marshal_VkClearColorValue(
    VulkanStream* vkStream,
    const VkClearColorValue* forMarshaling);

void unmarshal_VkClearColorValue(
    VulkanStream* vkStream,
    VkClearColorValue* forUnmarshaling);

#define OP_vkCmdClearColorImage 20119
void marshal_VkClearDepthStencilValue(
    VulkanStream* vkStream,
    const VkClearDepthStencilValue* forMarshaling);

void unmarshal_VkClearDepthStencilValue(
    VulkanStream* vkStream,
    VkClearDepthStencilValue* forUnmarshaling);

#define OP_vkCmdClearDepthStencilImage 20120
void marshal_VkClearValue(
    VulkanStream* vkStream,
    const VkClearValue* forMarshaling);

void unmarshal_VkClearValue(
    VulkanStream* vkStream,
    VkClearValue* forUnmarshaling);

void marshal_VkClearAttachment(
    VulkanStream* vkStream,
    const VkClearAttachment* forMarshaling);

void unmarshal_VkClearAttachment(
    VulkanStream* vkStream,
    VkClearAttachment* forUnmarshaling);

void marshal_VkClearRect(
    VulkanStream* vkStream,
    const VkClearRect* forMarshaling);

void unmarshal_VkClearRect(
    VulkanStream* vkStream,
    VkClearRect* forUnmarshaling);

#define OP_vkCmdClearAttachments 20121
void marshal_VkImageResolve(
    VulkanStream* vkStream,
    const VkImageResolve* forMarshaling);

void unmarshal_VkImageResolve(
    VulkanStream* vkStream,
    VkImageResolve* forUnmarshaling);

#define OP_vkCmdResolveImage 20122
#define OP_vkCmdSetEvent 20123
#define OP_vkCmdResetEvent 20124
void marshal_VkMemoryBarrier(
    VulkanStream* vkStream,
    const VkMemoryBarrier* forMarshaling);

void unmarshal_VkMemoryBarrier(
    VulkanStream* vkStream,
    VkMemoryBarrier* forUnmarshaling);

void marshal_VkBufferMemoryBarrier(
    VulkanStream* vkStream,
    const VkBufferMemoryBarrier* forMarshaling);

void unmarshal_VkBufferMemoryBarrier(
    VulkanStream* vkStream,
    VkBufferMemoryBarrier* forUnmarshaling);

void marshal_VkImageMemoryBarrier(
    VulkanStream* vkStream,
    const VkImageMemoryBarrier* forMarshaling);

void unmarshal_VkImageMemoryBarrier(
    VulkanStream* vkStream,
    VkImageMemoryBarrier* forUnmarshaling);

#define OP_vkCmdWaitEvents 20125
#define OP_vkCmdPipelineBarrier 20126
#define OP_vkCmdBeginQuery 20127
#define OP_vkCmdEndQuery 20128
#define OP_vkCmdResetQueryPool 20129
#define OP_vkCmdWriteTimestamp 20130
#define OP_vkCmdCopyQueryPoolResults 20131
#define OP_vkCmdPushConstants 20132
void marshal_VkRenderPassBeginInfo(
    VulkanStream* vkStream,
    const VkRenderPassBeginInfo* forMarshaling);

void unmarshal_VkRenderPassBeginInfo(
    VulkanStream* vkStream,
    VkRenderPassBeginInfo* forUnmarshaling);

#define OP_vkCmdBeginRenderPass 20133
#define OP_vkCmdNextSubpass 20134
#define OP_vkCmdEndRenderPass 20135
#define OP_vkCmdExecuteCommands 20136
void marshal_VkDispatchIndirectCommand(
    VulkanStream* vkStream,
    const VkDispatchIndirectCommand* forMarshaling);

void unmarshal_VkDispatchIndirectCommand(
    VulkanStream* vkStream,
    VkDispatchIndirectCommand* forUnmarshaling);

void marshal_VkDrawIndexedIndirectCommand(
    VulkanStream* vkStream,
    const VkDrawIndexedIndirectCommand* forMarshaling);

void unmarshal_VkDrawIndexedIndirectCommand(
    VulkanStream* vkStream,
    VkDrawIndexedIndirectCommand* forUnmarshaling);

void marshal_VkDrawIndirectCommand(
    VulkanStream* vkStream,
    const VkDrawIndirectCommand* forMarshaling);

void unmarshal_VkDrawIndirectCommand(
    VulkanStream* vkStream,
    VkDrawIndirectCommand* forUnmarshaling);

void marshal_VkBaseOutStructure(
    VulkanStream* vkStream,
    const VkBaseOutStructure* forMarshaling);

void unmarshal_VkBaseOutStructure(
    VulkanStream* vkStream,
    VkBaseOutStructure* forUnmarshaling);

void marshal_VkBaseInStructure(
    VulkanStream* vkStream,
    const VkBaseInStructure* forMarshaling);

void unmarshal_VkBaseInStructure(
    VulkanStream* vkStream,
    VkBaseInStructure* forUnmarshaling);

#endif
#ifdef VK_VERSION_1_1
#define OP_vkEnumerateInstanceVersion 20137
void marshal_VkPhysicalDeviceSubgroupProperties(
    VulkanStream* vkStream,
    const VkPhysicalDeviceSubgroupProperties* forMarshaling);

void unmarshal_VkPhysicalDeviceSubgroupProperties(
    VulkanStream* vkStream,
    VkPhysicalDeviceSubgroupProperties* forUnmarshaling);

void marshal_VkBindBufferMemoryInfo(
    VulkanStream* vkStream,
    const VkBindBufferMemoryInfo* forMarshaling);

void unmarshal_VkBindBufferMemoryInfo(
    VulkanStream* vkStream,
    VkBindBufferMemoryInfo* forUnmarshaling);

void marshal_VkBindImageMemoryInfo(
    VulkanStream* vkStream,
    const VkBindImageMemoryInfo* forMarshaling);

void unmarshal_VkBindImageMemoryInfo(
    VulkanStream* vkStream,
    VkBindImageMemoryInfo* forUnmarshaling);

#define OP_vkBindBufferMemory2 20138
#define OP_vkBindImageMemory2 20139
void marshal_VkPhysicalDevice16BitStorageFeatures(
    VulkanStream* vkStream,
    const VkPhysicalDevice16BitStorageFeatures* forMarshaling);

void unmarshal_VkPhysicalDevice16BitStorageFeatures(
    VulkanStream* vkStream,
    VkPhysicalDevice16BitStorageFeatures* forUnmarshaling);

void marshal_VkMemoryDedicatedRequirements(
    VulkanStream* vkStream,
    const VkMemoryDedicatedRequirements* forMarshaling);

void unmarshal_VkMemoryDedicatedRequirements(
    VulkanStream* vkStream,
    VkMemoryDedicatedRequirements* forUnmarshaling);

void marshal_VkMemoryDedicatedAllocateInfo(
    VulkanStream* vkStream,
    const VkMemoryDedicatedAllocateInfo* forMarshaling);

void unmarshal_VkMemoryDedicatedAllocateInfo(
    VulkanStream* vkStream,
    VkMemoryDedicatedAllocateInfo* forUnmarshaling);

void marshal_VkMemoryAllocateFlagsInfo(
    VulkanStream* vkStream,
    const VkMemoryAllocateFlagsInfo* forMarshaling);

void unmarshal_VkMemoryAllocateFlagsInfo(
    VulkanStream* vkStream,
    VkMemoryAllocateFlagsInfo* forUnmarshaling);

void marshal_VkDeviceGroupRenderPassBeginInfo(
    VulkanStream* vkStream,
    const VkDeviceGroupRenderPassBeginInfo* forMarshaling);

void unmarshal_VkDeviceGroupRenderPassBeginInfo(
    VulkanStream* vkStream,
    VkDeviceGroupRenderPassBeginInfo* forUnmarshaling);

void marshal_VkDeviceGroupCommandBufferBeginInfo(
    VulkanStream* vkStream,
    const VkDeviceGroupCommandBufferBeginInfo* forMarshaling);

void unmarshal_VkDeviceGroupCommandBufferBeginInfo(
    VulkanStream* vkStream,
    VkDeviceGroupCommandBufferBeginInfo* forUnmarshaling);

void marshal_VkDeviceGroupSubmitInfo(
    VulkanStream* vkStream,
    const VkDeviceGroupSubmitInfo* forMarshaling);

void unmarshal_VkDeviceGroupSubmitInfo(
    VulkanStream* vkStream,
    VkDeviceGroupSubmitInfo* forUnmarshaling);

void marshal_VkDeviceGroupBindSparseInfo(
    VulkanStream* vkStream,
    const VkDeviceGroupBindSparseInfo* forMarshaling);

void unmarshal_VkDeviceGroupBindSparseInfo(
    VulkanStream* vkStream,
    VkDeviceGroupBindSparseInfo* forUnmarshaling);

#define OP_vkGetDeviceGroupPeerMemoryFeatures 20140
#define OP_vkCmdSetDeviceMask 20141
#define OP_vkCmdDispatchBase 20142
void marshal_VkBindBufferMemoryDeviceGroupInfo(
    VulkanStream* vkStream,
    const VkBindBufferMemoryDeviceGroupInfo* forMarshaling);

void unmarshal_VkBindBufferMemoryDeviceGroupInfo(
    VulkanStream* vkStream,
    VkBindBufferMemoryDeviceGroupInfo* forUnmarshaling);

void marshal_VkBindImageMemoryDeviceGroupInfo(
    VulkanStream* vkStream,
    const VkBindImageMemoryDeviceGroupInfo* forMarshaling);

void unmarshal_VkBindImageMemoryDeviceGroupInfo(
    VulkanStream* vkStream,
    VkBindImageMemoryDeviceGroupInfo* forUnmarshaling);

void marshal_VkPhysicalDeviceGroupProperties(
    VulkanStream* vkStream,
    const VkPhysicalDeviceGroupProperties* forMarshaling);

void unmarshal_VkPhysicalDeviceGroupProperties(
    VulkanStream* vkStream,
    VkPhysicalDeviceGroupProperties* forUnmarshaling);

void marshal_VkDeviceGroupDeviceCreateInfo(
    VulkanStream* vkStream,
    const VkDeviceGroupDeviceCreateInfo* forMarshaling);

void unmarshal_VkDeviceGroupDeviceCreateInfo(
    VulkanStream* vkStream,
    VkDeviceGroupDeviceCreateInfo* forUnmarshaling);

#define OP_vkEnumeratePhysicalDeviceGroups 20143
void marshal_VkBufferMemoryRequirementsInfo2(
    VulkanStream* vkStream,
    const VkBufferMemoryRequirementsInfo2* forMarshaling);

void unmarshal_VkBufferMemoryRequirementsInfo2(
    VulkanStream* vkStream,
    VkBufferMemoryRequirementsInfo2* forUnmarshaling);

void marshal_VkImageMemoryRequirementsInfo2(
    VulkanStream* vkStream,
    const VkImageMemoryRequirementsInfo2* forMarshaling);

void unmarshal_VkImageMemoryRequirementsInfo2(
    VulkanStream* vkStream,
    VkImageMemoryRequirementsInfo2* forUnmarshaling);

void marshal_VkImageSparseMemoryRequirementsInfo2(
    VulkanStream* vkStream,
    const VkImageSparseMemoryRequirementsInfo2* forMarshaling);

void unmarshal_VkImageSparseMemoryRequirementsInfo2(
    VulkanStream* vkStream,
    VkImageSparseMemoryRequirementsInfo2* forUnmarshaling);

void marshal_VkMemoryRequirements2(
    VulkanStream* vkStream,
    const VkMemoryRequirements2* forMarshaling);

void unmarshal_VkMemoryRequirements2(
    VulkanStream* vkStream,
    VkMemoryRequirements2* forUnmarshaling);

void marshal_VkSparseImageMemoryRequirements2(
    VulkanStream* vkStream,
    const VkSparseImageMemoryRequirements2* forMarshaling);

void unmarshal_VkSparseImageMemoryRequirements2(
    VulkanStream* vkStream,
    VkSparseImageMemoryRequirements2* forUnmarshaling);

#define OP_vkGetImageMemoryRequirements2 20144
#define OP_vkGetBufferMemoryRequirements2 20145
#define OP_vkGetImageSparseMemoryRequirements2 20146
void marshal_VkPhysicalDeviceFeatures2(
    VulkanStream* vkStream,
    const VkPhysicalDeviceFeatures2* forMarshaling);

void unmarshal_VkPhysicalDeviceFeatures2(
    VulkanStream* vkStream,
    VkPhysicalDeviceFeatures2* forUnmarshaling);

void marshal_VkPhysicalDeviceProperties2(
    VulkanStream* vkStream,
    const VkPhysicalDeviceProperties2* forMarshaling);

void unmarshal_VkPhysicalDeviceProperties2(
    VulkanStream* vkStream,
    VkPhysicalDeviceProperties2* forUnmarshaling);

void marshal_VkFormatProperties2(
    VulkanStream* vkStream,
    const VkFormatProperties2* forMarshaling);

void unmarshal_VkFormatProperties2(
    VulkanStream* vkStream,
    VkFormatProperties2* forUnmarshaling);

void marshal_VkImageFormatProperties2(
    VulkanStream* vkStream,
    const VkImageFormatProperties2* forMarshaling);

void unmarshal_VkImageFormatProperties2(
    VulkanStream* vkStream,
    VkImageFormatProperties2* forUnmarshaling);

void marshal_VkPhysicalDeviceImageFormatInfo2(
    VulkanStream* vkStream,
    const VkPhysicalDeviceImageFormatInfo2* forMarshaling);

void unmarshal_VkPhysicalDeviceImageFormatInfo2(
    VulkanStream* vkStream,
    VkPhysicalDeviceImageFormatInfo2* forUnmarshaling);

void marshal_VkQueueFamilyProperties2(
    VulkanStream* vkStream,
    const VkQueueFamilyProperties2* forMarshaling);

void unmarshal_VkQueueFamilyProperties2(
    VulkanStream* vkStream,
    VkQueueFamilyProperties2* forUnmarshaling);

void marshal_VkPhysicalDeviceMemoryProperties2(
    VulkanStream* vkStream,
    const VkPhysicalDeviceMemoryProperties2* forMarshaling);

void unmarshal_VkPhysicalDeviceMemoryProperties2(
    VulkanStream* vkStream,
    VkPhysicalDeviceMemoryProperties2* forUnmarshaling);

void marshal_VkSparseImageFormatProperties2(
    VulkanStream* vkStream,
    const VkSparseImageFormatProperties2* forMarshaling);

void unmarshal_VkSparseImageFormatProperties2(
    VulkanStream* vkStream,
    VkSparseImageFormatProperties2* forUnmarshaling);

void marshal_VkPhysicalDeviceSparseImageFormatInfo2(
    VulkanStream* vkStream,
    const VkPhysicalDeviceSparseImageFormatInfo2* forMarshaling);

void unmarshal_VkPhysicalDeviceSparseImageFormatInfo2(
    VulkanStream* vkStream,
    VkPhysicalDeviceSparseImageFormatInfo2* forUnmarshaling);

#define OP_vkGetPhysicalDeviceFeatures2 20147
#define OP_vkGetPhysicalDeviceProperties2 20148
#define OP_vkGetPhysicalDeviceFormatProperties2 20149
#define OP_vkGetPhysicalDeviceImageFormatProperties2 20150
#define OP_vkGetPhysicalDeviceQueueFamilyProperties2 20151
#define OP_vkGetPhysicalDeviceMemoryProperties2 20152
#define OP_vkGetPhysicalDeviceSparseImageFormatProperties2 20153
#define OP_vkTrimCommandPool 20154
void marshal_VkPhysicalDevicePointClippingProperties(
    VulkanStream* vkStream,
    const VkPhysicalDevicePointClippingProperties* forMarshaling);

void unmarshal_VkPhysicalDevicePointClippingProperties(
    VulkanStream* vkStream,
    VkPhysicalDevicePointClippingProperties* forUnmarshaling);

void marshal_VkInputAttachmentAspectReference(
    VulkanStream* vkStream,
    const VkInputAttachmentAspectReference* forMarshaling);

void unmarshal_VkInputAttachmentAspectReference(
    VulkanStream* vkStream,
    VkInputAttachmentAspectReference* forUnmarshaling);

void marshal_VkRenderPassInputAttachmentAspectCreateInfo(
    VulkanStream* vkStream,
    const VkRenderPassInputAttachmentAspectCreateInfo* forMarshaling);

void unmarshal_VkRenderPassInputAttachmentAspectCreateInfo(
    VulkanStream* vkStream,
    VkRenderPassInputAttachmentAspectCreateInfo* forUnmarshaling);

void marshal_VkImageViewUsageCreateInfo(
    VulkanStream* vkStream,
    const VkImageViewUsageCreateInfo* forMarshaling);

void unmarshal_VkImageViewUsageCreateInfo(
    VulkanStream* vkStream,
    VkImageViewUsageCreateInfo* forUnmarshaling);

void marshal_VkPipelineTessellationDomainOriginStateCreateInfo(
    VulkanStream* vkStream,
    const VkPipelineTessellationDomainOriginStateCreateInfo* forMarshaling);

void unmarshal_VkPipelineTessellationDomainOriginStateCreateInfo(
    VulkanStream* vkStream,
    VkPipelineTessellationDomainOriginStateCreateInfo* forUnmarshaling);

void marshal_VkRenderPassMultiviewCreateInfo(
    VulkanStream* vkStream,
    const VkRenderPassMultiviewCreateInfo* forMarshaling);

void unmarshal_VkRenderPassMultiviewCreateInfo(
    VulkanStream* vkStream,
    VkRenderPassMultiviewCreateInfo* forUnmarshaling);

void marshal_VkPhysicalDeviceMultiviewFeatures(
    VulkanStream* vkStream,
    const VkPhysicalDeviceMultiviewFeatures* forMarshaling);

void unmarshal_VkPhysicalDeviceMultiviewFeatures(
    VulkanStream* vkStream,
    VkPhysicalDeviceMultiviewFeatures* forUnmarshaling);

void marshal_VkPhysicalDeviceMultiviewProperties(
    VulkanStream* vkStream,
    const VkPhysicalDeviceMultiviewProperties* forMarshaling);

void unmarshal_VkPhysicalDeviceMultiviewProperties(
    VulkanStream* vkStream,
    VkPhysicalDeviceMultiviewProperties* forUnmarshaling);

void marshal_VkPhysicalDeviceVariablePointerFeatures(
    VulkanStream* vkStream,
    const VkPhysicalDeviceVariablePointerFeatures* forMarshaling);

void unmarshal_VkPhysicalDeviceVariablePointerFeatures(
    VulkanStream* vkStream,
    VkPhysicalDeviceVariablePointerFeatures* forUnmarshaling);

void marshal_VkPhysicalDeviceProtectedMemoryFeatures(
    VulkanStream* vkStream,
    const VkPhysicalDeviceProtectedMemoryFeatures* forMarshaling);

void unmarshal_VkPhysicalDeviceProtectedMemoryFeatures(
    VulkanStream* vkStream,
    VkPhysicalDeviceProtectedMemoryFeatures* forUnmarshaling);

void marshal_VkPhysicalDeviceProtectedMemoryProperties(
    VulkanStream* vkStream,
    const VkPhysicalDeviceProtectedMemoryProperties* forMarshaling);

void unmarshal_VkPhysicalDeviceProtectedMemoryProperties(
    VulkanStream* vkStream,
    VkPhysicalDeviceProtectedMemoryProperties* forUnmarshaling);

void marshal_VkDeviceQueueInfo2(
    VulkanStream* vkStream,
    const VkDeviceQueueInfo2* forMarshaling);

void unmarshal_VkDeviceQueueInfo2(
    VulkanStream* vkStream,
    VkDeviceQueueInfo2* forUnmarshaling);

void marshal_VkProtectedSubmitInfo(
    VulkanStream* vkStream,
    const VkProtectedSubmitInfo* forMarshaling);

void unmarshal_VkProtectedSubmitInfo(
    VulkanStream* vkStream,
    VkProtectedSubmitInfo* forUnmarshaling);

#define OP_vkGetDeviceQueue2 20155
void marshal_VkSamplerYcbcrConversionCreateInfo(
    VulkanStream* vkStream,
    const VkSamplerYcbcrConversionCreateInfo* forMarshaling);

void unmarshal_VkSamplerYcbcrConversionCreateInfo(
    VulkanStream* vkStream,
    VkSamplerYcbcrConversionCreateInfo* forUnmarshaling);

void marshal_VkSamplerYcbcrConversionInfo(
    VulkanStream* vkStream,
    const VkSamplerYcbcrConversionInfo* forMarshaling);

void unmarshal_VkSamplerYcbcrConversionInfo(
    VulkanStream* vkStream,
    VkSamplerYcbcrConversionInfo* forUnmarshaling);

void marshal_VkBindImagePlaneMemoryInfo(
    VulkanStream* vkStream,
    const VkBindImagePlaneMemoryInfo* forMarshaling);

void unmarshal_VkBindImagePlaneMemoryInfo(
    VulkanStream* vkStream,
    VkBindImagePlaneMemoryInfo* forUnmarshaling);

void marshal_VkImagePlaneMemoryRequirementsInfo(
    VulkanStream* vkStream,
    const VkImagePlaneMemoryRequirementsInfo* forMarshaling);

void unmarshal_VkImagePlaneMemoryRequirementsInfo(
    VulkanStream* vkStream,
    VkImagePlaneMemoryRequirementsInfo* forUnmarshaling);

void marshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
    VulkanStream* vkStream,
    const VkPhysicalDeviceSamplerYcbcrConversionFeatures* forMarshaling);

void unmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures(
    VulkanStream* vkStream,
    VkPhysicalDeviceSamplerYcbcrConversionFeatures* forUnmarshaling);

void marshal_VkSamplerYcbcrConversionImageFormatProperties(
    VulkanStream* vkStream,
    const VkSamplerYcbcrConversionImageFormatProperties* forMarshaling);

void unmarshal_VkSamplerYcbcrConversionImageFormatProperties(
    VulkanStream* vkStream,
    VkSamplerYcbcrConversionImageFormatProperties* forUnmarshaling);

#define OP_vkCreateSamplerYcbcrConversion 20156
#define OP_vkDestroySamplerYcbcrConversion 20157
void marshal_VkDescriptorUpdateTemplateEntry(
    VulkanStream* vkStream,
    const VkDescriptorUpdateTemplateEntry* forMarshaling);

void unmarshal_VkDescriptorUpdateTemplateEntry(
    VulkanStream* vkStream,
    VkDescriptorUpdateTemplateEntry* forUnmarshaling);

void marshal_VkDescriptorUpdateTemplateCreateInfo(
    VulkanStream* vkStream,
    const VkDescriptorUpdateTemplateCreateInfo* forMarshaling);

void unmarshal_VkDescriptorUpdateTemplateCreateInfo(
    VulkanStream* vkStream,
    VkDescriptorUpdateTemplateCreateInfo* forUnmarshaling);

#define OP_vkCreateDescriptorUpdateTemplate 20158
#define OP_vkDestroyDescriptorUpdateTemplate 20159
#define OP_vkUpdateDescriptorSetWithTemplate 20160
void marshal_VkExternalMemoryProperties(
    VulkanStream* vkStream,
    const VkExternalMemoryProperties* forMarshaling);

void unmarshal_VkExternalMemoryProperties(
    VulkanStream* vkStream,
    VkExternalMemoryProperties* forUnmarshaling);

void marshal_VkPhysicalDeviceExternalImageFormatInfo(
    VulkanStream* vkStream,
    const VkPhysicalDeviceExternalImageFormatInfo* forMarshaling);

void unmarshal_VkPhysicalDeviceExternalImageFormatInfo(
    VulkanStream* vkStream,
    VkPhysicalDeviceExternalImageFormatInfo* forUnmarshaling);

void marshal_VkExternalImageFormatProperties(
    VulkanStream* vkStream,
    const VkExternalImageFormatProperties* forMarshaling);

void unmarshal_VkExternalImageFormatProperties(
    VulkanStream* vkStream,
    VkExternalImageFormatProperties* forUnmarshaling);

void marshal_VkPhysicalDeviceExternalBufferInfo(
    VulkanStream* vkStream,
    const VkPhysicalDeviceExternalBufferInfo* forMarshaling);

void unmarshal_VkPhysicalDeviceExternalBufferInfo(
    VulkanStream* vkStream,
    VkPhysicalDeviceExternalBufferInfo* forUnmarshaling);

void marshal_VkExternalBufferProperties(
    VulkanStream* vkStream,
    const VkExternalBufferProperties* forMarshaling);

void unmarshal_VkExternalBufferProperties(
    VulkanStream* vkStream,
    VkExternalBufferProperties* forUnmarshaling);

void marshal_VkPhysicalDeviceIDProperties(
    VulkanStream* vkStream,
    const VkPhysicalDeviceIDProperties* forMarshaling);

void unmarshal_VkPhysicalDeviceIDProperties(
    VulkanStream* vkStream,
    VkPhysicalDeviceIDProperties* forUnmarshaling);

#define OP_vkGetPhysicalDeviceExternalBufferProperties 20161
void marshal_VkExternalMemoryImageCreateInfo(
    VulkanStream* vkStream,
    const VkExternalMemoryImageCreateInfo* forMarshaling);

void unmarshal_VkExternalMemoryImageCreateInfo(
    VulkanStream* vkStream,
    VkExternalMemoryImageCreateInfo* forUnmarshaling);

void marshal_VkExternalMemoryBufferCreateInfo(
    VulkanStream* vkStream,
    const VkExternalMemoryBufferCreateInfo* forMarshaling);

void unmarshal_VkExternalMemoryBufferCreateInfo(
    VulkanStream* vkStream,
    VkExternalMemoryBufferCreateInfo* forUnmarshaling);

void marshal_VkExportMemoryAllocateInfo(
    VulkanStream* vkStream,
    const VkExportMemoryAllocateInfo* forMarshaling);

void unmarshal_VkExportMemoryAllocateInfo(
    VulkanStream* vkStream,
    VkExportMemoryAllocateInfo* forUnmarshaling);

void marshal_VkPhysicalDeviceExternalFenceInfo(
    VulkanStream* vkStream,
    const VkPhysicalDeviceExternalFenceInfo* forMarshaling);

void unmarshal_VkPhysicalDeviceExternalFenceInfo(
    VulkanStream* vkStream,
    VkPhysicalDeviceExternalFenceInfo* forUnmarshaling);

void marshal_VkExternalFenceProperties(
    VulkanStream* vkStream,
    const VkExternalFenceProperties* forMarshaling);

void unmarshal_VkExternalFenceProperties(
    VulkanStream* vkStream,
    VkExternalFenceProperties* forUnmarshaling);

#define OP_vkGetPhysicalDeviceExternalFenceProperties 20162
void marshal_VkExportFenceCreateInfo(
    VulkanStream* vkStream,
    const VkExportFenceCreateInfo* forMarshaling);

void unmarshal_VkExportFenceCreateInfo(
    VulkanStream* vkStream,
    VkExportFenceCreateInfo* forUnmarshaling);

void marshal_VkExportSemaphoreCreateInfo(
    VulkanStream* vkStream,
    const VkExportSemaphoreCreateInfo* forMarshaling);

void unmarshal_VkExportSemaphoreCreateInfo(
    VulkanStream* vkStream,
    VkExportSemaphoreCreateInfo* forUnmarshaling);

void marshal_VkPhysicalDeviceExternalSemaphoreInfo(
    VulkanStream* vkStream,
    const VkPhysicalDeviceExternalSemaphoreInfo* forMarshaling);

void unmarshal_VkPhysicalDeviceExternalSemaphoreInfo(
    VulkanStream* vkStream,
    VkPhysicalDeviceExternalSemaphoreInfo* forUnmarshaling);

void marshal_VkExternalSemaphoreProperties(
    VulkanStream* vkStream,
    const VkExternalSemaphoreProperties* forMarshaling);

void unmarshal_VkExternalSemaphoreProperties(
    VulkanStream* vkStream,
    VkExternalSemaphoreProperties* forUnmarshaling);

#define OP_vkGetPhysicalDeviceExternalSemaphoreProperties 20163
void marshal_VkPhysicalDeviceMaintenance3Properties(
    VulkanStream* vkStream,
    const VkPhysicalDeviceMaintenance3Properties* forMarshaling);

void unmarshal_VkPhysicalDeviceMaintenance3Properties(
    VulkanStream* vkStream,
    VkPhysicalDeviceMaintenance3Properties* forUnmarshaling);

void marshal_VkDescriptorSetLayoutSupport(
    VulkanStream* vkStream,
    const VkDescriptorSetLayoutSupport* forMarshaling);

void unmarshal_VkDescriptorSetLayoutSupport(
    VulkanStream* vkStream,
    VkDescriptorSetLayoutSupport* forUnmarshaling);

#define OP_vkGetDescriptorSetLayoutSupport 20164
void marshal_VkPhysicalDeviceShaderDrawParameterFeatures(
    VulkanStream* vkStream,
    const VkPhysicalDeviceShaderDrawParameterFeatures* forMarshaling);

void unmarshal_VkPhysicalDeviceShaderDrawParameterFeatures(
    VulkanStream* vkStream,
    VkPhysicalDeviceShaderDrawParameterFeatures* forUnmarshaling);

#endif
#ifdef VK_KHR_surface
#define OP_vkDestroySurfaceKHR 20165
#define OP_vkGetPhysicalDeviceSurfaceSupportKHR 20166
void marshal_VkSurfaceCapabilitiesKHR(
    VulkanStream* vkStream,
    const VkSurfaceCapabilitiesKHR* forMarshaling);

void unmarshal_VkSurfaceCapabilitiesKHR(
    VulkanStream* vkStream,
    VkSurfaceCapabilitiesKHR* forUnmarshaling);

#define OP_vkGetPhysicalDeviceSurfaceCapabilitiesKHR 20167
void marshal_VkSurfaceFormatKHR(
    VulkanStream* vkStream,
    const VkSurfaceFormatKHR* forMarshaling);

void unmarshal_VkSurfaceFormatKHR(
    VulkanStream* vkStream,
    VkSurfaceFormatKHR* forUnmarshaling);

#define OP_vkGetPhysicalDeviceSurfaceFormatsKHR 20168
#define OP_vkGetPhysicalDeviceSurfacePresentModesKHR 20169
#endif
#ifdef VK_KHR_swapchain
void marshal_VkSwapchainCreateInfoKHR(
    VulkanStream* vkStream,
    const VkSwapchainCreateInfoKHR* forMarshaling);

void unmarshal_VkSwapchainCreateInfoKHR(
    VulkanStream* vkStream,
    VkSwapchainCreateInfoKHR* forUnmarshaling);

#define OP_vkCreateSwapchainKHR 20170
#define OP_vkDestroySwapchainKHR 20171
#define OP_vkGetSwapchainImagesKHR 20172
#define OP_vkAcquireNextImageKHR 20173
void marshal_VkPresentInfoKHR(
    VulkanStream* vkStream,
    const VkPresentInfoKHR* forMarshaling);

void unmarshal_VkPresentInfoKHR(
    VulkanStream* vkStream,
    VkPresentInfoKHR* forUnmarshaling);

#define OP_vkQueuePresentKHR 20174
void marshal_VkImageSwapchainCreateInfoKHR(
    VulkanStream* vkStream,
    const VkImageSwapchainCreateInfoKHR* forMarshaling);

void unmarshal_VkImageSwapchainCreateInfoKHR(
    VulkanStream* vkStream,
    VkImageSwapchainCreateInfoKHR* forUnmarshaling);

void marshal_VkBindImageMemorySwapchainInfoKHR(
    VulkanStream* vkStream,
    const VkBindImageMemorySwapchainInfoKHR* forMarshaling);

void unmarshal_VkBindImageMemorySwapchainInfoKHR(
    VulkanStream* vkStream,
    VkBindImageMemorySwapchainInfoKHR* forUnmarshaling);

void marshal_VkAcquireNextImageInfoKHR(
    VulkanStream* vkStream,
    const VkAcquireNextImageInfoKHR* forMarshaling);

void unmarshal_VkAcquireNextImageInfoKHR(
    VulkanStream* vkStream,
    VkAcquireNextImageInfoKHR* forUnmarshaling);

void marshal_VkDeviceGroupPresentCapabilitiesKHR(
    VulkanStream* vkStream,
    const VkDeviceGroupPresentCapabilitiesKHR* forMarshaling);

void unmarshal_VkDeviceGroupPresentCapabilitiesKHR(
    VulkanStream* vkStream,
    VkDeviceGroupPresentCapabilitiesKHR* forUnmarshaling);

void marshal_VkDeviceGroupPresentInfoKHR(
    VulkanStream* vkStream,
    const VkDeviceGroupPresentInfoKHR* forMarshaling);

void unmarshal_VkDeviceGroupPresentInfoKHR(
    VulkanStream* vkStream,
    VkDeviceGroupPresentInfoKHR* forUnmarshaling);

void marshal_VkDeviceGroupSwapchainCreateInfoKHR(
    VulkanStream* vkStream,
    const VkDeviceGroupSwapchainCreateInfoKHR* forMarshaling);

void unmarshal_VkDeviceGroupSwapchainCreateInfoKHR(
    VulkanStream* vkStream,
    VkDeviceGroupSwapchainCreateInfoKHR* forUnmarshaling);

#define OP_vkGetDeviceGroupPresentCapabilitiesKHR 20175
#define OP_vkGetDeviceGroupSurfacePresentModesKHR 20176
#define OP_vkGetPhysicalDevicePresentRectanglesKHR 20177
#define OP_vkAcquireNextImage2KHR 20178
#endif
#ifdef VK_KHR_display
void marshal_VkDisplayPropertiesKHR(
    VulkanStream* vkStream,
    const VkDisplayPropertiesKHR* forMarshaling);

void unmarshal_VkDisplayPropertiesKHR(
    VulkanStream* vkStream,
    VkDisplayPropertiesKHR* forUnmarshaling);

void marshal_VkDisplayModeParametersKHR(
    VulkanStream* vkStream,
    const VkDisplayModeParametersKHR* forMarshaling);

void unmarshal_VkDisplayModeParametersKHR(
    VulkanStream* vkStream,
    VkDisplayModeParametersKHR* forUnmarshaling);

void marshal_VkDisplayModePropertiesKHR(
    VulkanStream* vkStream,
    const VkDisplayModePropertiesKHR* forMarshaling);

void unmarshal_VkDisplayModePropertiesKHR(
    VulkanStream* vkStream,
    VkDisplayModePropertiesKHR* forUnmarshaling);

void marshal_VkDisplayModeCreateInfoKHR(
    VulkanStream* vkStream,
    const VkDisplayModeCreateInfoKHR* forMarshaling);

void unmarshal_VkDisplayModeCreateInfoKHR(
    VulkanStream* vkStream,
    VkDisplayModeCreateInfoKHR* forUnmarshaling);

void marshal_VkDisplayPlaneCapabilitiesKHR(
    VulkanStream* vkStream,
    const VkDisplayPlaneCapabilitiesKHR* forMarshaling);

void unmarshal_VkDisplayPlaneCapabilitiesKHR(
    VulkanStream* vkStream,
    VkDisplayPlaneCapabilitiesKHR* forUnmarshaling);

void marshal_VkDisplayPlanePropertiesKHR(
    VulkanStream* vkStream,
    const VkDisplayPlanePropertiesKHR* forMarshaling);

void unmarshal_VkDisplayPlanePropertiesKHR(
    VulkanStream* vkStream,
    VkDisplayPlanePropertiesKHR* forUnmarshaling);

void marshal_VkDisplaySurfaceCreateInfoKHR(
    VulkanStream* vkStream,
    const VkDisplaySurfaceCreateInfoKHR* forMarshaling);

void unmarshal_VkDisplaySurfaceCreateInfoKHR(
    VulkanStream* vkStream,
    VkDisplaySurfaceCreateInfoKHR* forUnmarshaling);

#define OP_vkGetPhysicalDeviceDisplayPropertiesKHR 20179
#define OP_vkGetPhysicalDeviceDisplayPlanePropertiesKHR 20180
#define OP_vkGetDisplayPlaneSupportedDisplaysKHR 20181
#define OP_vkGetDisplayModePropertiesKHR 20182
#define OP_vkCreateDisplayModeKHR 20183
#define OP_vkGetDisplayPlaneCapabilitiesKHR 20184
#define OP_vkCreateDisplayPlaneSurfaceKHR 20185
#endif
#ifdef VK_KHR_display_swapchain
void marshal_VkDisplayPresentInfoKHR(
    VulkanStream* vkStream,
    const VkDisplayPresentInfoKHR* forMarshaling);

void unmarshal_VkDisplayPresentInfoKHR(
    VulkanStream* vkStream,
    VkDisplayPresentInfoKHR* forUnmarshaling);

#define OP_vkCreateSharedSwapchainsKHR 20186
#endif
#ifdef VK_KHR_xlib_surface
void marshal_VkXlibSurfaceCreateInfoKHR(
    VulkanStream* vkStream,
    const VkXlibSurfaceCreateInfoKHR* forMarshaling);

void unmarshal_VkXlibSurfaceCreateInfoKHR(
    VulkanStream* vkStream,
    VkXlibSurfaceCreateInfoKHR* forUnmarshaling);

#define OP_vkCreateXlibSurfaceKHR 20187
#define OP_vkGetPhysicalDeviceXlibPresentationSupportKHR 20188
#endif
#ifdef VK_KHR_xcb_surface
void marshal_VkXcbSurfaceCreateInfoKHR(
    VulkanStream* vkStream,
    const VkXcbSurfaceCreateInfoKHR* forMarshaling);

void unmarshal_VkXcbSurfaceCreateInfoKHR(
    VulkanStream* vkStream,
    VkXcbSurfaceCreateInfoKHR* forUnmarshaling);

#define OP_vkCreateXcbSurfaceKHR 20189
#define OP_vkGetPhysicalDeviceXcbPresentationSupportKHR 20190
#endif
#ifdef VK_KHR_wayland_surface
void marshal_VkWaylandSurfaceCreateInfoKHR(
    VulkanStream* vkStream,
    const VkWaylandSurfaceCreateInfoKHR* forMarshaling);

void unmarshal_VkWaylandSurfaceCreateInfoKHR(
    VulkanStream* vkStream,
    VkWaylandSurfaceCreateInfoKHR* forUnmarshaling);

#define OP_vkCreateWaylandSurfaceKHR 20191
#define OP_vkGetPhysicalDeviceWaylandPresentationSupportKHR 20192
#endif
#ifdef VK_KHR_mir_surface
void marshal_VkMirSurfaceCreateInfoKHR(
    VulkanStream* vkStream,
    const VkMirSurfaceCreateInfoKHR* forMarshaling);

void unmarshal_VkMirSurfaceCreateInfoKHR(
    VulkanStream* vkStream,
    VkMirSurfaceCreateInfoKHR* forUnmarshaling);

#define OP_vkCreateMirSurfaceKHR 20193
#define OP_vkGetPhysicalDeviceMirPresentationSupportKHR 20194
#endif
#ifdef VK_KHR_android_surface
void marshal_VkAndroidSurfaceCreateInfoKHR(
    VulkanStream* vkStream,
    const VkAndroidSurfaceCreateInfoKHR* forMarshaling);

void unmarshal_VkAndroidSurfaceCreateInfoKHR(
    VulkanStream* vkStream,
    VkAndroidSurfaceCreateInfoKHR* forUnmarshaling);

#define OP_vkCreateAndroidSurfaceKHR 20195
#endif
#ifdef VK_KHR_win32_surface
void marshal_VkWin32SurfaceCreateInfoKHR(
    VulkanStream* vkStream,
    const VkWin32SurfaceCreateInfoKHR* forMarshaling);

void unmarshal_VkWin32SurfaceCreateInfoKHR(
    VulkanStream* vkStream,
    VkWin32SurfaceCreateInfoKHR* forUnmarshaling);

#define OP_vkCreateWin32SurfaceKHR 20196
#define OP_vkGetPhysicalDeviceWin32PresentationSupportKHR 20197
#endif
#ifdef VK_KHR_sampler_mirror_clamp_to_edge
#endif
#ifdef VK_KHR_multiview
#endif
#ifdef VK_KHR_get_physical_device_properties2
#define OP_vkGetPhysicalDeviceFeatures2KHR 20198
#define OP_vkGetPhysicalDeviceProperties2KHR 20199
#define OP_vkGetPhysicalDeviceFormatProperties2KHR 20200
#define OP_vkGetPhysicalDeviceImageFormatProperties2KHR 20201
#define OP_vkGetPhysicalDeviceQueueFamilyProperties2KHR 20202
#define OP_vkGetPhysicalDeviceMemoryProperties2KHR 20203
#define OP_vkGetPhysicalDeviceSparseImageFormatProperties2KHR 20204
#endif
#ifdef VK_KHR_device_group
#define OP_vkGetDeviceGroupPeerMemoryFeaturesKHR 20205
#define OP_vkCmdSetDeviceMaskKHR 20206
#define OP_vkCmdDispatchBaseKHR 20207
#endif
#ifdef VK_KHR_shader_draw_parameters
#endif
#ifdef VK_KHR_maintenance1
#define OP_vkTrimCommandPoolKHR 20208
#endif
#ifdef VK_KHR_device_group_creation
#define OP_vkEnumeratePhysicalDeviceGroupsKHR 20209
#endif
#ifdef VK_KHR_external_memory_capabilities
#define OP_vkGetPhysicalDeviceExternalBufferPropertiesKHR 20210
#endif
#ifdef VK_KHR_external_memory
#endif
#ifdef VK_KHR_external_memory_win32
void marshal_VkImportMemoryWin32HandleInfoKHR(
    VulkanStream* vkStream,
    const VkImportMemoryWin32HandleInfoKHR* forMarshaling);

void unmarshal_VkImportMemoryWin32HandleInfoKHR(
    VulkanStream* vkStream,
    VkImportMemoryWin32HandleInfoKHR* forUnmarshaling);

void marshal_VkExportMemoryWin32HandleInfoKHR(
    VulkanStream* vkStream,
    const VkExportMemoryWin32HandleInfoKHR* forMarshaling);

void unmarshal_VkExportMemoryWin32HandleInfoKHR(
    VulkanStream* vkStream,
    VkExportMemoryWin32HandleInfoKHR* forUnmarshaling);

void marshal_VkMemoryWin32HandlePropertiesKHR(
    VulkanStream* vkStream,
    const VkMemoryWin32HandlePropertiesKHR* forMarshaling);

void unmarshal_VkMemoryWin32HandlePropertiesKHR(
    VulkanStream* vkStream,
    VkMemoryWin32HandlePropertiesKHR* forUnmarshaling);

void marshal_VkMemoryGetWin32HandleInfoKHR(
    VulkanStream* vkStream,
    const VkMemoryGetWin32HandleInfoKHR* forMarshaling);

void unmarshal_VkMemoryGetWin32HandleInfoKHR(
    VulkanStream* vkStream,
    VkMemoryGetWin32HandleInfoKHR* forUnmarshaling);

#define OP_vkGetMemoryWin32HandleKHR 20211
#define OP_vkGetMemoryWin32HandlePropertiesKHR 20212
#endif
#ifdef VK_KHR_external_memory_fd
void marshal_VkImportMemoryFdInfoKHR(
    VulkanStream* vkStream,
    const VkImportMemoryFdInfoKHR* forMarshaling);

void unmarshal_VkImportMemoryFdInfoKHR(
    VulkanStream* vkStream,
    VkImportMemoryFdInfoKHR* forUnmarshaling);

void marshal_VkMemoryFdPropertiesKHR(
    VulkanStream* vkStream,
    const VkMemoryFdPropertiesKHR* forMarshaling);

void unmarshal_VkMemoryFdPropertiesKHR(
    VulkanStream* vkStream,
    VkMemoryFdPropertiesKHR* forUnmarshaling);

void marshal_VkMemoryGetFdInfoKHR(
    VulkanStream* vkStream,
    const VkMemoryGetFdInfoKHR* forMarshaling);

void unmarshal_VkMemoryGetFdInfoKHR(
    VulkanStream* vkStream,
    VkMemoryGetFdInfoKHR* forUnmarshaling);

#define OP_vkGetMemoryFdKHR 20213
#define OP_vkGetMemoryFdPropertiesKHR 20214
#endif
#ifdef VK_KHR_win32_keyed_mutex
void marshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(
    VulkanStream* vkStream,
    const VkWin32KeyedMutexAcquireReleaseInfoKHR* forMarshaling);

void unmarshal_VkWin32KeyedMutexAcquireReleaseInfoKHR(
    VulkanStream* vkStream,
    VkWin32KeyedMutexAcquireReleaseInfoKHR* forUnmarshaling);

#endif
#ifdef VK_KHR_external_semaphore_capabilities
#define OP_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR 20215
#endif
#ifdef VK_KHR_external_semaphore
#endif
#ifdef VK_KHR_external_semaphore_win32
void marshal_VkImportSemaphoreWin32HandleInfoKHR(
    VulkanStream* vkStream,
    const VkImportSemaphoreWin32HandleInfoKHR* forMarshaling);

void unmarshal_VkImportSemaphoreWin32HandleInfoKHR(
    VulkanStream* vkStream,
    VkImportSemaphoreWin32HandleInfoKHR* forUnmarshaling);

void marshal_VkExportSemaphoreWin32HandleInfoKHR(
    VulkanStream* vkStream,
    const VkExportSemaphoreWin32HandleInfoKHR* forMarshaling);

void unmarshal_VkExportSemaphoreWin32HandleInfoKHR(
    VulkanStream* vkStream,
    VkExportSemaphoreWin32HandleInfoKHR* forUnmarshaling);

void marshal_VkD3D12FenceSubmitInfoKHR(
    VulkanStream* vkStream,
    const VkD3D12FenceSubmitInfoKHR* forMarshaling);

void unmarshal_VkD3D12FenceSubmitInfoKHR(
    VulkanStream* vkStream,
    VkD3D12FenceSubmitInfoKHR* forUnmarshaling);

void marshal_VkSemaphoreGetWin32HandleInfoKHR(
    VulkanStream* vkStream,
    const VkSemaphoreGetWin32HandleInfoKHR* forMarshaling);

void unmarshal_VkSemaphoreGetWin32HandleInfoKHR(
    VulkanStream* vkStream,
    VkSemaphoreGetWin32HandleInfoKHR* forUnmarshaling);

#define OP_vkImportSemaphoreWin32HandleKHR 20216
#define OP_vkGetSemaphoreWin32HandleKHR 20217
#endif
#ifdef VK_KHR_external_semaphore_fd
void marshal_VkImportSemaphoreFdInfoKHR(
    VulkanStream* vkStream,
    const VkImportSemaphoreFdInfoKHR* forMarshaling);

void unmarshal_VkImportSemaphoreFdInfoKHR(
    VulkanStream* vkStream,
    VkImportSemaphoreFdInfoKHR* forUnmarshaling);

void marshal_VkSemaphoreGetFdInfoKHR(
    VulkanStream* vkStream,
    const VkSemaphoreGetFdInfoKHR* forMarshaling);

void unmarshal_VkSemaphoreGetFdInfoKHR(
    VulkanStream* vkStream,
    VkSemaphoreGetFdInfoKHR* forUnmarshaling);

#define OP_vkImportSemaphoreFdKHR 20218
#define OP_vkGetSemaphoreFdKHR 20219
#endif
#ifdef VK_KHR_push_descriptor
void marshal_VkPhysicalDevicePushDescriptorPropertiesKHR(
    VulkanStream* vkStream,
    const VkPhysicalDevicePushDescriptorPropertiesKHR* forMarshaling);

void unmarshal_VkPhysicalDevicePushDescriptorPropertiesKHR(
    VulkanStream* vkStream,
    VkPhysicalDevicePushDescriptorPropertiesKHR* forUnmarshaling);

#define OP_vkCmdPushDescriptorSetKHR 20220
#define OP_vkCmdPushDescriptorSetWithTemplateKHR 20221
#endif
#ifdef VK_KHR_16bit_storage
#endif
#ifdef VK_KHR_incremental_present
void marshal_VkRectLayerKHR(
    VulkanStream* vkStream,
    const VkRectLayerKHR* forMarshaling);

void unmarshal_VkRectLayerKHR(
    VulkanStream* vkStream,
    VkRectLayerKHR* forUnmarshaling);

void marshal_VkPresentRegionKHR(
    VulkanStream* vkStream,
    const VkPresentRegionKHR* forMarshaling);

void unmarshal_VkPresentRegionKHR(
    VulkanStream* vkStream,
    VkPresentRegionKHR* forUnmarshaling);

void marshal_VkPresentRegionsKHR(
    VulkanStream* vkStream,
    const VkPresentRegionsKHR* forMarshaling);

void unmarshal_VkPresentRegionsKHR(
    VulkanStream* vkStream,
    VkPresentRegionsKHR* forUnmarshaling);

#endif
#ifdef VK_KHR_descriptor_update_template
#define OP_vkCreateDescriptorUpdateTemplateKHR 20222
#define OP_vkDestroyDescriptorUpdateTemplateKHR 20223
#define OP_vkUpdateDescriptorSetWithTemplateKHR 20224
#endif
#ifdef VK_KHR_create_renderpass2
void marshal_VkAttachmentDescription2KHR(
    VulkanStream* vkStream,
    const VkAttachmentDescription2KHR* forMarshaling);

void unmarshal_VkAttachmentDescription2KHR(
    VulkanStream* vkStream,
    VkAttachmentDescription2KHR* forUnmarshaling);

void marshal_VkAttachmentReference2KHR(
    VulkanStream* vkStream,
    const VkAttachmentReference2KHR* forMarshaling);

void unmarshal_VkAttachmentReference2KHR(
    VulkanStream* vkStream,
    VkAttachmentReference2KHR* forUnmarshaling);

void marshal_VkSubpassDescription2KHR(
    VulkanStream* vkStream,
    const VkSubpassDescription2KHR* forMarshaling);

void unmarshal_VkSubpassDescription2KHR(
    VulkanStream* vkStream,
    VkSubpassDescription2KHR* forUnmarshaling);

void marshal_VkSubpassDependency2KHR(
    VulkanStream* vkStream,
    const VkSubpassDependency2KHR* forMarshaling);

void unmarshal_VkSubpassDependency2KHR(
    VulkanStream* vkStream,
    VkSubpassDependency2KHR* forUnmarshaling);

void marshal_VkRenderPassCreateInfo2KHR(
    VulkanStream* vkStream,
    const VkRenderPassCreateInfo2KHR* forMarshaling);

void unmarshal_VkRenderPassCreateInfo2KHR(
    VulkanStream* vkStream,
    VkRenderPassCreateInfo2KHR* forUnmarshaling);

#define OP_vkCreateRenderPass2KHR 20225
void marshal_VkSubpassBeginInfoKHR(
    VulkanStream* vkStream,
    const VkSubpassBeginInfoKHR* forMarshaling);

void unmarshal_VkSubpassBeginInfoKHR(
    VulkanStream* vkStream,
    VkSubpassBeginInfoKHR* forUnmarshaling);

#define OP_vkCmdBeginRenderPass2KHR 20226
void marshal_VkSubpassEndInfoKHR(
    VulkanStream* vkStream,
    const VkSubpassEndInfoKHR* forMarshaling);

void unmarshal_VkSubpassEndInfoKHR(
    VulkanStream* vkStream,
    VkSubpassEndInfoKHR* forUnmarshaling);

#define OP_vkCmdNextSubpass2KHR 20227
#define OP_vkCmdEndRenderPass2KHR 20228
#endif
#ifdef VK_KHR_shared_presentable_image
void marshal_VkSharedPresentSurfaceCapabilitiesKHR(
    VulkanStream* vkStream,
    const VkSharedPresentSurfaceCapabilitiesKHR* forMarshaling);

void unmarshal_VkSharedPresentSurfaceCapabilitiesKHR(
    VulkanStream* vkStream,
    VkSharedPresentSurfaceCapabilitiesKHR* forUnmarshaling);

#define OP_vkGetSwapchainStatusKHR 20229
#endif
#ifdef VK_KHR_external_fence_capabilities
#define OP_vkGetPhysicalDeviceExternalFencePropertiesKHR 20230
#endif
#ifdef VK_KHR_external_fence
#endif
#ifdef VK_KHR_external_fence_win32
void marshal_VkImportFenceWin32HandleInfoKHR(
    VulkanStream* vkStream,
    const VkImportFenceWin32HandleInfoKHR* forMarshaling);

void unmarshal_VkImportFenceWin32HandleInfoKHR(
    VulkanStream* vkStream,
    VkImportFenceWin32HandleInfoKHR* forUnmarshaling);

void marshal_VkExportFenceWin32HandleInfoKHR(
    VulkanStream* vkStream,
    const VkExportFenceWin32HandleInfoKHR* forMarshaling);

void unmarshal_VkExportFenceWin32HandleInfoKHR(
    VulkanStream* vkStream,
    VkExportFenceWin32HandleInfoKHR* forUnmarshaling);

void marshal_VkFenceGetWin32HandleInfoKHR(
    VulkanStream* vkStream,
    const VkFenceGetWin32HandleInfoKHR* forMarshaling);

void unmarshal_VkFenceGetWin32HandleInfoKHR(
    VulkanStream* vkStream,
    VkFenceGetWin32HandleInfoKHR* forUnmarshaling);

#define OP_vkImportFenceWin32HandleKHR 20231
#define OP_vkGetFenceWin32HandleKHR 20232
#endif
#ifdef VK_KHR_external_fence_fd
void marshal_VkImportFenceFdInfoKHR(
    VulkanStream* vkStream,
    const VkImportFenceFdInfoKHR* forMarshaling);

void unmarshal_VkImportFenceFdInfoKHR(
    VulkanStream* vkStream,
    VkImportFenceFdInfoKHR* forUnmarshaling);

void marshal_VkFenceGetFdInfoKHR(
    VulkanStream* vkStream,
    const VkFenceGetFdInfoKHR* forMarshaling);

void unmarshal_VkFenceGetFdInfoKHR(
    VulkanStream* vkStream,
    VkFenceGetFdInfoKHR* forUnmarshaling);

#define OP_vkImportFenceFdKHR 20233
#define OP_vkGetFenceFdKHR 20234
#endif
#ifdef VK_KHR_maintenance2
#endif
#ifdef VK_KHR_get_surface_capabilities2
void marshal_VkPhysicalDeviceSurfaceInfo2KHR(
    VulkanStream* vkStream,
    const VkPhysicalDeviceSurfaceInfo2KHR* forMarshaling);

void unmarshal_VkPhysicalDeviceSurfaceInfo2KHR(
    VulkanStream* vkStream,
    VkPhysicalDeviceSurfaceInfo2KHR* forUnmarshaling);

void marshal_VkSurfaceCapabilities2KHR(
    VulkanStream* vkStream,
    const VkSurfaceCapabilities2KHR* forMarshaling);

void unmarshal_VkSurfaceCapabilities2KHR(
    VulkanStream* vkStream,
    VkSurfaceCapabilities2KHR* forUnmarshaling);

void marshal_VkSurfaceFormat2KHR(
    VulkanStream* vkStream,
    const VkSurfaceFormat2KHR* forMarshaling);

void unmarshal_VkSurfaceFormat2KHR(
    VulkanStream* vkStream,
    VkSurfaceFormat2KHR* forUnmarshaling);

#define OP_vkGetPhysicalDeviceSurfaceCapabilities2KHR 20235
#define OP_vkGetPhysicalDeviceSurfaceFormats2KHR 20236
#endif
#ifdef VK_KHR_variable_pointers
#endif
#ifdef VK_KHR_get_display_properties2
void marshal_VkDisplayProperties2KHR(
    VulkanStream* vkStream,
    const VkDisplayProperties2KHR* forMarshaling);

void unmarshal_VkDisplayProperties2KHR(
    VulkanStream* vkStream,
    VkDisplayProperties2KHR* forUnmarshaling);

void marshal_VkDisplayPlaneProperties2KHR(
    VulkanStream* vkStream,
    const VkDisplayPlaneProperties2KHR* forMarshaling);

void unmarshal_VkDisplayPlaneProperties2KHR(
    VulkanStream* vkStream,
    VkDisplayPlaneProperties2KHR* forUnmarshaling);

void marshal_VkDisplayModeProperties2KHR(
    VulkanStream* vkStream,
    const VkDisplayModeProperties2KHR* forMarshaling);

void unmarshal_VkDisplayModeProperties2KHR(
    VulkanStream* vkStream,
    VkDisplayModeProperties2KHR* forUnmarshaling);

void marshal_VkDisplayPlaneInfo2KHR(
    VulkanStream* vkStream,
    const VkDisplayPlaneInfo2KHR* forMarshaling);

void unmarshal_VkDisplayPlaneInfo2KHR(
    VulkanStream* vkStream,
    VkDisplayPlaneInfo2KHR* forUnmarshaling);

void marshal_VkDisplayPlaneCapabilities2KHR(
    VulkanStream* vkStream,
    const VkDisplayPlaneCapabilities2KHR* forMarshaling);

void unmarshal_VkDisplayPlaneCapabilities2KHR(
    VulkanStream* vkStream,
    VkDisplayPlaneCapabilities2KHR* forUnmarshaling);

#define OP_vkGetPhysicalDeviceDisplayProperties2KHR 20237
#define OP_vkGetPhysicalDeviceDisplayPlaneProperties2KHR 20238
#define OP_vkGetDisplayModeProperties2KHR 20239
#define OP_vkGetDisplayPlaneCapabilities2KHR 20240
#endif
#ifdef VK_KHR_dedicated_allocation
#endif
#ifdef VK_KHR_storage_buffer_storage_class
#endif
#ifdef VK_KHR_relaxed_block_layout
#endif
#ifdef VK_KHR_get_memory_requirements2
#define OP_vkGetImageMemoryRequirements2KHR 20241
#define OP_vkGetBufferMemoryRequirements2KHR 20242
#define OP_vkGetImageSparseMemoryRequirements2KHR 20243
#endif
#ifdef VK_KHR_image_format_list
void marshal_VkImageFormatListCreateInfoKHR(
    VulkanStream* vkStream,
    const VkImageFormatListCreateInfoKHR* forMarshaling);

void unmarshal_VkImageFormatListCreateInfoKHR(
    VulkanStream* vkStream,
    VkImageFormatListCreateInfoKHR* forUnmarshaling);

#endif
#ifdef VK_KHR_sampler_ycbcr_conversion
#define OP_vkCreateSamplerYcbcrConversionKHR 20244
#define OP_vkDestroySamplerYcbcrConversionKHR 20245
#endif
#ifdef VK_KHR_bind_memory2
#define OP_vkBindBufferMemory2KHR 20246
#define OP_vkBindImageMemory2KHR 20247
#endif
#ifdef VK_KHR_maintenance3
#define OP_vkGetDescriptorSetLayoutSupportKHR 20248
#endif
#ifdef VK_KHR_draw_indirect_count
#define OP_vkCmdDrawIndirectCountKHR 20249
#define OP_vkCmdDrawIndexedIndirectCountKHR 20250
#endif
#ifdef VK_KHR_8bit_storage
void marshal_VkPhysicalDevice8BitStorageFeaturesKHR(
    VulkanStream* vkStream,
    const VkPhysicalDevice8BitStorageFeaturesKHR* forMarshaling);

void unmarshal_VkPhysicalDevice8BitStorageFeaturesKHR(
    VulkanStream* vkStream,
    VkPhysicalDevice8BitStorageFeaturesKHR* forUnmarshaling);

#endif
#ifdef VK_ANDROID_native_buffer
void marshal_VkNativeBufferANDROID(
    VulkanStream* vkStream,
    const VkNativeBufferANDROID* forMarshaling);

void unmarshal_VkNativeBufferANDROID(
    VulkanStream* vkStream,
    VkNativeBufferANDROID* forUnmarshaling);

#define OP_vkGetSwapchainGrallocUsageANDROID 20251
#define OP_vkAcquireImageANDROID 20252
#define OP_vkQueueSignalReleaseImageANDROID 20253
#endif
#ifdef VK_EXT_debug_report
void marshal_VkDebugReportCallbackCreateInfoEXT(
    VulkanStream* vkStream,
    const VkDebugReportCallbackCreateInfoEXT* forMarshaling);

void unmarshal_VkDebugReportCallbackCreateInfoEXT(
    VulkanStream* vkStream,
    VkDebugReportCallbackCreateInfoEXT* forUnmarshaling);

#define OP_vkCreateDebugReportCallbackEXT 20254
#define OP_vkDestroyDebugReportCallbackEXT 20255
#define OP_vkDebugReportMessageEXT 20256
#endif
#ifdef VK_NV_glsl_shader
#endif
#ifdef VK_EXT_depth_range_unrestricted
#endif
#ifdef VK_IMG_filter_cubic
#endif
#ifdef VK_AMD_rasterization_order
void marshal_VkPipelineRasterizationStateRasterizationOrderAMD(
    VulkanStream* vkStream,
    const VkPipelineRasterizationStateRasterizationOrderAMD* forMarshaling);

void unmarshal_VkPipelineRasterizationStateRasterizationOrderAMD(
    VulkanStream* vkStream,
    VkPipelineRasterizationStateRasterizationOrderAMD* forUnmarshaling);

#endif
#ifdef VK_AMD_shader_trinary_minmax
#endif
#ifdef VK_AMD_shader_explicit_vertex_parameter
#endif
#ifdef VK_EXT_debug_marker
void marshal_VkDebugMarkerObjectNameInfoEXT(
    VulkanStream* vkStream,
    const VkDebugMarkerObjectNameInfoEXT* forMarshaling);

void unmarshal_VkDebugMarkerObjectNameInfoEXT(
    VulkanStream* vkStream,
    VkDebugMarkerObjectNameInfoEXT* forUnmarshaling);

void marshal_VkDebugMarkerObjectTagInfoEXT(
    VulkanStream* vkStream,
    const VkDebugMarkerObjectTagInfoEXT* forMarshaling);

void unmarshal_VkDebugMarkerObjectTagInfoEXT(
    VulkanStream* vkStream,
    VkDebugMarkerObjectTagInfoEXT* forUnmarshaling);

void marshal_VkDebugMarkerMarkerInfoEXT(
    VulkanStream* vkStream,
    const VkDebugMarkerMarkerInfoEXT* forMarshaling);

void unmarshal_VkDebugMarkerMarkerInfoEXT(
    VulkanStream* vkStream,
    VkDebugMarkerMarkerInfoEXT* forUnmarshaling);

#define OP_vkDebugMarkerSetObjectTagEXT 20257
#define OP_vkDebugMarkerSetObjectNameEXT 20258
#define OP_vkCmdDebugMarkerBeginEXT 20259
#define OP_vkCmdDebugMarkerEndEXT 20260
#define OP_vkCmdDebugMarkerInsertEXT 20261
#endif
#ifdef VK_AMD_gcn_shader
#endif
#ifdef VK_NV_dedicated_allocation
void marshal_VkDedicatedAllocationImageCreateInfoNV(
    VulkanStream* vkStream,
    const VkDedicatedAllocationImageCreateInfoNV* forMarshaling);

void unmarshal_VkDedicatedAllocationImageCreateInfoNV(
    VulkanStream* vkStream,
    VkDedicatedAllocationImageCreateInfoNV* forUnmarshaling);

void marshal_VkDedicatedAllocationBufferCreateInfoNV(
    VulkanStream* vkStream,
    const VkDedicatedAllocationBufferCreateInfoNV* forMarshaling);

void unmarshal_VkDedicatedAllocationBufferCreateInfoNV(
    VulkanStream* vkStream,
    VkDedicatedAllocationBufferCreateInfoNV* forUnmarshaling);

void marshal_VkDedicatedAllocationMemoryAllocateInfoNV(
    VulkanStream* vkStream,
    const VkDedicatedAllocationMemoryAllocateInfoNV* forMarshaling);

void unmarshal_VkDedicatedAllocationMemoryAllocateInfoNV(
    VulkanStream* vkStream,
    VkDedicatedAllocationMemoryAllocateInfoNV* forUnmarshaling);

#endif
#ifdef VK_AMD_draw_indirect_count
#define OP_vkCmdDrawIndirectCountAMD 20262
#define OP_vkCmdDrawIndexedIndirectCountAMD 20263
#endif
#ifdef VK_AMD_negative_viewport_height
#endif
#ifdef VK_AMD_gpu_shader_half_float
#endif
#ifdef VK_AMD_shader_ballot
#endif
#ifdef VK_AMD_texture_gather_bias_lod
void marshal_VkTextureLODGatherFormatPropertiesAMD(
    VulkanStream* vkStream,
    const VkTextureLODGatherFormatPropertiesAMD* forMarshaling);

void unmarshal_VkTextureLODGatherFormatPropertiesAMD(
    VulkanStream* vkStream,
    VkTextureLODGatherFormatPropertiesAMD* forUnmarshaling);

#endif
#ifdef VK_AMD_shader_info
void marshal_VkShaderResourceUsageAMD(
    VulkanStream* vkStream,
    const VkShaderResourceUsageAMD* forMarshaling);

void unmarshal_VkShaderResourceUsageAMD(
    VulkanStream* vkStream,
    VkShaderResourceUsageAMD* forUnmarshaling);

void marshal_VkShaderStatisticsInfoAMD(
    VulkanStream* vkStream,
    const VkShaderStatisticsInfoAMD* forMarshaling);

void unmarshal_VkShaderStatisticsInfoAMD(
    VulkanStream* vkStream,
    VkShaderStatisticsInfoAMD* forUnmarshaling);

#define OP_vkGetShaderInfoAMD 20264
#endif
#ifdef VK_AMD_shader_image_load_store_lod
#endif
#ifdef VK_IMG_format_pvrtc
#endif
#ifdef VK_NV_external_memory_capabilities
void marshal_VkExternalImageFormatPropertiesNV(
    VulkanStream* vkStream,
    const VkExternalImageFormatPropertiesNV* forMarshaling);

void unmarshal_VkExternalImageFormatPropertiesNV(
    VulkanStream* vkStream,
    VkExternalImageFormatPropertiesNV* forUnmarshaling);

#define OP_vkGetPhysicalDeviceExternalImageFormatPropertiesNV 20265
#endif
#ifdef VK_NV_external_memory
void marshal_VkExternalMemoryImageCreateInfoNV(
    VulkanStream* vkStream,
    const VkExternalMemoryImageCreateInfoNV* forMarshaling);

void unmarshal_VkExternalMemoryImageCreateInfoNV(
    VulkanStream* vkStream,
    VkExternalMemoryImageCreateInfoNV* forUnmarshaling);

void marshal_VkExportMemoryAllocateInfoNV(
    VulkanStream* vkStream,
    const VkExportMemoryAllocateInfoNV* forMarshaling);

void unmarshal_VkExportMemoryAllocateInfoNV(
    VulkanStream* vkStream,
    VkExportMemoryAllocateInfoNV* forUnmarshaling);

#endif
#ifdef VK_NV_external_memory_win32
void marshal_VkImportMemoryWin32HandleInfoNV(
    VulkanStream* vkStream,
    const VkImportMemoryWin32HandleInfoNV* forMarshaling);

void unmarshal_VkImportMemoryWin32HandleInfoNV(
    VulkanStream* vkStream,
    VkImportMemoryWin32HandleInfoNV* forUnmarshaling);

void marshal_VkExportMemoryWin32HandleInfoNV(
    VulkanStream* vkStream,
    const VkExportMemoryWin32HandleInfoNV* forMarshaling);

void unmarshal_VkExportMemoryWin32HandleInfoNV(
    VulkanStream* vkStream,
    VkExportMemoryWin32HandleInfoNV* forUnmarshaling);

#define OP_vkGetMemoryWin32HandleNV 20266
#endif
#ifdef VK_NV_win32_keyed_mutex
void marshal_VkWin32KeyedMutexAcquireReleaseInfoNV(
    VulkanStream* vkStream,
    const VkWin32KeyedMutexAcquireReleaseInfoNV* forMarshaling);

void unmarshal_VkWin32KeyedMutexAcquireReleaseInfoNV(
    VulkanStream* vkStream,
    VkWin32KeyedMutexAcquireReleaseInfoNV* forUnmarshaling);

#endif
#ifdef VK_EXT_validation_flags
void marshal_VkValidationFlagsEXT(
    VulkanStream* vkStream,
    const VkValidationFlagsEXT* forMarshaling);

void unmarshal_VkValidationFlagsEXT(
    VulkanStream* vkStream,
    VkValidationFlagsEXT* forUnmarshaling);

#endif
#ifdef VK_NN_vi_surface
void marshal_VkViSurfaceCreateInfoNN(
    VulkanStream* vkStream,
    const VkViSurfaceCreateInfoNN* forMarshaling);

void unmarshal_VkViSurfaceCreateInfoNN(
    VulkanStream* vkStream,
    VkViSurfaceCreateInfoNN* forUnmarshaling);

#define OP_vkCreateViSurfaceNN 20267
#endif
#ifdef VK_EXT_shader_subgroup_ballot
#endif
#ifdef VK_EXT_shader_subgroup_vote
#endif
#ifdef VK_EXT_conditional_rendering
void marshal_VkConditionalRenderingBeginInfoEXT(
    VulkanStream* vkStream,
    const VkConditionalRenderingBeginInfoEXT* forMarshaling);

void unmarshal_VkConditionalRenderingBeginInfoEXT(
    VulkanStream* vkStream,
    VkConditionalRenderingBeginInfoEXT* forUnmarshaling);

void marshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
    VulkanStream* vkStream,
    const VkPhysicalDeviceConditionalRenderingFeaturesEXT* forMarshaling);

void unmarshal_VkPhysicalDeviceConditionalRenderingFeaturesEXT(
    VulkanStream* vkStream,
    VkPhysicalDeviceConditionalRenderingFeaturesEXT* forUnmarshaling);

void marshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
    VulkanStream* vkStream,
    const VkCommandBufferInheritanceConditionalRenderingInfoEXT* forMarshaling);

void unmarshal_VkCommandBufferInheritanceConditionalRenderingInfoEXT(
    VulkanStream* vkStream,
    VkCommandBufferInheritanceConditionalRenderingInfoEXT* forUnmarshaling);

#define OP_vkCmdBeginConditionalRenderingEXT 20268
#define OP_vkCmdEndConditionalRenderingEXT 20269
#endif
#ifdef VK_NVX_device_generated_commands
void marshal_VkDeviceGeneratedCommandsFeaturesNVX(
    VulkanStream* vkStream,
    const VkDeviceGeneratedCommandsFeaturesNVX* forMarshaling);

void unmarshal_VkDeviceGeneratedCommandsFeaturesNVX(
    VulkanStream* vkStream,
    VkDeviceGeneratedCommandsFeaturesNVX* forUnmarshaling);

void marshal_VkDeviceGeneratedCommandsLimitsNVX(
    VulkanStream* vkStream,
    const VkDeviceGeneratedCommandsLimitsNVX* forMarshaling);

void unmarshal_VkDeviceGeneratedCommandsLimitsNVX(
    VulkanStream* vkStream,
    VkDeviceGeneratedCommandsLimitsNVX* forUnmarshaling);

void marshal_VkIndirectCommandsTokenNVX(
    VulkanStream* vkStream,
    const VkIndirectCommandsTokenNVX* forMarshaling);

void unmarshal_VkIndirectCommandsTokenNVX(
    VulkanStream* vkStream,
    VkIndirectCommandsTokenNVX* forUnmarshaling);

void marshal_VkIndirectCommandsLayoutTokenNVX(
    VulkanStream* vkStream,
    const VkIndirectCommandsLayoutTokenNVX* forMarshaling);

void unmarshal_VkIndirectCommandsLayoutTokenNVX(
    VulkanStream* vkStream,
    VkIndirectCommandsLayoutTokenNVX* forUnmarshaling);

void marshal_VkIndirectCommandsLayoutCreateInfoNVX(
    VulkanStream* vkStream,
    const VkIndirectCommandsLayoutCreateInfoNVX* forMarshaling);

void unmarshal_VkIndirectCommandsLayoutCreateInfoNVX(
    VulkanStream* vkStream,
    VkIndirectCommandsLayoutCreateInfoNVX* forUnmarshaling);

void marshal_VkCmdProcessCommandsInfoNVX(
    VulkanStream* vkStream,
    const VkCmdProcessCommandsInfoNVX* forMarshaling);

void unmarshal_VkCmdProcessCommandsInfoNVX(
    VulkanStream* vkStream,
    VkCmdProcessCommandsInfoNVX* forUnmarshaling);

void marshal_VkCmdReserveSpaceForCommandsInfoNVX(
    VulkanStream* vkStream,
    const VkCmdReserveSpaceForCommandsInfoNVX* forMarshaling);

void unmarshal_VkCmdReserveSpaceForCommandsInfoNVX(
    VulkanStream* vkStream,
    VkCmdReserveSpaceForCommandsInfoNVX* forUnmarshaling);

void marshal_VkObjectTableCreateInfoNVX(
    VulkanStream* vkStream,
    const VkObjectTableCreateInfoNVX* forMarshaling);

void unmarshal_VkObjectTableCreateInfoNVX(
    VulkanStream* vkStream,
    VkObjectTableCreateInfoNVX* forUnmarshaling);

void marshal_VkObjectTableEntryNVX(
    VulkanStream* vkStream,
    const VkObjectTableEntryNVX* forMarshaling);

void unmarshal_VkObjectTableEntryNVX(
    VulkanStream* vkStream,
    VkObjectTableEntryNVX* forUnmarshaling);

void marshal_VkObjectTablePipelineEntryNVX(
    VulkanStream* vkStream,
    const VkObjectTablePipelineEntryNVX* forMarshaling);

void unmarshal_VkObjectTablePipelineEntryNVX(
    VulkanStream* vkStream,
    VkObjectTablePipelineEntryNVX* forUnmarshaling);

void marshal_VkObjectTableDescriptorSetEntryNVX(
    VulkanStream* vkStream,
    const VkObjectTableDescriptorSetEntryNVX* forMarshaling);

void unmarshal_VkObjectTableDescriptorSetEntryNVX(
    VulkanStream* vkStream,
    VkObjectTableDescriptorSetEntryNVX* forUnmarshaling);

void marshal_VkObjectTableVertexBufferEntryNVX(
    VulkanStream* vkStream,
    const VkObjectTableVertexBufferEntryNVX* forMarshaling);

void unmarshal_VkObjectTableVertexBufferEntryNVX(
    VulkanStream* vkStream,
    VkObjectTableVertexBufferEntryNVX* forUnmarshaling);

void marshal_VkObjectTableIndexBufferEntryNVX(
    VulkanStream* vkStream,
    const VkObjectTableIndexBufferEntryNVX* forMarshaling);

void unmarshal_VkObjectTableIndexBufferEntryNVX(
    VulkanStream* vkStream,
    VkObjectTableIndexBufferEntryNVX* forUnmarshaling);

void marshal_VkObjectTablePushConstantEntryNVX(
    VulkanStream* vkStream,
    const VkObjectTablePushConstantEntryNVX* forMarshaling);

void unmarshal_VkObjectTablePushConstantEntryNVX(
    VulkanStream* vkStream,
    VkObjectTablePushConstantEntryNVX* forUnmarshaling);

#define OP_vkCmdProcessCommandsNVX 20270
#define OP_vkCmdReserveSpaceForCommandsNVX 20271
#define OP_vkCreateIndirectCommandsLayoutNVX 20272
#define OP_vkDestroyIndirectCommandsLayoutNVX 20273
#define OP_vkCreateObjectTableNVX 20274
#define OP_vkDestroyObjectTableNVX 20275
#define OP_vkRegisterObjectsNVX 20276
#define OP_vkUnregisterObjectsNVX 20277
#define OP_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX 20278
#endif
#ifdef VK_NV_clip_space_w_scaling
void marshal_VkViewportWScalingNV(
    VulkanStream* vkStream,
    const VkViewportWScalingNV* forMarshaling);

void unmarshal_VkViewportWScalingNV(
    VulkanStream* vkStream,
    VkViewportWScalingNV* forUnmarshaling);

void marshal_VkPipelineViewportWScalingStateCreateInfoNV(
    VulkanStream* vkStream,
    const VkPipelineViewportWScalingStateCreateInfoNV* forMarshaling);

void unmarshal_VkPipelineViewportWScalingStateCreateInfoNV(
    VulkanStream* vkStream,
    VkPipelineViewportWScalingStateCreateInfoNV* forUnmarshaling);

#define OP_vkCmdSetViewportWScalingNV 20279
#endif
#ifdef VK_EXT_direct_mode_display
#define OP_vkReleaseDisplayEXT 20280
#endif
#ifdef VK_EXT_acquire_xlib_display
#define OP_vkAcquireXlibDisplayEXT 20281
#define OP_vkGetRandROutputDisplayEXT 20282
#endif
#ifdef VK_EXT_display_surface_counter
void marshal_VkSurfaceCapabilities2EXT(
    VulkanStream* vkStream,
    const VkSurfaceCapabilities2EXT* forMarshaling);

void unmarshal_VkSurfaceCapabilities2EXT(
    VulkanStream* vkStream,
    VkSurfaceCapabilities2EXT* forUnmarshaling);

#define OP_vkGetPhysicalDeviceSurfaceCapabilities2EXT 20283
#endif
#ifdef VK_EXT_display_control
void marshal_VkDisplayPowerInfoEXT(
    VulkanStream* vkStream,
    const VkDisplayPowerInfoEXT* forMarshaling);

void unmarshal_VkDisplayPowerInfoEXT(
    VulkanStream* vkStream,
    VkDisplayPowerInfoEXT* forUnmarshaling);

void marshal_VkDeviceEventInfoEXT(
    VulkanStream* vkStream,
    const VkDeviceEventInfoEXT* forMarshaling);

void unmarshal_VkDeviceEventInfoEXT(
    VulkanStream* vkStream,
    VkDeviceEventInfoEXT* forUnmarshaling);

void marshal_VkDisplayEventInfoEXT(
    VulkanStream* vkStream,
    const VkDisplayEventInfoEXT* forMarshaling);

void unmarshal_VkDisplayEventInfoEXT(
    VulkanStream* vkStream,
    VkDisplayEventInfoEXT* forUnmarshaling);

void marshal_VkSwapchainCounterCreateInfoEXT(
    VulkanStream* vkStream,
    const VkSwapchainCounterCreateInfoEXT* forMarshaling);

void unmarshal_VkSwapchainCounterCreateInfoEXT(
    VulkanStream* vkStream,
    VkSwapchainCounterCreateInfoEXT* forUnmarshaling);

#define OP_vkDisplayPowerControlEXT 20284
#define OP_vkRegisterDeviceEventEXT 20285
#define OP_vkRegisterDisplayEventEXT 20286
#define OP_vkGetSwapchainCounterEXT 20287
#endif
#ifdef VK_GOOGLE_display_timing
void marshal_VkRefreshCycleDurationGOOGLE(
    VulkanStream* vkStream,
    const VkRefreshCycleDurationGOOGLE* forMarshaling);

void unmarshal_VkRefreshCycleDurationGOOGLE(
    VulkanStream* vkStream,
    VkRefreshCycleDurationGOOGLE* forUnmarshaling);

void marshal_VkPastPresentationTimingGOOGLE(
    VulkanStream* vkStream,
    const VkPastPresentationTimingGOOGLE* forMarshaling);

void unmarshal_VkPastPresentationTimingGOOGLE(
    VulkanStream* vkStream,
    VkPastPresentationTimingGOOGLE* forUnmarshaling);

void marshal_VkPresentTimeGOOGLE(
    VulkanStream* vkStream,
    const VkPresentTimeGOOGLE* forMarshaling);

void unmarshal_VkPresentTimeGOOGLE(
    VulkanStream* vkStream,
    VkPresentTimeGOOGLE* forUnmarshaling);

void marshal_VkPresentTimesInfoGOOGLE(
    VulkanStream* vkStream,
    const VkPresentTimesInfoGOOGLE* forMarshaling);

void unmarshal_VkPresentTimesInfoGOOGLE(
    VulkanStream* vkStream,
    VkPresentTimesInfoGOOGLE* forUnmarshaling);

#define OP_vkGetRefreshCycleDurationGOOGLE 20288
#define OP_vkGetPastPresentationTimingGOOGLE 20289
#endif
#ifdef VK_NV_sample_mask_override_coverage
#endif
#ifdef VK_NV_geometry_shader_passthrough
#endif
#ifdef VK_NV_viewport_array2
#endif
#ifdef VK_NVX_multiview_per_view_attributes
void marshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
    VulkanStream* vkStream,
    const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* forMarshaling);

void unmarshal_VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(
    VulkanStream* vkStream,
    VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* forUnmarshaling);

#endif
#ifdef VK_NV_viewport_swizzle
void marshal_VkViewportSwizzleNV(
    VulkanStream* vkStream,
    const VkViewportSwizzleNV* forMarshaling);

void unmarshal_VkViewportSwizzleNV(
    VulkanStream* vkStream,
    VkViewportSwizzleNV* forUnmarshaling);

void marshal_VkPipelineViewportSwizzleStateCreateInfoNV(
    VulkanStream* vkStream,
    const VkPipelineViewportSwizzleStateCreateInfoNV* forMarshaling);

void unmarshal_VkPipelineViewportSwizzleStateCreateInfoNV(
    VulkanStream* vkStream,
    VkPipelineViewportSwizzleStateCreateInfoNV* forUnmarshaling);

#endif
#ifdef VK_EXT_discard_rectangles
void marshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
    VulkanStream* vkStream,
    const VkPhysicalDeviceDiscardRectanglePropertiesEXT* forMarshaling);

void unmarshal_VkPhysicalDeviceDiscardRectanglePropertiesEXT(
    VulkanStream* vkStream,
    VkPhysicalDeviceDiscardRectanglePropertiesEXT* forUnmarshaling);

void marshal_VkPipelineDiscardRectangleStateCreateInfoEXT(
    VulkanStream* vkStream,
    const VkPipelineDiscardRectangleStateCreateInfoEXT* forMarshaling);

void unmarshal_VkPipelineDiscardRectangleStateCreateInfoEXT(
    VulkanStream* vkStream,
    VkPipelineDiscardRectangleStateCreateInfoEXT* forUnmarshaling);

#define OP_vkCmdSetDiscardRectangleEXT 20290
#endif
#ifdef VK_EXT_conservative_rasterization
void marshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
    VulkanStream* vkStream,
    const VkPhysicalDeviceConservativeRasterizationPropertiesEXT* forMarshaling);

void unmarshal_VkPhysicalDeviceConservativeRasterizationPropertiesEXT(
    VulkanStream* vkStream,
    VkPhysicalDeviceConservativeRasterizationPropertiesEXT* forUnmarshaling);

void marshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(
    VulkanStream* vkStream,
    const VkPipelineRasterizationConservativeStateCreateInfoEXT* forMarshaling);

void unmarshal_VkPipelineRasterizationConservativeStateCreateInfoEXT(
    VulkanStream* vkStream,
    VkPipelineRasterizationConservativeStateCreateInfoEXT* forUnmarshaling);

#endif
#ifdef VK_EXT_swapchain_colorspace
#endif
#ifdef VK_EXT_hdr_metadata
void marshal_VkXYColorEXT(
    VulkanStream* vkStream,
    const VkXYColorEXT* forMarshaling);

void unmarshal_VkXYColorEXT(
    VulkanStream* vkStream,
    VkXYColorEXT* forUnmarshaling);

void marshal_VkHdrMetadataEXT(
    VulkanStream* vkStream,
    const VkHdrMetadataEXT* forMarshaling);

void unmarshal_VkHdrMetadataEXT(
    VulkanStream* vkStream,
    VkHdrMetadataEXT* forUnmarshaling);

#define OP_vkSetHdrMetadataEXT 20291
#endif
#ifdef VK_MVK_ios_surface
void marshal_VkIOSSurfaceCreateInfoMVK(
    VulkanStream* vkStream,
    const VkIOSSurfaceCreateInfoMVK* forMarshaling);

void unmarshal_VkIOSSurfaceCreateInfoMVK(
    VulkanStream* vkStream,
    VkIOSSurfaceCreateInfoMVK* forUnmarshaling);

#define OP_vkCreateIOSSurfaceMVK 20292
#endif
#ifdef VK_MVK_macos_surface
void marshal_VkMacOSSurfaceCreateInfoMVK(
    VulkanStream* vkStream,
    const VkMacOSSurfaceCreateInfoMVK* forMarshaling);

void unmarshal_VkMacOSSurfaceCreateInfoMVK(
    VulkanStream* vkStream,
    VkMacOSSurfaceCreateInfoMVK* forUnmarshaling);

#define OP_vkCreateMacOSSurfaceMVK 20293
#endif
#ifdef VK_EXT_external_memory_dma_buf
#endif
#ifdef VK_EXT_queue_family_foreign
#endif
#ifdef VK_EXT_debug_utils
void marshal_VkDebugUtilsObjectNameInfoEXT(
    VulkanStream* vkStream,
    const VkDebugUtilsObjectNameInfoEXT* forMarshaling);

void unmarshal_VkDebugUtilsObjectNameInfoEXT(
    VulkanStream* vkStream,
    VkDebugUtilsObjectNameInfoEXT* forUnmarshaling);

void marshal_VkDebugUtilsObjectTagInfoEXT(
    VulkanStream* vkStream,
    const VkDebugUtilsObjectTagInfoEXT* forMarshaling);

void unmarshal_VkDebugUtilsObjectTagInfoEXT(
    VulkanStream* vkStream,
    VkDebugUtilsObjectTagInfoEXT* forUnmarshaling);

void marshal_VkDebugUtilsLabelEXT(
    VulkanStream* vkStream,
    const VkDebugUtilsLabelEXT* forMarshaling);

void unmarshal_VkDebugUtilsLabelEXT(
    VulkanStream* vkStream,
    VkDebugUtilsLabelEXT* forUnmarshaling);

void marshal_VkDebugUtilsMessengerCallbackDataEXT(
    VulkanStream* vkStream,
    const VkDebugUtilsMessengerCallbackDataEXT* forMarshaling);

void unmarshal_VkDebugUtilsMessengerCallbackDataEXT(
    VulkanStream* vkStream,
    VkDebugUtilsMessengerCallbackDataEXT* forUnmarshaling);

void marshal_VkDebugUtilsMessengerCreateInfoEXT(
    VulkanStream* vkStream,
    const VkDebugUtilsMessengerCreateInfoEXT* forMarshaling);

void unmarshal_VkDebugUtilsMessengerCreateInfoEXT(
    VulkanStream* vkStream,
    VkDebugUtilsMessengerCreateInfoEXT* forUnmarshaling);

#define OP_vkSetDebugUtilsObjectNameEXT 20294
#define OP_vkSetDebugUtilsObjectTagEXT 20295
#define OP_vkQueueBeginDebugUtilsLabelEXT 20296
#define OP_vkQueueEndDebugUtilsLabelEXT 20297
#define OP_vkQueueInsertDebugUtilsLabelEXT 20298
#define OP_vkCmdBeginDebugUtilsLabelEXT 20299
#define OP_vkCmdEndDebugUtilsLabelEXT 20300
#define OP_vkCmdInsertDebugUtilsLabelEXT 20301
#define OP_vkCreateDebugUtilsMessengerEXT 20302
#define OP_vkDestroyDebugUtilsMessengerEXT 20303
#define OP_vkSubmitDebugUtilsMessageEXT 20304
#endif
#ifdef VK_ANDROID_external_memory_android_hardware_buffer
void marshal_VkAndroidHardwareBufferUsageANDROID(
    VulkanStream* vkStream,
    const VkAndroidHardwareBufferUsageANDROID* forMarshaling);

void unmarshal_VkAndroidHardwareBufferUsageANDROID(
    VulkanStream* vkStream,
    VkAndroidHardwareBufferUsageANDROID* forUnmarshaling);

void marshal_VkAndroidHardwareBufferPropertiesANDROID(
    VulkanStream* vkStream,
    const VkAndroidHardwareBufferPropertiesANDROID* forMarshaling);

void unmarshal_VkAndroidHardwareBufferPropertiesANDROID(
    VulkanStream* vkStream,
    VkAndroidHardwareBufferPropertiesANDROID* forUnmarshaling);

void marshal_VkAndroidHardwareBufferFormatPropertiesANDROID(
    VulkanStream* vkStream,
    const VkAndroidHardwareBufferFormatPropertiesANDROID* forMarshaling);

void unmarshal_VkAndroidHardwareBufferFormatPropertiesANDROID(
    VulkanStream* vkStream,
    VkAndroidHardwareBufferFormatPropertiesANDROID* forUnmarshaling);

void marshal_VkImportAndroidHardwareBufferInfoANDROID(
    VulkanStream* vkStream,
    const VkImportAndroidHardwareBufferInfoANDROID* forMarshaling);

void unmarshal_VkImportAndroidHardwareBufferInfoANDROID(
    VulkanStream* vkStream,
    VkImportAndroidHardwareBufferInfoANDROID* forUnmarshaling);

void marshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(
    VulkanStream* vkStream,
    const VkMemoryGetAndroidHardwareBufferInfoANDROID* forMarshaling);

void unmarshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(
    VulkanStream* vkStream,
    VkMemoryGetAndroidHardwareBufferInfoANDROID* forUnmarshaling);

void marshal_VkExternalFormatANDROID(
    VulkanStream* vkStream,
    const VkExternalFormatANDROID* forMarshaling);

void unmarshal_VkExternalFormatANDROID(
    VulkanStream* vkStream,
    VkExternalFormatANDROID* forUnmarshaling);

#define OP_vkGetAndroidHardwareBufferPropertiesANDROID 20305
#define OP_vkGetMemoryAndroidHardwareBufferANDROID 20306
#endif
#ifdef VK_EXT_sampler_filter_minmax
void marshal_VkSamplerReductionModeCreateInfoEXT(
    VulkanStream* vkStream,
    const VkSamplerReductionModeCreateInfoEXT* forMarshaling);

void unmarshal_VkSamplerReductionModeCreateInfoEXT(
    VulkanStream* vkStream,
    VkSamplerReductionModeCreateInfoEXT* forUnmarshaling);

void marshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
    VulkanStream* vkStream,
    const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* forMarshaling);

void unmarshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
    VulkanStream* vkStream,
    VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* forUnmarshaling);

#endif
#ifdef VK_AMD_gpu_shader_int16
#endif
#ifdef VK_AMD_mixed_attachment_samples
#endif
#ifdef VK_AMD_shader_fragment_mask
#endif
#ifdef VK_EXT_shader_stencil_export
#endif
#ifdef VK_EXT_sample_locations
void marshal_VkSampleLocationEXT(
    VulkanStream* vkStream,
    const VkSampleLocationEXT* forMarshaling);

void unmarshal_VkSampleLocationEXT(
    VulkanStream* vkStream,
    VkSampleLocationEXT* forUnmarshaling);

void marshal_VkSampleLocationsInfoEXT(
    VulkanStream* vkStream,
    const VkSampleLocationsInfoEXT* forMarshaling);

void unmarshal_VkSampleLocationsInfoEXT(
    VulkanStream* vkStream,
    VkSampleLocationsInfoEXT* forUnmarshaling);

void marshal_VkAttachmentSampleLocationsEXT(
    VulkanStream* vkStream,
    const VkAttachmentSampleLocationsEXT* forMarshaling);

void unmarshal_VkAttachmentSampleLocationsEXT(
    VulkanStream* vkStream,
    VkAttachmentSampleLocationsEXT* forUnmarshaling);

void marshal_VkSubpassSampleLocationsEXT(
    VulkanStream* vkStream,
    const VkSubpassSampleLocationsEXT* forMarshaling);

void unmarshal_VkSubpassSampleLocationsEXT(
    VulkanStream* vkStream,
    VkSubpassSampleLocationsEXT* forUnmarshaling);

void marshal_VkRenderPassSampleLocationsBeginInfoEXT(
    VulkanStream* vkStream,
    const VkRenderPassSampleLocationsBeginInfoEXT* forMarshaling);

void unmarshal_VkRenderPassSampleLocationsBeginInfoEXT(
    VulkanStream* vkStream,
    VkRenderPassSampleLocationsBeginInfoEXT* forUnmarshaling);

void marshal_VkPipelineSampleLocationsStateCreateInfoEXT(
    VulkanStream* vkStream,
    const VkPipelineSampleLocationsStateCreateInfoEXT* forMarshaling);

void unmarshal_VkPipelineSampleLocationsStateCreateInfoEXT(
    VulkanStream* vkStream,
    VkPipelineSampleLocationsStateCreateInfoEXT* forUnmarshaling);

void marshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(
    VulkanStream* vkStream,
    const VkPhysicalDeviceSampleLocationsPropertiesEXT* forMarshaling);

void unmarshal_VkPhysicalDeviceSampleLocationsPropertiesEXT(
    VulkanStream* vkStream,
    VkPhysicalDeviceSampleLocationsPropertiesEXT* forUnmarshaling);

void marshal_VkMultisamplePropertiesEXT(
    VulkanStream* vkStream,
    const VkMultisamplePropertiesEXT* forMarshaling);

void unmarshal_VkMultisamplePropertiesEXT(
    VulkanStream* vkStream,
    VkMultisamplePropertiesEXT* forUnmarshaling);

#define OP_vkCmdSetSampleLocationsEXT 20307
#define OP_vkGetPhysicalDeviceMultisamplePropertiesEXT 20308
#endif
#ifdef VK_EXT_blend_operation_advanced
void marshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
    VulkanStream* vkStream,
    const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* forMarshaling);

void unmarshal_VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(
    VulkanStream* vkStream,
    VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* forUnmarshaling);

void marshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
    VulkanStream* vkStream,
    const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* forMarshaling);

void unmarshal_VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(
    VulkanStream* vkStream,
    VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* forUnmarshaling);

void marshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
    VulkanStream* vkStream,
    const VkPipelineColorBlendAdvancedStateCreateInfoEXT* forMarshaling);

void unmarshal_VkPipelineColorBlendAdvancedStateCreateInfoEXT(
    VulkanStream* vkStream,
    VkPipelineColorBlendAdvancedStateCreateInfoEXT* forUnmarshaling);

#endif
#ifdef VK_NV_fragment_coverage_to_color
void marshal_VkPipelineCoverageToColorStateCreateInfoNV(
    VulkanStream* vkStream,
    const VkPipelineCoverageToColorStateCreateInfoNV* forMarshaling);

void unmarshal_VkPipelineCoverageToColorStateCreateInfoNV(
    VulkanStream* vkStream,
    VkPipelineCoverageToColorStateCreateInfoNV* forUnmarshaling);

#endif
#ifdef VK_NV_framebuffer_mixed_samples
void marshal_VkPipelineCoverageModulationStateCreateInfoNV(
    VulkanStream* vkStream,
    const VkPipelineCoverageModulationStateCreateInfoNV* forMarshaling);

void unmarshal_VkPipelineCoverageModulationStateCreateInfoNV(
    VulkanStream* vkStream,
    VkPipelineCoverageModulationStateCreateInfoNV* forUnmarshaling);

#endif
#ifdef VK_NV_fill_rectangle
#endif
#ifdef VK_EXT_post_depth_coverage
#endif
#ifdef VK_EXT_validation_cache
void marshal_VkValidationCacheCreateInfoEXT(
    VulkanStream* vkStream,
    const VkValidationCacheCreateInfoEXT* forMarshaling);

void unmarshal_VkValidationCacheCreateInfoEXT(
    VulkanStream* vkStream,
    VkValidationCacheCreateInfoEXT* forUnmarshaling);

void marshal_VkShaderModuleValidationCacheCreateInfoEXT(
    VulkanStream* vkStream,
    const VkShaderModuleValidationCacheCreateInfoEXT* forMarshaling);

void unmarshal_VkShaderModuleValidationCacheCreateInfoEXT(
    VulkanStream* vkStream,
    VkShaderModuleValidationCacheCreateInfoEXT* forUnmarshaling);

#define OP_vkCreateValidationCacheEXT 20309
#define OP_vkDestroyValidationCacheEXT 20310
#define OP_vkMergeValidationCachesEXT 20311
#define OP_vkGetValidationCacheDataEXT 20312
#endif
#ifdef VK_EXT_descriptor_indexing
void marshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
    VulkanStream* vkStream,
    const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* forMarshaling);

void unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
    VulkanStream* vkStream,
    VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* forUnmarshaling);

void marshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
    VulkanStream* vkStream,
    const VkPhysicalDeviceDescriptorIndexingFeaturesEXT* forMarshaling);

void unmarshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
    VulkanStream* vkStream,
    VkPhysicalDeviceDescriptorIndexingFeaturesEXT* forUnmarshaling);

void marshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
    VulkanStream* vkStream,
    const VkPhysicalDeviceDescriptorIndexingPropertiesEXT* forMarshaling);

void unmarshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
    VulkanStream* vkStream,
    VkPhysicalDeviceDescriptorIndexingPropertiesEXT* forUnmarshaling);

void marshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
    VulkanStream* vkStream,
    const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* forMarshaling);

void unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
    VulkanStream* vkStream,
    VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* forUnmarshaling);

void marshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
    VulkanStream* vkStream,
    const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* forMarshaling);

void unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
    VulkanStream* vkStream,
    VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* forUnmarshaling);

#endif
#ifdef VK_EXT_shader_viewport_index_layer
#endif
#ifdef VK_EXT_global_priority
void marshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(
    VulkanStream* vkStream,
    const VkDeviceQueueGlobalPriorityCreateInfoEXT* forMarshaling);

void unmarshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(
    VulkanStream* vkStream,
    VkDeviceQueueGlobalPriorityCreateInfoEXT* forUnmarshaling);

#endif
#ifdef VK_EXT_external_memory_host
void marshal_VkImportMemoryHostPointerInfoEXT(
    VulkanStream* vkStream,
    const VkImportMemoryHostPointerInfoEXT* forMarshaling);

void unmarshal_VkImportMemoryHostPointerInfoEXT(
    VulkanStream* vkStream,
    VkImportMemoryHostPointerInfoEXT* forUnmarshaling);

void marshal_VkMemoryHostPointerPropertiesEXT(
    VulkanStream* vkStream,
    const VkMemoryHostPointerPropertiesEXT* forMarshaling);

void unmarshal_VkMemoryHostPointerPropertiesEXT(
    VulkanStream* vkStream,
    VkMemoryHostPointerPropertiesEXT* forUnmarshaling);

void marshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
    VulkanStream* vkStream,
    const VkPhysicalDeviceExternalMemoryHostPropertiesEXT* forMarshaling);

void unmarshal_VkPhysicalDeviceExternalMemoryHostPropertiesEXT(
    VulkanStream* vkStream,
    VkPhysicalDeviceExternalMemoryHostPropertiesEXT* forUnmarshaling);

#define OP_vkGetMemoryHostPointerPropertiesEXT 20313
#endif
#ifdef VK_AMD_buffer_marker
#define OP_vkCmdWriteBufferMarkerAMD 20314
#endif
#ifdef VK_AMD_shader_core_properties
void marshal_VkPhysicalDeviceShaderCorePropertiesAMD(
    VulkanStream* vkStream,
    const VkPhysicalDeviceShaderCorePropertiesAMD* forMarshaling);

void unmarshal_VkPhysicalDeviceShaderCorePropertiesAMD(
    VulkanStream* vkStream,
    VkPhysicalDeviceShaderCorePropertiesAMD* forUnmarshaling);

#endif
#ifdef VK_EXT_vertex_attribute_divisor
void marshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
    VulkanStream* vkStream,
    const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* forMarshaling);

void unmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
    VulkanStream* vkStream,
    VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* forUnmarshaling);

void marshal_VkVertexInputBindingDivisorDescriptionEXT(
    VulkanStream* vkStream,
    const VkVertexInputBindingDivisorDescriptionEXT* forMarshaling);

void unmarshal_VkVertexInputBindingDivisorDescriptionEXT(
    VulkanStream* vkStream,
    VkVertexInputBindingDivisorDescriptionEXT* forUnmarshaling);

void marshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(
    VulkanStream* vkStream,
    const VkPipelineVertexInputDivisorStateCreateInfoEXT* forMarshaling);

void unmarshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(
    VulkanStream* vkStream,
    VkPipelineVertexInputDivisorStateCreateInfoEXT* forUnmarshaling);

#endif
#ifdef VK_NV_shader_subgroup_partitioned
#endif
#ifdef VK_NV_device_diagnostic_checkpoints
void marshal_VkQueueFamilyCheckpointPropertiesNV(
    VulkanStream* vkStream,
    const VkQueueFamilyCheckpointPropertiesNV* forMarshaling);

void unmarshal_VkQueueFamilyCheckpointPropertiesNV(
    VulkanStream* vkStream,
    VkQueueFamilyCheckpointPropertiesNV* forUnmarshaling);

void marshal_VkCheckpointDataNV(
    VulkanStream* vkStream,
    const VkCheckpointDataNV* forMarshaling);

void unmarshal_VkCheckpointDataNV(
    VulkanStream* vkStream,
    VkCheckpointDataNV* forUnmarshaling);

#define OP_vkCmdSetCheckpointNV 20315
#define OP_vkGetQueueCheckpointDataNV 20316
#endif
#ifdef VK_GOOGLE_address_space
#define OP_vkMapMemoryIntoAddressSpaceGOOGLE 20317
#endif
#ifdef VK_GOOGLE_color_buffer
void marshal_VkImportColorBufferGOOGLE(
    VulkanStream* vkStream,
    const VkImportColorBufferGOOGLE* forMarshaling);

void unmarshal_VkImportColorBufferGOOGLE(
    VulkanStream* vkStream,
    VkImportColorBufferGOOGLE* forUnmarshaling);

void marshal_VkImportPhysicalAddressGOOGLE(
    VulkanStream* vkStream,
    const VkImportPhysicalAddressGOOGLE* forMarshaling);

void unmarshal_VkImportPhysicalAddressGOOGLE(
    VulkanStream* vkStream,
    VkImportPhysicalAddressGOOGLE* forUnmarshaling);

#define OP_vkRegisterImageColorBufferGOOGLE 20318
#define OP_vkRegisterBufferColorBufferGOOGLE 20319
#endif
#ifdef VK_GOOGLE_sized_descriptor_update_template
#define OP_vkUpdateDescriptorSetWithTemplateSizedGOOGLE 20320
#endif
#ifdef VK_GOOGLE_async_command_buffers
#define OP_vkBeginCommandBufferAsyncGOOGLE 20321
#define OP_vkEndCommandBufferAsyncGOOGLE 20322
#define OP_vkResetCommandBufferAsyncGOOGLE 20323
#define OP_vkCommandBufferHostSyncGOOGLE 20324
#endif
#ifdef VK_GOOGLE_create_resources_with_requirements
#define OP_vkCreateImageWithRequirementsGOOGLE 20325
#define OP_vkCreateBufferWithRequirementsGOOGLE 20326
#endif
const char* api_opcode_to_string(
    const uint32_t opcode);


} // namespace goldfish_vk
