From ee8bfbb4082fb68135d506e3a238f198fa80c775 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Fri, 28 Jan 2022 10:51:45 -0800 Subject: [PATCH] vkr: update venus-protocol to 1.3.204 This only updates venus-protocol. There is no visible functional difference. Reviewed-by: Yiwei Zhang Reviewed-by: Ryan Neph --- src/venus/venus-protocol/vk_platform.h | 4 +- .../venus-protocol/vn_protocol_renderer.h | 3 +- .../vn_protocol_renderer_buffer.h | 230 + .../vn_protocol_renderer_command_buffer.h | 6683 ++++++++++++----- .../vn_protocol_renderer_defines.h | 350 + .../vn_protocol_renderer_descriptor_pool.h | 84 +- .../vn_protocol_renderer_descriptor_set.h | 94 +- .../vn_protocol_renderer_device.h | 4696 ++++++++++-- .../vn_protocol_renderer_dispatches.h | 83 +- .../vn_protocol_renderer_handles.h | 31 + .../vn_protocol_renderer_image.h | 376 + .../vn_protocol_renderer_info.h | 162 +- .../vn_protocol_renderer_pipeline.h | 321 +- .../vn_protocol_renderer_private_data_slot.h | 324 + .../vn_protocol_renderer_queue.h | 295 + .../vn_protocol_renderer_render_pass.h | 29 +- .../vn_protocol_renderer_structs.h | 115 + .../vn_protocol_renderer_types.h | 152 + src/venus/venus-protocol/vulkan.h | 2 +- src/venus/venus-protocol/vulkan_core.h | 2850 +++++-- 20 files changed, 13725 insertions(+), 3159 deletions(-) create mode 100644 src/venus/venus-protocol/vn_protocol_renderer_private_data_slot.h diff --git a/src/venus/venus-protocol/vk_platform.h b/src/venus/venus-protocol/vk_platform.h index 18b913a..3ff8c5d 100644 --- a/src/venus/venus-protocol/vk_platform.h +++ b/src/venus/venus-protocol/vk_platform.h @@ -2,7 +2,7 @@ // File: vk_platform.h // /* -** Copyright 2014-2021 The Khronos Group Inc. +** Copyright 2014-2022 The Khronos Group Inc. ** ** SPDX-License-Identifier: Apache-2.0 */ @@ -42,7 +42,7 @@ extern "C" #define VKAPI_CALL __stdcall #define VKAPI_PTR VKAPI_CALL #elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7 - #error "Vulkan isn't supported for the 'armeabi' NDK ABI" + #error "Vulkan is not supported for the 'armeabi' NDK ABI" #elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7 && defined(__ARM_32BIT_STATE) // On Android 32-bit ARM targets, Vulkan functions use the "hardfloat" // calling convention, i.e. float parameters are passed in registers. This diff --git a/src/venus/venus-protocol/vn_protocol_renderer.h b/src/venus/venus-protocol/vn_protocol_renderer.h index 011622b..f79bd00 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer.h +++ b/src/venus/venus-protocol/vn_protocol_renderer.h @@ -1,4 +1,4 @@ -/* This file is generated by venus-protocol git-2cbfe3a2. */ +/* This file is generated by venus-protocol git-0048ccc3. */ /* * Copyright 2020 Google LLC @@ -42,5 +42,6 @@ #include "vn_protocol_renderer_pipeline_cache.h" #include "vn_protocol_renderer_command_pool.h" #include "vn_protocol_renderer_command_buffer.h" +#include "vn_protocol_renderer_private_data_slot.h" #endif /* VN_PROTOCOL_RENDERER_H */ diff --git a/src/venus/venus-protocol/vn_protocol_renderer_buffer.h b/src/venus/venus-protocol/vn_protocol_renderer_buffer.h index 44305f3..0b0d7f3 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_buffer.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_buffer.h @@ -16,6 +16,29 @@ /* struct VkExternalMemoryBufferCreateInfo chain */ +static inline void +vn_encode_VkExternalMemoryBufferCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkExternalMemoryBufferCreateInfo_self(struct vn_cs_encoder *enc, const VkExternalMemoryBufferCreateInfo *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkFlags(enc, &val->handleTypes); +} + +static inline void +vn_encode_VkExternalMemoryBufferCreateInfo(struct vn_cs_encoder *enc, const VkExternalMemoryBufferCreateInfo *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO }); + vn_encode_VkExternalMemoryBufferCreateInfo_pnext(enc, val->pNext); + vn_encode_VkExternalMemoryBufferCreateInfo_self(enc, val); +} + static inline void * vn_decode_VkExternalMemoryBufferCreateInfo_pnext_temp(struct vn_cs_decoder *dec) { @@ -73,6 +96,29 @@ vn_replace_VkExternalMemoryBufferCreateInfo_handle(VkExternalMemoryBufferCreateI /* struct VkBufferOpaqueCaptureAddressCreateInfo chain */ +static inline void +vn_encode_VkBufferOpaqueCaptureAddressCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkBufferOpaqueCaptureAddressCreateInfo_self(struct vn_cs_encoder *enc, const VkBufferOpaqueCaptureAddressCreateInfo *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_uint64_t(enc, &val->opaqueCaptureAddress); +} + +static inline void +vn_encode_VkBufferOpaqueCaptureAddressCreateInfo(struct vn_cs_encoder *enc, const VkBufferOpaqueCaptureAddressCreateInfo *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO }); + vn_encode_VkBufferOpaqueCaptureAddressCreateInfo_pnext(enc, val->pNext); + vn_encode_VkBufferOpaqueCaptureAddressCreateInfo_self(enc, val); +} + static inline void * vn_decode_VkBufferOpaqueCaptureAddressCreateInfo_pnext_temp(struct vn_cs_decoder *dec) { @@ -130,6 +176,61 @@ vn_replace_VkBufferOpaqueCaptureAddressCreateInfo_handle(VkBufferOpaqueCaptureAd /* struct VkBufferCreateInfo chain */ +static inline void +vn_encode_VkBufferCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val) +{ + const VkBaseInStructure *pnext = val; + + while (pnext) { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkBufferCreateInfo_pnext(enc, pnext->pNext); + vn_encode_VkExternalMemoryBufferCreateInfo_self(enc, (const VkExternalMemoryBufferCreateInfo *)pnext); + return; + case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkBufferCreateInfo_pnext(enc, pnext->pNext); + vn_encode_VkBufferOpaqueCaptureAddressCreateInfo_self(enc, (const VkBufferOpaqueCaptureAddressCreateInfo *)pnext); + return; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } + + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkBufferCreateInfo_self(struct vn_cs_encoder *enc, const VkBufferCreateInfo *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkFlags(enc, &val->flags); + vn_encode_VkDeviceSize(enc, &val->size); + vn_encode_VkFlags(enc, &val->usage); + vn_encode_VkSharingMode(enc, &val->sharingMode); + vn_encode_uint32_t(enc, &val->queueFamilyIndexCount); + if (val->pQueueFamilyIndices) { + vn_encode_array_size(enc, val->queueFamilyIndexCount); + vn_encode_uint32_t_array(enc, val->pQueueFamilyIndices, val->queueFamilyIndexCount); + } else { + vn_encode_array_size(enc, 0); + } +} + +static inline void +vn_encode_VkBufferCreateInfo(struct vn_cs_encoder *enc, const VkBufferCreateInfo *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }); + vn_encode_VkBufferCreateInfo_pnext(enc, val->pNext); + vn_encode_VkBufferCreateInfo_self(enc, val); +} + static inline void * vn_decode_VkBufferCreateInfo_pnext_temp(struct vn_cs_decoder *dec) { @@ -515,6 +616,71 @@ vn_replace_VkBufferMemoryRequirementsInfo2_handle(VkBufferMemoryRequirementsInfo } while (pnext); } +/* struct VkDeviceBufferMemoryRequirements chain */ + +static inline void * +vn_decode_VkDeviceBufferMemoryRequirements_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkDeviceBufferMemoryRequirements_self_temp(struct vn_cs_decoder *dec, VkDeviceBufferMemoryRequirements *val) +{ + /* skip val->{sType,pNext} */ + if (vn_decode_simple_pointer(dec)) { + val->pCreateInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pCreateInfo)); + if (!val->pCreateInfo) return; + vn_decode_VkBufferCreateInfo_temp(dec, (VkBufferCreateInfo *)val->pCreateInfo); + } else { + val->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } +} + +static inline void +vn_decode_VkDeviceBufferMemoryRequirements_temp(struct vn_cs_decoder *dec, VkDeviceBufferMemoryRequirements *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkDeviceBufferMemoryRequirements_pnext_temp(dec); + vn_decode_VkDeviceBufferMemoryRequirements_self_temp(dec, val); +} + +static inline void +vn_replace_VkDeviceBufferMemoryRequirements_handle_self(VkDeviceBufferMemoryRequirements *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + if (val->pCreateInfo) + vn_replace_VkBufferCreateInfo_handle((VkBufferCreateInfo *)val->pCreateInfo); +} + +static inline void +vn_replace_VkDeviceBufferMemoryRequirements_handle(VkDeviceBufferMemoryRequirements *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS: + vn_replace_VkDeviceBufferMemoryRequirements_handle_self((VkDeviceBufferMemoryRequirements *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + /* struct VkBufferDeviceAddressInfo chain */ static inline void @@ -802,6 +968,45 @@ static inline void vn_encode_vkGetBufferMemoryRequirements2_reply(struct vn_cs_e vn_encode_VkMemoryRequirements2(enc, args->pMemoryRequirements); } +static inline void vn_decode_vkGetDeviceBufferMemoryRequirements_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetDeviceBufferMemoryRequirements *args) +{ + vn_decode_VkDevice_lookup(dec, &args->device); + if (vn_decode_simple_pointer(dec)) { + args->pInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pInfo)); + if (!args->pInfo) return; + vn_decode_VkDeviceBufferMemoryRequirements_temp(dec, (VkDeviceBufferMemoryRequirements *)args->pInfo); + } else { + args->pInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } + if (vn_decode_simple_pointer(dec)) { + args->pMemoryRequirements = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pMemoryRequirements)); + if (!args->pMemoryRequirements) return; + vn_decode_VkMemoryRequirements2_partial_temp(dec, args->pMemoryRequirements); + } else { + args->pMemoryRequirements = NULL; + vn_cs_decoder_set_fatal(dec); + } +} + +static inline void vn_replace_vkGetDeviceBufferMemoryRequirements_args_handle(struct vn_command_vkGetDeviceBufferMemoryRequirements *args) +{ + vn_replace_VkDevice_handle(&args->device); + if (args->pInfo) + vn_replace_VkDeviceBufferMemoryRequirements_handle((VkDeviceBufferMemoryRequirements *)args->pInfo); + /* skip args->pMemoryRequirements */ +} + +static inline void vn_encode_vkGetDeviceBufferMemoryRequirements_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetDeviceBufferMemoryRequirements *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetDeviceBufferMemoryRequirements_EXT}); + + /* skip args->device */ + /* skip args->pInfo */ + if (vn_encode_simple_pointer(enc, args->pMemoryRequirements)) + vn_encode_VkMemoryRequirements2(enc, args->pMemoryRequirements); +} + static inline void vn_decode_vkGetBufferOpaqueCaptureAddress_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetBufferOpaqueCaptureAddress *args) { vn_decode_VkDevice_lookup(dec, &args->device); @@ -1022,6 +1227,31 @@ static inline void vn_dispatch_vkGetBufferMemoryRequirements2(struct vn_dispatch vn_cs_decoder_reset_temp_pool(ctx->decoder); } +static inline void vn_dispatch_vkGetDeviceBufferMemoryRequirements(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkGetDeviceBufferMemoryRequirements args; + + if (!ctx->dispatch_vkGetDeviceBufferMemoryRequirements) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkGetDeviceBufferMemoryRequirements_args_temp(ctx->decoder, &args); + if (!args.device) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkGetDeviceBufferMemoryRequirements(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkGetDeviceBufferMemoryRequirements_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + static inline void vn_dispatch_vkGetBufferOpaqueCaptureAddress(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { struct vn_command_vkGetBufferOpaqueCaptureAddress args; diff --git a/src/venus/venus-protocol/vn_protocol_renderer_command_buffer.h b/src/venus/venus-protocol/vn_protocol_renderer_command_buffer.h index b00cbfa..724d273 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_command_buffer.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_command_buffer.h @@ -75,12 +75,139 @@ vn_replace_VkCommandBufferAllocateInfo_handle(VkCommandBufferAllocateInfo *val) } while (pnext); } +/* struct VkCommandBufferInheritanceRenderingInfo chain */ + +static inline void +vn_encode_VkCommandBufferInheritanceRenderingInfo_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkCommandBufferInheritanceRenderingInfo_self(struct vn_cs_encoder *enc, const VkCommandBufferInheritanceRenderingInfo *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkFlags(enc, &val->flags); + vn_encode_uint32_t(enc, &val->viewMask); + vn_encode_uint32_t(enc, &val->colorAttachmentCount); + if (val->pColorAttachmentFormats) { + vn_encode_array_size(enc, val->colorAttachmentCount); + vn_encode_VkFormat_array(enc, val->pColorAttachmentFormats, val->colorAttachmentCount); + } else { + vn_encode_array_size(enc, 0); + } + vn_encode_VkFormat(enc, &val->depthAttachmentFormat); + vn_encode_VkFormat(enc, &val->stencilAttachmentFormat); + vn_encode_VkSampleCountFlagBits(enc, &val->rasterizationSamples); +} + +static inline void +vn_encode_VkCommandBufferInheritanceRenderingInfo(struct vn_cs_encoder *enc, const VkCommandBufferInheritanceRenderingInfo *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO }); + vn_encode_VkCommandBufferInheritanceRenderingInfo_pnext(enc, val->pNext); + vn_encode_VkCommandBufferInheritanceRenderingInfo_self(enc, val); +} + +static inline void * +vn_decode_VkCommandBufferInheritanceRenderingInfo_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkCommandBufferInheritanceRenderingInfo_self_temp(struct vn_cs_decoder *dec, VkCommandBufferInheritanceRenderingInfo *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkFlags(dec, &val->flags); + vn_decode_uint32_t(dec, &val->viewMask); + vn_decode_uint32_t(dec, &val->colorAttachmentCount); + if (vn_peek_array_size(dec)) { + const size_t array_size = vn_decode_array_size(dec, val->colorAttachmentCount); + val->pColorAttachmentFormats = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pColorAttachmentFormats) * array_size); + if (!val->pColorAttachmentFormats) return; + vn_decode_VkFormat_array(dec, (VkFormat *)val->pColorAttachmentFormats, array_size); + } else { + vn_decode_array_size(dec, val->colorAttachmentCount); + val->pColorAttachmentFormats = NULL; + } + vn_decode_VkFormat(dec, &val->depthAttachmentFormat); + vn_decode_VkFormat(dec, &val->stencilAttachmentFormat); + vn_decode_VkSampleCountFlagBits(dec, &val->rasterizationSamples); +} + +static inline void +vn_decode_VkCommandBufferInheritanceRenderingInfo_temp(struct vn_cs_decoder *dec, VkCommandBufferInheritanceRenderingInfo *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkCommandBufferInheritanceRenderingInfo_pnext_temp(dec); + vn_decode_VkCommandBufferInheritanceRenderingInfo_self_temp(dec, val); +} + +static inline void +vn_replace_VkCommandBufferInheritanceRenderingInfo_handle_self(VkCommandBufferInheritanceRenderingInfo *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->flags */ + /* skip val->viewMask */ + /* skip val->colorAttachmentCount */ + /* skip val->pColorAttachmentFormats */ + /* skip val->depthAttachmentFormat */ + /* skip val->stencilAttachmentFormat */ + /* skip val->rasterizationSamples */ +} + +static inline void +vn_replace_VkCommandBufferInheritanceRenderingInfo_handle(VkCommandBufferInheritanceRenderingInfo *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: + vn_replace_VkCommandBufferInheritanceRenderingInfo_handle_self((VkCommandBufferInheritanceRenderingInfo *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + /* struct VkCommandBufferInheritanceInfo chain */ static inline void vn_encode_VkCommandBufferInheritanceInfo_pnext(struct vn_cs_encoder *enc, const void *val) { - /* no known/supported struct */ + const VkBaseInStructure *pnext = val; + + while (pnext) { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkCommandBufferInheritanceInfo_pnext(enc, pnext->pNext); + vn_encode_VkCommandBufferInheritanceRenderingInfo_self(enc, (const VkCommandBufferInheritanceRenderingInfo *)pnext); + return; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } + vn_encode_simple_pointer(enc, NULL); } @@ -108,10 +235,30 @@ vn_encode_VkCommandBufferInheritanceInfo(struct vn_cs_encoder *enc, const VkComm static inline void * vn_decode_VkCommandBufferInheritanceInfo_pnext_temp(struct vn_cs_decoder *dec) { - /* no known/supported struct */ - if (vn_decode_simple_pointer(dec)) + VkBaseOutStructure *pnext; + VkStructureType stype; + + if (!vn_decode_simple_pointer(dec)) + return NULL; + + vn_decode_VkStructureType(dec, &stype); + switch ((int32_t)stype) { + case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkCommandBufferInheritanceRenderingInfo)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkCommandBufferInheritanceInfo_pnext_temp(dec); + vn_decode_VkCommandBufferInheritanceRenderingInfo_self_temp(dec, (VkCommandBufferInheritanceRenderingInfo *)pnext); + } + break; + default: + /* unexpected struct */ + pnext = NULL; vn_cs_decoder_set_fatal(dec); - return NULL; + break; + } + + return pnext; } static inline void @@ -162,6 +309,9 @@ vn_replace_VkCommandBufferInheritanceInfo_handle(VkCommandBufferInheritanceInfo case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO: vn_replace_VkCommandBufferInheritanceInfo_handle_self((VkCommandBufferInheritanceInfo *)pnext); break; + case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: + vn_replace_VkCommandBufferInheritanceRenderingInfo_handle_self((VkCommandBufferInheritanceRenderingInfo *)pnext); + break; default: /* ignore unknown/unsupported struct */ break; @@ -1183,3758 +1333,6555 @@ vn_replace_VkSubpassEndInfo_handle(VkSubpassEndInfo *val) } while (pnext); } -static inline void vn_decode_vkAllocateCommandBuffers_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkAllocateCommandBuffers *args) +/* struct VkBufferCopy2 chain */ + +static inline void * +vn_decode_VkBufferCopy2_pnext_temp(struct vn_cs_decoder *dec) { - vn_decode_VkDevice_lookup(dec, &args->device); - if (vn_decode_simple_pointer(dec)) { - args->pAllocateInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pAllocateInfo)); - if (!args->pAllocateInfo) return; - vn_decode_VkCommandBufferAllocateInfo_temp(dec, (VkCommandBufferAllocateInfo *)args->pAllocateInfo); - } else { - args->pAllocateInfo = NULL; + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) vn_cs_decoder_set_fatal(dec); - } - if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, (args->pAllocateInfo ? args->pAllocateInfo->commandBufferCount : 0)); - args->pCommandBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCommandBuffers) * iter_count); - if (!args->pCommandBuffers) return; - for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkCommandBuffer_temp(dec, &args->pCommandBuffers[i]); - } else { - vn_decode_array_size(dec, (args->pAllocateInfo ? args->pAllocateInfo->commandBufferCount : 0)); - args->pCommandBuffers = NULL; - } + return NULL; } -static inline void vn_replace_vkAllocateCommandBuffers_args_handle(struct vn_command_vkAllocateCommandBuffers *args) +static inline void +vn_decode_VkBufferCopy2_self_temp(struct vn_cs_decoder *dec, VkBufferCopy2 *val) { - vn_replace_VkDevice_handle(&args->device); - if (args->pAllocateInfo) - vn_replace_VkCommandBufferAllocateInfo_handle((VkCommandBufferAllocateInfo *)args->pAllocateInfo); - /* skip args->pCommandBuffers */ + /* skip val->{sType,pNext} */ + vn_decode_VkDeviceSize(dec, &val->srcOffset); + vn_decode_VkDeviceSize(dec, &val->dstOffset); + vn_decode_VkDeviceSize(dec, &val->size); } -static inline void vn_encode_vkAllocateCommandBuffers_reply(struct vn_cs_encoder *enc, const struct vn_command_vkAllocateCommandBuffers *args) +static inline void +vn_decode_VkBufferCopy2_temp(struct vn_cs_decoder *dec, VkBufferCopy2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkAllocateCommandBuffers_EXT}); - - vn_encode_VkResult(enc, &args->ret); - /* skip args->device */ - /* skip args->pAllocateInfo */ - if (args->pCommandBuffers) { - vn_encode_array_size(enc, (args->pAllocateInfo ? args->pAllocateInfo->commandBufferCount : 0)); - for (uint32_t i = 0; i < (args->pAllocateInfo ? args->pAllocateInfo->commandBufferCount : 0); i++) - vn_encode_VkCommandBuffer(enc, &args->pCommandBuffers[i]); - } else { - vn_encode_array_size(enc, 0); - } -} + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_BUFFER_COPY_2) + vn_cs_decoder_set_fatal(dec); -static inline void vn_decode_vkFreeCommandBuffers_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkFreeCommandBuffers *args) -{ - vn_decode_VkDevice_lookup(dec, &args->device); - vn_decode_VkCommandPool_lookup(dec, &args->commandPool); - vn_decode_uint32_t(dec, &args->commandBufferCount); - if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->commandBufferCount); - args->pCommandBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCommandBuffers) * iter_count); - if (!args->pCommandBuffers) return; - for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkCommandBuffer_lookup(dec, &((VkCommandBuffer *)args->pCommandBuffers)[i]); - } else { - vn_decode_array_size_unchecked(dec); - args->pCommandBuffers = NULL; - } + val->sType = stype; + val->pNext = vn_decode_VkBufferCopy2_pnext_temp(dec); + vn_decode_VkBufferCopy2_self_temp(dec, val); } -static inline void vn_replace_vkFreeCommandBuffers_args_handle(struct vn_command_vkFreeCommandBuffers *args) +static inline void +vn_replace_VkBufferCopy2_handle_self(VkBufferCopy2 *val) { - vn_replace_VkDevice_handle(&args->device); - vn_replace_VkCommandPool_handle(&args->commandPool); - /* skip args->commandBufferCount */ - if (args->pCommandBuffers) { - for (uint32_t i = 0; i < args->commandBufferCount; i++) - vn_replace_VkCommandBuffer_handle(&((VkCommandBuffer *)args->pCommandBuffers)[i]); - } + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->srcOffset */ + /* skip val->dstOffset */ + /* skip val->size */ } -static inline void vn_encode_vkFreeCommandBuffers_reply(struct vn_cs_encoder *enc, const struct vn_command_vkFreeCommandBuffers *args) +static inline void +vn_replace_VkBufferCopy2_handle(VkBufferCopy2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkFreeCommandBuffers_EXT}); + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; - /* skip args->device */ - /* skip args->commandPool */ - /* skip args->commandBufferCount */ - /* skip args->pCommandBuffers */ + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_BUFFER_COPY_2: + vn_replace_VkBufferCopy2_handle_self((VkBufferCopy2 *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); } -static inline void vn_decode_vkBeginCommandBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkBeginCommandBuffer *args) +/* struct VkCopyBufferInfo2 chain */ + +static inline void * +vn_decode_VkCopyBufferInfo2_pnext_temp(struct vn_cs_decoder *dec) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - if (vn_decode_simple_pointer(dec)) { - args->pBeginInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBeginInfo)); - if (!args->pBeginInfo) return; - vn_decode_VkCommandBufferBeginInfo_temp(dec, (VkCommandBufferBeginInfo *)args->pBeginInfo); - } else { - args->pBeginInfo = NULL; + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) vn_cs_decoder_set_fatal(dec); - } + return NULL; } -static inline void vn_replace_vkBeginCommandBuffer_args_handle(struct vn_command_vkBeginCommandBuffer *args) +static inline void +vn_decode_VkCopyBufferInfo2_self_temp(struct vn_cs_decoder *dec, VkCopyBufferInfo2 *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - if (args->pBeginInfo) - vn_replace_VkCommandBufferBeginInfo_handle((VkCommandBufferBeginInfo *)args->pBeginInfo); + /* skip val->{sType,pNext} */ + vn_decode_VkBuffer_lookup(dec, &val->srcBuffer); + vn_decode_VkBuffer_lookup(dec, &val->dstBuffer); + vn_decode_uint32_t(dec, &val->regionCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, val->regionCount); + val->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pRegions) * iter_count); + if (!val->pRegions) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkBufferCopy2_temp(dec, &((VkBufferCopy2 *)val->pRegions)[i]); + } else { + vn_decode_array_size(dec, val->regionCount); + val->pRegions = NULL; + } } -static inline void vn_encode_vkBeginCommandBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkBeginCommandBuffer *args) +static inline void +vn_decode_VkCopyBufferInfo2_temp(struct vn_cs_decoder *dec, VkCopyBufferInfo2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkBeginCommandBuffer_EXT}); - - vn_encode_VkResult(enc, &args->ret); - /* skip args->commandBuffer */ - /* skip args->pBeginInfo */ -} + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2) + vn_cs_decoder_set_fatal(dec); -static inline void vn_decode_vkEndCommandBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkEndCommandBuffer *args) -{ - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + val->sType = stype; + val->pNext = vn_decode_VkCopyBufferInfo2_pnext_temp(dec); + vn_decode_VkCopyBufferInfo2_self_temp(dec, val); } -static inline void vn_replace_vkEndCommandBuffer_args_handle(struct vn_command_vkEndCommandBuffer *args) +static inline void +vn_replace_VkCopyBufferInfo2_handle_self(VkCopyBufferInfo2 *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip val->sType */ + /* skip val->pNext */ + vn_replace_VkBuffer_handle(&val->srcBuffer); + vn_replace_VkBuffer_handle(&val->dstBuffer); + /* skip val->regionCount */ + if (val->pRegions) { + for (uint32_t i = 0; i < val->regionCount; i++) + vn_replace_VkBufferCopy2_handle(&((VkBufferCopy2 *)val->pRegions)[i]); + } } -static inline void vn_encode_vkEndCommandBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkEndCommandBuffer *args) +static inline void +vn_replace_VkCopyBufferInfo2_handle(VkCopyBufferInfo2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkEndCommandBuffer_EXT}); + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; - vn_encode_VkResult(enc, &args->ret); - /* skip args->commandBuffer */ + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2: + vn_replace_VkCopyBufferInfo2_handle_self((VkCopyBufferInfo2 *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); } -static inline void vn_decode_vkResetCommandBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkResetCommandBuffer *args) +/* struct VkImageCopy2 chain */ + +static inline void * +vn_decode_VkImageCopy2_pnext_temp(struct vn_cs_decoder *dec) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkFlags(dec, &args->flags); + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; } -static inline void vn_replace_vkResetCommandBuffer_args_handle(struct vn_command_vkResetCommandBuffer *args) +static inline void +vn_decode_VkImageCopy2_self_temp(struct vn_cs_decoder *dec, VkImageCopy2 *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->flags */ + /* skip val->{sType,pNext} */ + vn_decode_VkImageSubresourceLayers_temp(dec, &val->srcSubresource); + vn_decode_VkOffset3D_temp(dec, &val->srcOffset); + vn_decode_VkImageSubresourceLayers_temp(dec, &val->dstSubresource); + vn_decode_VkOffset3D_temp(dec, &val->dstOffset); + vn_decode_VkExtent3D_temp(dec, &val->extent); } -static inline void vn_encode_vkResetCommandBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkResetCommandBuffer *args) +static inline void +vn_decode_VkImageCopy2_temp(struct vn_cs_decoder *dec, VkImageCopy2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkResetCommandBuffer_EXT}); + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_IMAGE_COPY_2) + vn_cs_decoder_set_fatal(dec); - vn_encode_VkResult(enc, &args->ret); - /* skip args->commandBuffer */ - /* skip args->flags */ + val->sType = stype; + val->pNext = vn_decode_VkImageCopy2_pnext_temp(dec); + vn_decode_VkImageCopy2_self_temp(dec, val); } -static inline void vn_decode_vkCmdBindPipeline_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBindPipeline *args) +static inline void +vn_replace_VkImageCopy2_handle_self(VkImageCopy2 *val) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkPipelineBindPoint(dec, &args->pipelineBindPoint); - vn_decode_VkPipeline_lookup(dec, &args->pipeline); + /* skip val->sType */ + /* skip val->pNext */ + vn_replace_VkImageSubresourceLayers_handle(&val->srcSubresource); + vn_replace_VkOffset3D_handle(&val->srcOffset); + vn_replace_VkImageSubresourceLayers_handle(&val->dstSubresource); + vn_replace_VkOffset3D_handle(&val->dstOffset); + vn_replace_VkExtent3D_handle(&val->extent); } -static inline void vn_replace_vkCmdBindPipeline_args_handle(struct vn_command_vkCmdBindPipeline *args) +static inline void +vn_replace_VkImageCopy2_handle(VkImageCopy2 *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->pipelineBindPoint */ - vn_replace_VkPipeline_handle(&args->pipeline); + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_IMAGE_COPY_2: + vn_replace_VkImageCopy2_handle_self((VkImageCopy2 *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); } -static inline void vn_encode_vkCmdBindPipeline_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBindPipeline *args) -{ - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBindPipeline_EXT}); +/* struct VkCopyImageInfo2 chain */ - /* skip args->commandBuffer */ - /* skip args->pipelineBindPoint */ - /* skip args->pipeline */ +static inline void * +vn_decode_VkCopyImageInfo2_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; } -static inline void vn_decode_vkCmdSetViewport_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetViewport *args) +static inline void +vn_decode_VkCopyImageInfo2_self_temp(struct vn_cs_decoder *dec, VkCopyImageInfo2 *val) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_uint32_t(dec, &args->firstViewport); - vn_decode_uint32_t(dec, &args->viewportCount); + /* skip val->{sType,pNext} */ + vn_decode_VkImage_lookup(dec, &val->srcImage); + vn_decode_VkImageLayout(dec, &val->srcImageLayout); + vn_decode_VkImage_lookup(dec, &val->dstImage); + vn_decode_VkImageLayout(dec, &val->dstImageLayout); + vn_decode_uint32_t(dec, &val->regionCount); if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->viewportCount); - args->pViewports = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pViewports) * iter_count); - if (!args->pViewports) return; + const uint32_t iter_count = vn_decode_array_size(dec, val->regionCount); + val->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pRegions) * iter_count); + if (!val->pRegions) return; for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkViewport_temp(dec, &((VkViewport *)args->pViewports)[i]); + vn_decode_VkImageCopy2_temp(dec, &((VkImageCopy2 *)val->pRegions)[i]); } else { - vn_decode_array_size(dec, args->viewportCount); - args->pViewports = NULL; + vn_decode_array_size(dec, val->regionCount); + val->pRegions = NULL; } } -static inline void vn_replace_vkCmdSetViewport_args_handle(struct vn_command_vkCmdSetViewport *args) +static inline void +vn_decode_VkCopyImageInfo2_temp(struct vn_cs_decoder *dec, VkCopyImageInfo2 *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->firstViewport */ - /* skip args->viewportCount */ - if (args->pViewports) { - for (uint32_t i = 0; i < args->viewportCount; i++) - vn_replace_VkViewport_handle(&((VkViewport *)args->pViewports)[i]); + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkCopyImageInfo2_pnext_temp(dec); + vn_decode_VkCopyImageInfo2_self_temp(dec, val); +} + +static inline void +vn_replace_VkCopyImageInfo2_handle_self(VkCopyImageInfo2 *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + vn_replace_VkImage_handle(&val->srcImage); + /* skip val->srcImageLayout */ + vn_replace_VkImage_handle(&val->dstImage); + /* skip val->dstImageLayout */ + /* skip val->regionCount */ + if (val->pRegions) { + for (uint32_t i = 0; i < val->regionCount; i++) + vn_replace_VkImageCopy2_handle(&((VkImageCopy2 *)val->pRegions)[i]); } } -static inline void vn_encode_vkCmdSetViewport_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetViewport *args) +static inline void +vn_replace_VkCopyImageInfo2_handle(VkCopyImageInfo2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetViewport_EXT}); + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; - /* skip args->commandBuffer */ - /* skip args->firstViewport */ - /* skip args->viewportCount */ - /* skip args->pViewports */ + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2: + vn_replace_VkCopyImageInfo2_handle_self((VkCopyImageInfo2 *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); } -static inline void vn_decode_vkCmdSetScissor_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetScissor *args) +/* struct VkImageBlit2 chain */ + +static inline void * +vn_decode_VkImageBlit2_pnext_temp(struct vn_cs_decoder *dec) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_uint32_t(dec, &args->firstScissor); - vn_decode_uint32_t(dec, &args->scissorCount); - if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->scissorCount); - args->pScissors = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pScissors) * iter_count); - if (!args->pScissors) return; - for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkRect2D_temp(dec, &((VkRect2D *)args->pScissors)[i]); - } else { - vn_decode_array_size(dec, args->scissorCount); - args->pScissors = NULL; - } + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; } -static inline void vn_replace_vkCmdSetScissor_args_handle(struct vn_command_vkCmdSetScissor *args) +static inline void +vn_decode_VkImageBlit2_self_temp(struct vn_cs_decoder *dec, VkImageBlit2 *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->firstScissor */ - /* skip args->scissorCount */ - if (args->pScissors) { - for (uint32_t i = 0; i < args->scissorCount; i++) - vn_replace_VkRect2D_handle(&((VkRect2D *)args->pScissors)[i]); + /* skip val->{sType,pNext} */ + vn_decode_VkImageSubresourceLayers_temp(dec, &val->srcSubresource); + { + const uint32_t iter_count = vn_decode_array_size(dec, 2); + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkOffset3D_temp(dec, &val->srcOffsets[i]); + } + vn_decode_VkImageSubresourceLayers_temp(dec, &val->dstSubresource); + { + const uint32_t iter_count = vn_decode_array_size(dec, 2); + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkOffset3D_temp(dec, &val->dstOffsets[i]); } } -static inline void vn_encode_vkCmdSetScissor_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetScissor *args) +static inline void +vn_decode_VkImageBlit2_temp(struct vn_cs_decoder *dec, VkImageBlit2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetScissor_EXT}); - - /* skip args->commandBuffer */ - /* skip args->firstScissor */ - /* skip args->scissorCount */ - /* skip args->pScissors */ -} + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_IMAGE_BLIT_2) + vn_cs_decoder_set_fatal(dec); -static inline void vn_decode_vkCmdSetLineWidth_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetLineWidth *args) -{ - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_float(dec, &args->lineWidth); + val->sType = stype; + val->pNext = vn_decode_VkImageBlit2_pnext_temp(dec); + vn_decode_VkImageBlit2_self_temp(dec, val); } -static inline void vn_replace_vkCmdSetLineWidth_args_handle(struct vn_command_vkCmdSetLineWidth *args) +static inline void +vn_replace_VkImageBlit2_handle_self(VkImageBlit2 *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->lineWidth */ + /* skip val->sType */ + /* skip val->pNext */ + vn_replace_VkImageSubresourceLayers_handle(&val->srcSubresource); + for (uint32_t i = 0; i < 2; i++) + vn_replace_VkOffset3D_handle(&val->srcOffsets[i]); + vn_replace_VkImageSubresourceLayers_handle(&val->dstSubresource); + for (uint32_t i = 0; i < 2; i++) + vn_replace_VkOffset3D_handle(&val->dstOffsets[i]); } -static inline void vn_encode_vkCmdSetLineWidth_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetLineWidth *args) +static inline void +vn_replace_VkImageBlit2_handle(VkImageBlit2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetLineWidth_EXT}); + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; - /* skip args->commandBuffer */ - /* skip args->lineWidth */ + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_IMAGE_BLIT_2: + vn_replace_VkImageBlit2_handle_self((VkImageBlit2 *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); } -static inline void vn_decode_vkCmdSetDepthBias_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetDepthBias *args) +/* struct VkBlitImageInfo2 chain */ + +static inline void * +vn_decode_VkBlitImageInfo2_pnext_temp(struct vn_cs_decoder *dec) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_float(dec, &args->depthBiasConstantFactor); - vn_decode_float(dec, &args->depthBiasClamp); - vn_decode_float(dec, &args->depthBiasSlopeFactor); + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; } -static inline void vn_replace_vkCmdSetDepthBias_args_handle(struct vn_command_vkCmdSetDepthBias *args) +static inline void +vn_decode_VkBlitImageInfo2_self_temp(struct vn_cs_decoder *dec, VkBlitImageInfo2 *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->depthBiasConstantFactor */ - /* skip args->depthBiasClamp */ - /* skip args->depthBiasSlopeFactor */ + /* skip val->{sType,pNext} */ + vn_decode_VkImage_lookup(dec, &val->srcImage); + vn_decode_VkImageLayout(dec, &val->srcImageLayout); + vn_decode_VkImage_lookup(dec, &val->dstImage); + vn_decode_VkImageLayout(dec, &val->dstImageLayout); + vn_decode_uint32_t(dec, &val->regionCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, val->regionCount); + val->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pRegions) * iter_count); + if (!val->pRegions) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkImageBlit2_temp(dec, &((VkImageBlit2 *)val->pRegions)[i]); + } else { + vn_decode_array_size(dec, val->regionCount); + val->pRegions = NULL; + } + vn_decode_VkFilter(dec, &val->filter); } -static inline void vn_encode_vkCmdSetDepthBias_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetDepthBias *args) +static inline void +vn_decode_VkBlitImageInfo2_temp(struct vn_cs_decoder *dec, VkBlitImageInfo2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetDepthBias_EXT}); + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2) + vn_cs_decoder_set_fatal(dec); - /* skip args->commandBuffer */ - /* skip args->depthBiasConstantFactor */ - /* skip args->depthBiasClamp */ - /* skip args->depthBiasSlopeFactor */ + val->sType = stype; + val->pNext = vn_decode_VkBlitImageInfo2_pnext_temp(dec); + vn_decode_VkBlitImageInfo2_self_temp(dec, val); } -static inline void vn_decode_vkCmdSetBlendConstants_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetBlendConstants *args) +static inline void +vn_replace_VkBlitImageInfo2_handle_self(VkBlitImageInfo2 *val) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - { - const size_t array_size = vn_decode_array_size(dec, 4); - vn_decode_float_array(dec, (float *)args->blendConstants, array_size); + /* skip val->sType */ + /* skip val->pNext */ + vn_replace_VkImage_handle(&val->srcImage); + /* skip val->srcImageLayout */ + vn_replace_VkImage_handle(&val->dstImage); + /* skip val->dstImageLayout */ + /* skip val->regionCount */ + if (val->pRegions) { + for (uint32_t i = 0; i < val->regionCount; i++) + vn_replace_VkImageBlit2_handle(&((VkImageBlit2 *)val->pRegions)[i]); } + /* skip val->filter */ } -static inline void vn_replace_vkCmdSetBlendConstants_args_handle(struct vn_command_vkCmdSetBlendConstants *args) +static inline void +vn_replace_VkBlitImageInfo2_handle(VkBlitImageInfo2 *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->blendConstants */ -} - -static inline void vn_encode_vkCmdSetBlendConstants_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetBlendConstants *args) -{ - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetBlendConstants_EXT}); + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; - /* skip args->commandBuffer */ - /* skip args->blendConstants */ + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2: + vn_replace_VkBlitImageInfo2_handle_self((VkBlitImageInfo2 *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); } -static inline void vn_decode_vkCmdSetDepthBounds_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetDepthBounds *args) -{ - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_float(dec, &args->minDepthBounds); - vn_decode_float(dec, &args->maxDepthBounds); -} +/* struct VkBufferImageCopy2 chain */ -static inline void vn_replace_vkCmdSetDepthBounds_args_handle(struct vn_command_vkCmdSetDepthBounds *args) +static inline void * +vn_decode_VkBufferImageCopy2_pnext_temp(struct vn_cs_decoder *dec) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->minDepthBounds */ - /* skip args->maxDepthBounds */ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; } -static inline void vn_encode_vkCmdSetDepthBounds_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetDepthBounds *args) +static inline void +vn_decode_VkBufferImageCopy2_self_temp(struct vn_cs_decoder *dec, VkBufferImageCopy2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetDepthBounds_EXT}); - - /* skip args->commandBuffer */ - /* skip args->minDepthBounds */ - /* skip args->maxDepthBounds */ + /* skip val->{sType,pNext} */ + vn_decode_VkDeviceSize(dec, &val->bufferOffset); + vn_decode_uint32_t(dec, &val->bufferRowLength); + vn_decode_uint32_t(dec, &val->bufferImageHeight); + vn_decode_VkImageSubresourceLayers_temp(dec, &val->imageSubresource); + vn_decode_VkOffset3D_temp(dec, &val->imageOffset); + vn_decode_VkExtent3D_temp(dec, &val->imageExtent); } -static inline void vn_decode_vkCmdSetStencilCompareMask_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetStencilCompareMask *args) +static inline void +vn_decode_VkBufferImageCopy2_temp(struct vn_cs_decoder *dec, VkBufferImageCopy2 *val) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkFlags(dec, &args->faceMask); - vn_decode_uint32_t(dec, &args->compareMask); + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkBufferImageCopy2_pnext_temp(dec); + vn_decode_VkBufferImageCopy2_self_temp(dec, val); } -static inline void vn_replace_vkCmdSetStencilCompareMask_args_handle(struct vn_command_vkCmdSetStencilCompareMask *args) +static inline void +vn_replace_VkBufferImageCopy2_handle_self(VkBufferImageCopy2 *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->faceMask */ - /* skip args->compareMask */ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->bufferOffset */ + /* skip val->bufferRowLength */ + /* skip val->bufferImageHeight */ + vn_replace_VkImageSubresourceLayers_handle(&val->imageSubresource); + vn_replace_VkOffset3D_handle(&val->imageOffset); + vn_replace_VkExtent3D_handle(&val->imageExtent); } -static inline void vn_encode_vkCmdSetStencilCompareMask_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetStencilCompareMask *args) +static inline void +vn_replace_VkBufferImageCopy2_handle(VkBufferImageCopy2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetStencilCompareMask_EXT}); + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; - /* skip args->commandBuffer */ - /* skip args->faceMask */ - /* skip args->compareMask */ + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2: + vn_replace_VkBufferImageCopy2_handle_self((VkBufferImageCopy2 *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); } -static inline void vn_decode_vkCmdSetStencilWriteMask_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetStencilWriteMask *args) +/* struct VkCopyBufferToImageInfo2 chain */ + +static inline void * +vn_decode_VkCopyBufferToImageInfo2_pnext_temp(struct vn_cs_decoder *dec) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkFlags(dec, &args->faceMask); - vn_decode_uint32_t(dec, &args->writeMask); + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; } -static inline void vn_replace_vkCmdSetStencilWriteMask_args_handle(struct vn_command_vkCmdSetStencilWriteMask *args) +static inline void +vn_decode_VkCopyBufferToImageInfo2_self_temp(struct vn_cs_decoder *dec, VkCopyBufferToImageInfo2 *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->faceMask */ - /* skip args->writeMask */ + /* skip val->{sType,pNext} */ + vn_decode_VkBuffer_lookup(dec, &val->srcBuffer); + vn_decode_VkImage_lookup(dec, &val->dstImage); + vn_decode_VkImageLayout(dec, &val->dstImageLayout); + vn_decode_uint32_t(dec, &val->regionCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, val->regionCount); + val->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pRegions) * iter_count); + if (!val->pRegions) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkBufferImageCopy2_temp(dec, &((VkBufferImageCopy2 *)val->pRegions)[i]); + } else { + vn_decode_array_size(dec, val->regionCount); + val->pRegions = NULL; + } } -static inline void vn_encode_vkCmdSetStencilWriteMask_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetStencilWriteMask *args) +static inline void +vn_decode_VkCopyBufferToImageInfo2_temp(struct vn_cs_decoder *dec, VkCopyBufferToImageInfo2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetStencilWriteMask_EXT}); + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2) + vn_cs_decoder_set_fatal(dec); - /* skip args->commandBuffer */ - /* skip args->faceMask */ - /* skip args->writeMask */ + val->sType = stype; + val->pNext = vn_decode_VkCopyBufferToImageInfo2_pnext_temp(dec); + vn_decode_VkCopyBufferToImageInfo2_self_temp(dec, val); } -static inline void vn_decode_vkCmdSetStencilReference_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetStencilReference *args) +static inline void +vn_replace_VkCopyBufferToImageInfo2_handle_self(VkCopyBufferToImageInfo2 *val) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkFlags(dec, &args->faceMask); - vn_decode_uint32_t(dec, &args->reference); + /* skip val->sType */ + /* skip val->pNext */ + vn_replace_VkBuffer_handle(&val->srcBuffer); + vn_replace_VkImage_handle(&val->dstImage); + /* skip val->dstImageLayout */ + /* skip val->regionCount */ + if (val->pRegions) { + for (uint32_t i = 0; i < val->regionCount; i++) + vn_replace_VkBufferImageCopy2_handle(&((VkBufferImageCopy2 *)val->pRegions)[i]); + } } -static inline void vn_replace_vkCmdSetStencilReference_args_handle(struct vn_command_vkCmdSetStencilReference *args) +static inline void +vn_replace_VkCopyBufferToImageInfo2_handle(VkCopyBufferToImageInfo2 *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->faceMask */ - /* skip args->reference */ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2: + vn_replace_VkCopyBufferToImageInfo2_handle_self((VkCopyBufferToImageInfo2 *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); } -static inline void vn_encode_vkCmdSetStencilReference_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetStencilReference *args) -{ - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetStencilReference_EXT}); +/* struct VkCopyImageToBufferInfo2 chain */ - /* skip args->commandBuffer */ - /* skip args->faceMask */ - /* skip args->reference */ +static inline void * +vn_decode_VkCopyImageToBufferInfo2_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; } -static inline void vn_decode_vkCmdBindDescriptorSets_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBindDescriptorSets *args) +static inline void +vn_decode_VkCopyImageToBufferInfo2_self_temp(struct vn_cs_decoder *dec, VkCopyImageToBufferInfo2 *val) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkPipelineBindPoint(dec, &args->pipelineBindPoint); - vn_decode_VkPipelineLayout_lookup(dec, &args->layout); - vn_decode_uint32_t(dec, &args->firstSet); - vn_decode_uint32_t(dec, &args->descriptorSetCount); + /* skip val->{sType,pNext} */ + vn_decode_VkImage_lookup(dec, &val->srcImage); + vn_decode_VkImageLayout(dec, &val->srcImageLayout); + vn_decode_VkBuffer_lookup(dec, &val->dstBuffer); + vn_decode_uint32_t(dec, &val->regionCount); if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->descriptorSetCount); - args->pDescriptorSets = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pDescriptorSets) * iter_count); - if (!args->pDescriptorSets) return; + const uint32_t iter_count = vn_decode_array_size(dec, val->regionCount); + val->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pRegions) * iter_count); + if (!val->pRegions) return; for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkDescriptorSet_lookup(dec, &((VkDescriptorSet *)args->pDescriptorSets)[i]); - } else { - vn_decode_array_size(dec, args->descriptorSetCount); - args->pDescriptorSets = NULL; - } - vn_decode_uint32_t(dec, &args->dynamicOffsetCount); - if (vn_peek_array_size(dec)) { - const size_t array_size = vn_decode_array_size(dec, args->dynamicOffsetCount); - args->pDynamicOffsets = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pDynamicOffsets) * array_size); - if (!args->pDynamicOffsets) return; - vn_decode_uint32_t_array(dec, (uint32_t *)args->pDynamicOffsets, array_size); + vn_decode_VkBufferImageCopy2_temp(dec, &((VkBufferImageCopy2 *)val->pRegions)[i]); } else { - vn_decode_array_size(dec, args->dynamicOffsetCount); - args->pDynamicOffsets = NULL; + vn_decode_array_size(dec, val->regionCount); + val->pRegions = NULL; } } -static inline void vn_replace_vkCmdBindDescriptorSets_args_handle(struct vn_command_vkCmdBindDescriptorSets *args) +static inline void +vn_decode_VkCopyImageToBufferInfo2_temp(struct vn_cs_decoder *dec, VkCopyImageToBufferInfo2 *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->pipelineBindPoint */ - vn_replace_VkPipelineLayout_handle(&args->layout); - /* skip args->firstSet */ - /* skip args->descriptorSetCount */ - if (args->pDescriptorSets) { - for (uint32_t i = 0; i < args->descriptorSetCount; i++) - vn_replace_VkDescriptorSet_handle(&((VkDescriptorSet *)args->pDescriptorSets)[i]); + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkCopyImageToBufferInfo2_pnext_temp(dec); + vn_decode_VkCopyImageToBufferInfo2_self_temp(dec, val); +} + +static inline void +vn_replace_VkCopyImageToBufferInfo2_handle_self(VkCopyImageToBufferInfo2 *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + vn_replace_VkImage_handle(&val->srcImage); + /* skip val->srcImageLayout */ + vn_replace_VkBuffer_handle(&val->dstBuffer); + /* skip val->regionCount */ + if (val->pRegions) { + for (uint32_t i = 0; i < val->regionCount; i++) + vn_replace_VkBufferImageCopy2_handle(&((VkBufferImageCopy2 *)val->pRegions)[i]); } - /* skip args->dynamicOffsetCount */ - /* skip args->pDynamicOffsets */ } -static inline void vn_encode_vkCmdBindDescriptorSets_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBindDescriptorSets *args) +static inline void +vn_replace_VkCopyImageToBufferInfo2_handle(VkCopyImageToBufferInfo2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBindDescriptorSets_EXT}); + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; - /* skip args->commandBuffer */ - /* skip args->pipelineBindPoint */ - /* skip args->layout */ - /* skip args->firstSet */ - /* skip args->descriptorSetCount */ - /* skip args->pDescriptorSets */ - /* skip args->dynamicOffsetCount */ - /* skip args->pDynamicOffsets */ + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2: + vn_replace_VkCopyImageToBufferInfo2_handle_self((VkCopyImageToBufferInfo2 *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); } -static inline void vn_decode_vkCmdBindIndexBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBindIndexBuffer *args) +/* struct VkImageResolve2 chain */ + +static inline void * +vn_decode_VkImageResolve2_pnext_temp(struct vn_cs_decoder *dec) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkBuffer_lookup(dec, &args->buffer); - vn_decode_VkDeviceSize(dec, &args->offset); - vn_decode_VkIndexType(dec, &args->indexType); + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; } -static inline void vn_replace_vkCmdBindIndexBuffer_args_handle(struct vn_command_vkCmdBindIndexBuffer *args) +static inline void +vn_decode_VkImageResolve2_self_temp(struct vn_cs_decoder *dec, VkImageResolve2 *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkBuffer_handle(&args->buffer); - /* skip args->offset */ - /* skip args->indexType */ + /* skip val->{sType,pNext} */ + vn_decode_VkImageSubresourceLayers_temp(dec, &val->srcSubresource); + vn_decode_VkOffset3D_temp(dec, &val->srcOffset); + vn_decode_VkImageSubresourceLayers_temp(dec, &val->dstSubresource); + vn_decode_VkOffset3D_temp(dec, &val->dstOffset); + vn_decode_VkExtent3D_temp(dec, &val->extent); } -static inline void vn_encode_vkCmdBindIndexBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBindIndexBuffer *args) +static inline void +vn_decode_VkImageResolve2_temp(struct vn_cs_decoder *dec, VkImageResolve2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBindIndexBuffer_EXT}); + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2) + vn_cs_decoder_set_fatal(dec); - /* skip args->commandBuffer */ - /* skip args->buffer */ - /* skip args->offset */ - /* skip args->indexType */ + val->sType = stype; + val->pNext = vn_decode_VkImageResolve2_pnext_temp(dec); + vn_decode_VkImageResolve2_self_temp(dec, val); } -static inline void vn_decode_vkCmdBindVertexBuffers_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBindVertexBuffers *args) +static inline void +vn_replace_VkImageResolve2_handle_self(VkImageResolve2 *val) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_uint32_t(dec, &args->firstBinding); - vn_decode_uint32_t(dec, &args->bindingCount); - if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->bindingCount); - args->pBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBuffers) * iter_count); - if (!args->pBuffers) return; - for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkBuffer_lookup(dec, &((VkBuffer *)args->pBuffers)[i]); - } else { - vn_decode_array_size(dec, args->bindingCount); - args->pBuffers = NULL; - } - if (vn_peek_array_size(dec)) { - const size_t array_size = vn_decode_array_size(dec, args->bindingCount); - args->pOffsets = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pOffsets) * array_size); - if (!args->pOffsets) return; - vn_decode_VkDeviceSize_array(dec, (VkDeviceSize *)args->pOffsets, array_size); - } else { - vn_decode_array_size(dec, args->bindingCount); - args->pOffsets = NULL; - } -} - -static inline void vn_replace_vkCmdBindVertexBuffers_args_handle(struct vn_command_vkCmdBindVertexBuffers *args) -{ - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->firstBinding */ - /* skip args->bindingCount */ - if (args->pBuffers) { - for (uint32_t i = 0; i < args->bindingCount; i++) - vn_replace_VkBuffer_handle(&((VkBuffer *)args->pBuffers)[i]); - } - /* skip args->pOffsets */ + /* skip val->sType */ + /* skip val->pNext */ + vn_replace_VkImageSubresourceLayers_handle(&val->srcSubresource); + vn_replace_VkOffset3D_handle(&val->srcOffset); + vn_replace_VkImageSubresourceLayers_handle(&val->dstSubresource); + vn_replace_VkOffset3D_handle(&val->dstOffset); + vn_replace_VkExtent3D_handle(&val->extent); } -static inline void vn_encode_vkCmdBindVertexBuffers_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBindVertexBuffers *args) +static inline void +vn_replace_VkImageResolve2_handle(VkImageResolve2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBindVertexBuffers_EXT}); + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; - /* skip args->commandBuffer */ - /* skip args->firstBinding */ - /* skip args->bindingCount */ - /* skip args->pBuffers */ - /* skip args->pOffsets */ + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2: + vn_replace_VkImageResolve2_handle_self((VkImageResolve2 *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); } -static inline void vn_decode_vkCmdDraw_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDraw *args) -{ - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_uint32_t(dec, &args->vertexCount); - vn_decode_uint32_t(dec, &args->instanceCount); - vn_decode_uint32_t(dec, &args->firstVertex); - vn_decode_uint32_t(dec, &args->firstInstance); -} +/* struct VkResolveImageInfo2 chain */ -static inline void vn_replace_vkCmdDraw_args_handle(struct vn_command_vkCmdDraw *args) +static inline void * +vn_decode_VkResolveImageInfo2_pnext_temp(struct vn_cs_decoder *dec) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->vertexCount */ - /* skip args->instanceCount */ - /* skip args->firstVertex */ - /* skip args->firstInstance */ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; } -static inline void vn_encode_vkCmdDraw_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDraw *args) +static inline void +vn_decode_VkResolveImageInfo2_self_temp(struct vn_cs_decoder *dec, VkResolveImageInfo2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDraw_EXT}); - - /* skip args->commandBuffer */ - /* skip args->vertexCount */ - /* skip args->instanceCount */ - /* skip args->firstVertex */ - /* skip args->firstInstance */ + /* skip val->{sType,pNext} */ + vn_decode_VkImage_lookup(dec, &val->srcImage); + vn_decode_VkImageLayout(dec, &val->srcImageLayout); + vn_decode_VkImage_lookup(dec, &val->dstImage); + vn_decode_VkImageLayout(dec, &val->dstImageLayout); + vn_decode_uint32_t(dec, &val->regionCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, val->regionCount); + val->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pRegions) * iter_count); + if (!val->pRegions) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkImageResolve2_temp(dec, &((VkImageResolve2 *)val->pRegions)[i]); + } else { + vn_decode_array_size(dec, val->regionCount); + val->pRegions = NULL; + } } -static inline void vn_decode_vkCmdDrawIndexed_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDrawIndexed *args) +static inline void +vn_decode_VkResolveImageInfo2_temp(struct vn_cs_decoder *dec, VkResolveImageInfo2 *val) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_uint32_t(dec, &args->indexCount); - vn_decode_uint32_t(dec, &args->instanceCount); - vn_decode_uint32_t(dec, &args->firstIndex); - vn_decode_int32_t(dec, &args->vertexOffset); - vn_decode_uint32_t(dec, &args->firstInstance); + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkResolveImageInfo2_pnext_temp(dec); + vn_decode_VkResolveImageInfo2_self_temp(dec, val); } -static inline void vn_replace_vkCmdDrawIndexed_args_handle(struct vn_command_vkCmdDrawIndexed *args) +static inline void +vn_replace_VkResolveImageInfo2_handle_self(VkResolveImageInfo2 *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->indexCount */ - /* skip args->instanceCount */ - /* skip args->firstIndex */ - /* skip args->vertexOffset */ - /* skip args->firstInstance */ + /* skip val->sType */ + /* skip val->pNext */ + vn_replace_VkImage_handle(&val->srcImage); + /* skip val->srcImageLayout */ + vn_replace_VkImage_handle(&val->dstImage); + /* skip val->dstImageLayout */ + /* skip val->regionCount */ + if (val->pRegions) { + for (uint32_t i = 0; i < val->regionCount; i++) + vn_replace_VkImageResolve2_handle(&((VkImageResolve2 *)val->pRegions)[i]); + } } -static inline void vn_encode_vkCmdDrawIndexed_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDrawIndexed *args) +static inline void +vn_replace_VkResolveImageInfo2_handle(VkResolveImageInfo2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDrawIndexed_EXT}); + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; - /* skip args->commandBuffer */ - /* skip args->indexCount */ - /* skip args->instanceCount */ - /* skip args->firstIndex */ - /* skip args->vertexOffset */ - /* skip args->firstInstance */ + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2: + vn_replace_VkResolveImageInfo2_handle_self((VkResolveImageInfo2 *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); } -static inline void vn_decode_vkCmdDrawIndirect_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDrawIndirect *args) -{ - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkBuffer_lookup(dec, &args->buffer); - vn_decode_VkDeviceSize(dec, &args->offset); - vn_decode_uint32_t(dec, &args->drawCount); - vn_decode_uint32_t(dec, &args->stride); -} +/* struct VkBufferMemoryBarrier2 chain */ -static inline void vn_replace_vkCmdDrawIndirect_args_handle(struct vn_command_vkCmdDrawIndirect *args) +static inline void * +vn_decode_VkBufferMemoryBarrier2_pnext_temp(struct vn_cs_decoder *dec) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkBuffer_handle(&args->buffer); - /* skip args->offset */ - /* skip args->drawCount */ - /* skip args->stride */ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; } -static inline void vn_encode_vkCmdDrawIndirect_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDrawIndirect *args) +static inline void +vn_decode_VkBufferMemoryBarrier2_self_temp(struct vn_cs_decoder *dec, VkBufferMemoryBarrier2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDrawIndirect_EXT}); - - /* skip args->commandBuffer */ - /* skip args->buffer */ - /* skip args->offset */ - /* skip args->drawCount */ - /* skip args->stride */ + /* skip val->{sType,pNext} */ + vn_decode_VkFlags64(dec, &val->srcStageMask); + vn_decode_VkFlags64(dec, &val->srcAccessMask); + vn_decode_VkFlags64(dec, &val->dstStageMask); + vn_decode_VkFlags64(dec, &val->dstAccessMask); + vn_decode_uint32_t(dec, &val->srcQueueFamilyIndex); + vn_decode_uint32_t(dec, &val->dstQueueFamilyIndex); + vn_decode_VkBuffer_lookup(dec, &val->buffer); + vn_decode_VkDeviceSize(dec, &val->offset); + vn_decode_VkDeviceSize(dec, &val->size); } -static inline void vn_decode_vkCmdDrawIndexedIndirect_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDrawIndexedIndirect *args) +static inline void +vn_decode_VkBufferMemoryBarrier2_temp(struct vn_cs_decoder *dec, VkBufferMemoryBarrier2 *val) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkBuffer_lookup(dec, &args->buffer); - vn_decode_VkDeviceSize(dec, &args->offset); - vn_decode_uint32_t(dec, &args->drawCount); - vn_decode_uint32_t(dec, &args->stride); + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkBufferMemoryBarrier2_pnext_temp(dec); + vn_decode_VkBufferMemoryBarrier2_self_temp(dec, val); } -static inline void vn_replace_vkCmdDrawIndexedIndirect_args_handle(struct vn_command_vkCmdDrawIndexedIndirect *args) +static inline void +vn_replace_VkBufferMemoryBarrier2_handle_self(VkBufferMemoryBarrier2 *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkBuffer_handle(&args->buffer); - /* skip args->offset */ - /* skip args->drawCount */ - /* skip args->stride */ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->srcStageMask */ + /* skip val->srcAccessMask */ + /* skip val->dstStageMask */ + /* skip val->dstAccessMask */ + /* skip val->srcQueueFamilyIndex */ + /* skip val->dstQueueFamilyIndex */ + vn_replace_VkBuffer_handle(&val->buffer); + /* skip val->offset */ + /* skip val->size */ } -static inline void vn_encode_vkCmdDrawIndexedIndirect_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDrawIndexedIndirect *args) +static inline void +vn_replace_VkBufferMemoryBarrier2_handle(VkBufferMemoryBarrier2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDrawIndexedIndirect_EXT}); + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; - /* skip args->commandBuffer */ - /* skip args->buffer */ - /* skip args->offset */ - /* skip args->drawCount */ - /* skip args->stride */ + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2: + vn_replace_VkBufferMemoryBarrier2_handle_self((VkBufferMemoryBarrier2 *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); } -static inline void vn_decode_vkCmdDispatch_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDispatch *args) +/* struct VkImageMemoryBarrier2 chain */ + +static inline void * +vn_decode_VkImageMemoryBarrier2_pnext_temp(struct vn_cs_decoder *dec) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_uint32_t(dec, &args->groupCountX); - vn_decode_uint32_t(dec, &args->groupCountY); - vn_decode_uint32_t(dec, &args->groupCountZ); + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; } -static inline void vn_replace_vkCmdDispatch_args_handle(struct vn_command_vkCmdDispatch *args) +static inline void +vn_decode_VkImageMemoryBarrier2_self_temp(struct vn_cs_decoder *dec, VkImageMemoryBarrier2 *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->groupCountX */ - /* skip args->groupCountY */ - /* skip args->groupCountZ */ + /* skip val->{sType,pNext} */ + vn_decode_VkFlags64(dec, &val->srcStageMask); + vn_decode_VkFlags64(dec, &val->srcAccessMask); + vn_decode_VkFlags64(dec, &val->dstStageMask); + vn_decode_VkFlags64(dec, &val->dstAccessMask); + vn_decode_VkImageLayout(dec, &val->oldLayout); + vn_decode_VkImageLayout(dec, &val->newLayout); + vn_decode_uint32_t(dec, &val->srcQueueFamilyIndex); + vn_decode_uint32_t(dec, &val->dstQueueFamilyIndex); + vn_decode_VkImage_lookup(dec, &val->image); + vn_decode_VkImageSubresourceRange_temp(dec, &val->subresourceRange); } -static inline void vn_encode_vkCmdDispatch_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDispatch *args) +static inline void +vn_decode_VkImageMemoryBarrier2_temp(struct vn_cs_decoder *dec, VkImageMemoryBarrier2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDispatch_EXT}); + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2) + vn_cs_decoder_set_fatal(dec); - /* skip args->commandBuffer */ - /* skip args->groupCountX */ - /* skip args->groupCountY */ - /* skip args->groupCountZ */ + val->sType = stype; + val->pNext = vn_decode_VkImageMemoryBarrier2_pnext_temp(dec); + vn_decode_VkImageMemoryBarrier2_self_temp(dec, val); } -static inline void vn_decode_vkCmdDispatchIndirect_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDispatchIndirect *args) +static inline void +vn_replace_VkImageMemoryBarrier2_handle_self(VkImageMemoryBarrier2 *val) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkBuffer_lookup(dec, &args->buffer); - vn_decode_VkDeviceSize(dec, &args->offset); -} - -static inline void vn_replace_vkCmdDispatchIndirect_args_handle(struct vn_command_vkCmdDispatchIndirect *args) -{ - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkBuffer_handle(&args->buffer); - /* skip args->offset */ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->srcStageMask */ + /* skip val->srcAccessMask */ + /* skip val->dstStageMask */ + /* skip val->dstAccessMask */ + /* skip val->oldLayout */ + /* skip val->newLayout */ + /* skip val->srcQueueFamilyIndex */ + /* skip val->dstQueueFamilyIndex */ + vn_replace_VkImage_handle(&val->image); + vn_replace_VkImageSubresourceRange_handle(&val->subresourceRange); } -static inline void vn_encode_vkCmdDispatchIndirect_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDispatchIndirect *args) +static inline void +vn_replace_VkImageMemoryBarrier2_handle(VkImageMemoryBarrier2 *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDispatchIndirect_EXT}); + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; - /* skip args->commandBuffer */ - /* skip args->buffer */ - /* skip args->offset */ + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2: + vn_replace_VkImageMemoryBarrier2_handle_self((VkImageMemoryBarrier2 *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); } -static inline void vn_decode_vkCmdCopyBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdCopyBuffer *args) +/* struct VkDependencyInfo chain */ + +static inline void * +vn_decode_VkDependencyInfo_pnext_temp(struct vn_cs_decoder *dec) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkBuffer_lookup(dec, &args->srcBuffer); - vn_decode_VkBuffer_lookup(dec, &args->dstBuffer); - vn_decode_uint32_t(dec, &args->regionCount); + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkDependencyInfo_self_temp(struct vn_cs_decoder *dec, VkDependencyInfo *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkFlags(dec, &val->dependencyFlags); + vn_decode_uint32_t(dec, &val->memoryBarrierCount); if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->regionCount); - args->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRegions) * iter_count); - if (!args->pRegions) return; + const uint32_t iter_count = vn_decode_array_size(dec, val->memoryBarrierCount); + val->pMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pMemoryBarriers) * iter_count); + if (!val->pMemoryBarriers) return; for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkBufferCopy_temp(dec, &((VkBufferCopy *)args->pRegions)[i]); + vn_decode_VkMemoryBarrier2_temp(dec, &((VkMemoryBarrier2 *)val->pMemoryBarriers)[i]); } else { - vn_decode_array_size(dec, args->regionCount); - args->pRegions = NULL; + vn_decode_array_size(dec, val->memoryBarrierCount); + val->pMemoryBarriers = NULL; + } + vn_decode_uint32_t(dec, &val->bufferMemoryBarrierCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, val->bufferMemoryBarrierCount); + val->pBufferMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pBufferMemoryBarriers) * iter_count); + if (!val->pBufferMemoryBarriers) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkBufferMemoryBarrier2_temp(dec, &((VkBufferMemoryBarrier2 *)val->pBufferMemoryBarriers)[i]); + } else { + vn_decode_array_size(dec, val->bufferMemoryBarrierCount); + val->pBufferMemoryBarriers = NULL; + } + vn_decode_uint32_t(dec, &val->imageMemoryBarrierCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, val->imageMemoryBarrierCount); + val->pImageMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pImageMemoryBarriers) * iter_count); + if (!val->pImageMemoryBarriers) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkImageMemoryBarrier2_temp(dec, &((VkImageMemoryBarrier2 *)val->pImageMemoryBarriers)[i]); + } else { + vn_decode_array_size(dec, val->imageMemoryBarrierCount); + val->pImageMemoryBarriers = NULL; } } -static inline void vn_replace_vkCmdCopyBuffer_args_handle(struct vn_command_vkCmdCopyBuffer *args) +static inline void +vn_decode_VkDependencyInfo_temp(struct vn_cs_decoder *dec, VkDependencyInfo *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkBuffer_handle(&args->srcBuffer); - vn_replace_VkBuffer_handle(&args->dstBuffer); - /* skip args->regionCount */ - if (args->pRegions) { - for (uint32_t i = 0; i < args->regionCount; i++) - vn_replace_VkBufferCopy_handle(&((VkBufferCopy *)args->pRegions)[i]); + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_DEPENDENCY_INFO) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkDependencyInfo_pnext_temp(dec); + vn_decode_VkDependencyInfo_self_temp(dec, val); +} + +static inline void +vn_replace_VkDependencyInfo_handle_self(VkDependencyInfo *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->dependencyFlags */ + /* skip val->memoryBarrierCount */ + if (val->pMemoryBarriers) { + for (uint32_t i = 0; i < val->memoryBarrierCount; i++) + vn_replace_VkMemoryBarrier2_handle(&((VkMemoryBarrier2 *)val->pMemoryBarriers)[i]); + } + /* skip val->bufferMemoryBarrierCount */ + if (val->pBufferMemoryBarriers) { + for (uint32_t i = 0; i < val->bufferMemoryBarrierCount; i++) + vn_replace_VkBufferMemoryBarrier2_handle(&((VkBufferMemoryBarrier2 *)val->pBufferMemoryBarriers)[i]); + } + /* skip val->imageMemoryBarrierCount */ + if (val->pImageMemoryBarriers) { + for (uint32_t i = 0; i < val->imageMemoryBarrierCount; i++) + vn_replace_VkImageMemoryBarrier2_handle(&((VkImageMemoryBarrier2 *)val->pImageMemoryBarriers)[i]); } } -static inline void vn_encode_vkCmdCopyBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdCopyBuffer *args) +static inline void +vn_replace_VkDependencyInfo_handle(VkDependencyInfo *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdCopyBuffer_EXT}); + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; - /* skip args->commandBuffer */ - /* skip args->srcBuffer */ - /* skip args->dstBuffer */ - /* skip args->regionCount */ - /* skip args->pRegions */ + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_DEPENDENCY_INFO: + vn_replace_VkDependencyInfo_handle_self((VkDependencyInfo *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); } -static inline void vn_decode_vkCmdCopyImage_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdCopyImage *args) +/* struct VkRenderingAttachmentInfo chain */ + +static inline void * +vn_decode_VkRenderingAttachmentInfo_pnext_temp(struct vn_cs_decoder *dec) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkImage_lookup(dec, &args->srcImage); - vn_decode_VkImageLayout(dec, &args->srcImageLayout); - vn_decode_VkImage_lookup(dec, &args->dstImage); - vn_decode_VkImageLayout(dec, &args->dstImageLayout); - vn_decode_uint32_t(dec, &args->regionCount); - if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->regionCount); - args->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRegions) * iter_count); - if (!args->pRegions) return; - for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkImageCopy_temp(dec, &((VkImageCopy *)args->pRegions)[i]); - } else { - vn_decode_array_size(dec, args->regionCount); - args->pRegions = NULL; - } + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; } -static inline void vn_replace_vkCmdCopyImage_args_handle(struct vn_command_vkCmdCopyImage *args) +static inline void +vn_decode_VkRenderingAttachmentInfo_self_temp(struct vn_cs_decoder *dec, VkRenderingAttachmentInfo *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkImage_handle(&args->srcImage); - /* skip args->srcImageLayout */ - vn_replace_VkImage_handle(&args->dstImage); - /* skip args->dstImageLayout */ - /* skip args->regionCount */ - if (args->pRegions) { - for (uint32_t i = 0; i < args->regionCount; i++) - vn_replace_VkImageCopy_handle(&((VkImageCopy *)args->pRegions)[i]); - } + /* skip val->{sType,pNext} */ + vn_decode_VkImageView_lookup(dec, &val->imageView); + vn_decode_VkImageLayout(dec, &val->imageLayout); + vn_decode_VkResolveModeFlagBits(dec, &val->resolveMode); + vn_decode_VkImageView_lookup(dec, &val->resolveImageView); + vn_decode_VkImageLayout(dec, &val->resolveImageLayout); + vn_decode_VkAttachmentLoadOp(dec, &val->loadOp); + vn_decode_VkAttachmentStoreOp(dec, &val->storeOp); + vn_decode_VkClearValue_temp(dec, &val->clearValue); } -static inline void vn_encode_vkCmdCopyImage_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdCopyImage *args) +static inline void +vn_decode_VkRenderingAttachmentInfo_temp(struct vn_cs_decoder *dec, VkRenderingAttachmentInfo *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdCopyImage_EXT}); + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO) + vn_cs_decoder_set_fatal(dec); - /* skip args->commandBuffer */ - /* skip args->srcImage */ - /* skip args->srcImageLayout */ - /* skip args->dstImage */ - /* skip args->dstImageLayout */ - /* skip args->regionCount */ - /* skip args->pRegions */ + val->sType = stype; + val->pNext = vn_decode_VkRenderingAttachmentInfo_pnext_temp(dec); + vn_decode_VkRenderingAttachmentInfo_self_temp(dec, val); } -static inline void vn_decode_vkCmdBlitImage_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBlitImage *args) +static inline void +vn_replace_VkRenderingAttachmentInfo_handle_self(VkRenderingAttachmentInfo *val) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkImage_lookup(dec, &args->srcImage); - vn_decode_VkImageLayout(dec, &args->srcImageLayout); - vn_decode_VkImage_lookup(dec, &args->dstImage); - vn_decode_VkImageLayout(dec, &args->dstImageLayout); - vn_decode_uint32_t(dec, &args->regionCount); - if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->regionCount); - args->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRegions) * iter_count); - if (!args->pRegions) return; - for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkImageBlit_temp(dec, &((VkImageBlit *)args->pRegions)[i]); - } else { - vn_decode_array_size(dec, args->regionCount); - args->pRegions = NULL; - } - vn_decode_VkFilter(dec, &args->filter); + /* skip val->sType */ + /* skip val->pNext */ + vn_replace_VkImageView_handle(&val->imageView); + /* skip val->imageLayout */ + /* skip val->resolveMode */ + vn_replace_VkImageView_handle(&val->resolveImageView); + /* skip val->resolveImageLayout */ + /* skip val->loadOp */ + /* skip val->storeOp */ + /* skip val->clearValue */ } -static inline void vn_replace_vkCmdBlitImage_args_handle(struct vn_command_vkCmdBlitImage *args) +static inline void +vn_replace_VkRenderingAttachmentInfo_handle(VkRenderingAttachmentInfo *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkImage_handle(&args->srcImage); - /* skip args->srcImageLayout */ - vn_replace_VkImage_handle(&args->dstImage); - /* skip args->dstImageLayout */ - /* skip args->regionCount */ - if (args->pRegions) { - for (uint32_t i = 0; i < args->regionCount; i++) - vn_replace_VkImageBlit_handle(&((VkImageBlit *)args->pRegions)[i]); - } - /* skip args->filter */ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO: + vn_replace_VkRenderingAttachmentInfo_handle_self((VkRenderingAttachmentInfo *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); } -static inline void vn_encode_vkCmdBlitImage_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBlitImage *args) +/* struct VkRenderingInfo chain */ + +static inline void * +vn_decode_VkRenderingInfo_pnext_temp(struct vn_cs_decoder *dec) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBlitImage_EXT}); + VkBaseOutStructure *pnext; + VkStructureType stype; - /* skip args->commandBuffer */ - /* skip args->srcImage */ - /* skip args->srcImageLayout */ - /* skip args->dstImage */ - /* skip args->dstImageLayout */ - /* skip args->regionCount */ - /* skip args->pRegions */ - /* skip args->filter */ + if (!vn_decode_simple_pointer(dec)) + return NULL; + + vn_decode_VkStructureType(dec, &stype); + switch ((int32_t)stype) { + case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkDeviceGroupRenderPassBeginInfo)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkRenderingInfo_pnext_temp(dec); + vn_decode_VkDeviceGroupRenderPassBeginInfo_self_temp(dec, (VkDeviceGroupRenderPassBeginInfo *)pnext); + } + break; + default: + /* unexpected struct */ + pnext = NULL; + vn_cs_decoder_set_fatal(dec); + break; + } + + return pnext; } -static inline void vn_decode_vkCmdCopyBufferToImage_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdCopyBufferToImage *args) +static inline void +vn_decode_VkRenderingInfo_self_temp(struct vn_cs_decoder *dec, VkRenderingInfo *val) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkBuffer_lookup(dec, &args->srcBuffer); - vn_decode_VkImage_lookup(dec, &args->dstImage); - vn_decode_VkImageLayout(dec, &args->dstImageLayout); - vn_decode_uint32_t(dec, &args->regionCount); + /* skip val->{sType,pNext} */ + vn_decode_VkFlags(dec, &val->flags); + vn_decode_VkRect2D_temp(dec, &val->renderArea); + vn_decode_uint32_t(dec, &val->layerCount); + vn_decode_uint32_t(dec, &val->viewMask); + vn_decode_uint32_t(dec, &val->colorAttachmentCount); if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->regionCount); - args->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRegions) * iter_count); - if (!args->pRegions) return; + const uint32_t iter_count = vn_decode_array_size(dec, val->colorAttachmentCount); + val->pColorAttachments = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pColorAttachments) * iter_count); + if (!val->pColorAttachments) return; for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkBufferImageCopy_temp(dec, &((VkBufferImageCopy *)args->pRegions)[i]); + vn_decode_VkRenderingAttachmentInfo_temp(dec, &((VkRenderingAttachmentInfo *)val->pColorAttachments)[i]); } else { - vn_decode_array_size(dec, args->regionCount); - args->pRegions = NULL; + vn_decode_array_size(dec, val->colorAttachmentCount); + val->pColorAttachments = NULL; + } + if (vn_decode_simple_pointer(dec)) { + val->pDepthAttachment = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pDepthAttachment)); + if (!val->pDepthAttachment) return; + vn_decode_VkRenderingAttachmentInfo_temp(dec, (VkRenderingAttachmentInfo *)val->pDepthAttachment); + } else { + val->pDepthAttachment = NULL; + } + if (vn_decode_simple_pointer(dec)) { + val->pStencilAttachment = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pStencilAttachment)); + if (!val->pStencilAttachment) return; + vn_decode_VkRenderingAttachmentInfo_temp(dec, (VkRenderingAttachmentInfo *)val->pStencilAttachment); + } else { + val->pStencilAttachment = NULL; } } -static inline void vn_replace_vkCmdCopyBufferToImage_args_handle(struct vn_command_vkCmdCopyBufferToImage *args) +static inline void +vn_decode_VkRenderingInfo_temp(struct vn_cs_decoder *dec, VkRenderingInfo *val) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkBuffer_handle(&args->srcBuffer); - vn_replace_VkImage_handle(&args->dstImage); - /* skip args->dstImageLayout */ - /* skip args->regionCount */ - if (args->pRegions) { - for (uint32_t i = 0; i < args->regionCount; i++) - vn_replace_VkBufferImageCopy_handle(&((VkBufferImageCopy *)args->pRegions)[i]); + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_RENDERING_INFO) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkRenderingInfo_pnext_temp(dec); + vn_decode_VkRenderingInfo_self_temp(dec, val); +} + +static inline void +vn_replace_VkRenderingInfo_handle_self(VkRenderingInfo *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->flags */ + vn_replace_VkRect2D_handle(&val->renderArea); + /* skip val->layerCount */ + /* skip val->viewMask */ + /* skip val->colorAttachmentCount */ + if (val->pColorAttachments) { + for (uint32_t i = 0; i < val->colorAttachmentCount; i++) + vn_replace_VkRenderingAttachmentInfo_handle(&((VkRenderingAttachmentInfo *)val->pColorAttachments)[i]); } + if (val->pDepthAttachment) + vn_replace_VkRenderingAttachmentInfo_handle((VkRenderingAttachmentInfo *)val->pDepthAttachment); + if (val->pStencilAttachment) + vn_replace_VkRenderingAttachmentInfo_handle((VkRenderingAttachmentInfo *)val->pStencilAttachment); } -static inline void vn_encode_vkCmdCopyBufferToImage_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdCopyBufferToImage *args) +static inline void +vn_replace_VkRenderingInfo_handle(VkRenderingInfo *val) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdCopyBufferToImage_EXT}); + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; - /* skip args->commandBuffer */ - /* skip args->srcBuffer */ - /* skip args->dstImage */ - /* skip args->dstImageLayout */ - /* skip args->regionCount */ - /* skip args->pRegions */ + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_RENDERING_INFO: + vn_replace_VkRenderingInfo_handle_self((VkRenderingInfo *)pnext); + break; + case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: + vn_replace_VkDeviceGroupRenderPassBeginInfo_handle_self((VkDeviceGroupRenderPassBeginInfo *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); } -static inline void vn_decode_vkCmdCopyImageToBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdCopyImageToBuffer *args) +static inline void vn_decode_vkAllocateCommandBuffers_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkAllocateCommandBuffers *args) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkImage_lookup(dec, &args->srcImage); - vn_decode_VkImageLayout(dec, &args->srcImageLayout); - vn_decode_VkBuffer_lookup(dec, &args->dstBuffer); - vn_decode_uint32_t(dec, &args->regionCount); + vn_decode_VkDevice_lookup(dec, &args->device); + if (vn_decode_simple_pointer(dec)) { + args->pAllocateInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pAllocateInfo)); + if (!args->pAllocateInfo) return; + vn_decode_VkCommandBufferAllocateInfo_temp(dec, (VkCommandBufferAllocateInfo *)args->pAllocateInfo); + } else { + args->pAllocateInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->regionCount); - args->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRegions) * iter_count); - if (!args->pRegions) return; + const uint32_t iter_count = vn_decode_array_size(dec, (args->pAllocateInfo ? args->pAllocateInfo->commandBufferCount : 0)); + args->pCommandBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCommandBuffers) * iter_count); + if (!args->pCommandBuffers) return; for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkBufferImageCopy_temp(dec, &((VkBufferImageCopy *)args->pRegions)[i]); + vn_decode_VkCommandBuffer_temp(dec, &args->pCommandBuffers[i]); } else { - vn_decode_array_size(dec, args->regionCount); - args->pRegions = NULL; + vn_decode_array_size(dec, (args->pAllocateInfo ? args->pAllocateInfo->commandBufferCount : 0)); + args->pCommandBuffers = NULL; } } -static inline void vn_replace_vkCmdCopyImageToBuffer_args_handle(struct vn_command_vkCmdCopyImageToBuffer *args) +static inline void vn_replace_vkAllocateCommandBuffers_args_handle(struct vn_command_vkAllocateCommandBuffers *args) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkImage_handle(&args->srcImage); - /* skip args->srcImageLayout */ - vn_replace_VkBuffer_handle(&args->dstBuffer); - /* skip args->regionCount */ - if (args->pRegions) { - for (uint32_t i = 0; i < args->regionCount; i++) - vn_replace_VkBufferImageCopy_handle(&((VkBufferImageCopy *)args->pRegions)[i]); - } + vn_replace_VkDevice_handle(&args->device); + if (args->pAllocateInfo) + vn_replace_VkCommandBufferAllocateInfo_handle((VkCommandBufferAllocateInfo *)args->pAllocateInfo); + /* skip args->pCommandBuffers */ } -static inline void vn_encode_vkCmdCopyImageToBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdCopyImageToBuffer *args) +static inline void vn_encode_vkAllocateCommandBuffers_reply(struct vn_cs_encoder *enc, const struct vn_command_vkAllocateCommandBuffers *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdCopyImageToBuffer_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkAllocateCommandBuffers_EXT}); - /* skip args->commandBuffer */ - /* skip args->srcImage */ - /* skip args->srcImageLayout */ - /* skip args->dstBuffer */ - /* skip args->regionCount */ - /* skip args->pRegions */ + vn_encode_VkResult(enc, &args->ret); + /* skip args->device */ + /* skip args->pAllocateInfo */ + if (args->pCommandBuffers) { + vn_encode_array_size(enc, (args->pAllocateInfo ? args->pAllocateInfo->commandBufferCount : 0)); + for (uint32_t i = 0; i < (args->pAllocateInfo ? args->pAllocateInfo->commandBufferCount : 0); i++) + vn_encode_VkCommandBuffer(enc, &args->pCommandBuffers[i]); + } else { + vn_encode_array_size(enc, 0); + } } -static inline void vn_decode_vkCmdUpdateBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdUpdateBuffer *args) +static inline void vn_decode_vkFreeCommandBuffers_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkFreeCommandBuffers *args) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkBuffer_lookup(dec, &args->dstBuffer); - vn_decode_VkDeviceSize(dec, &args->dstOffset); - vn_decode_VkDeviceSize(dec, &args->dataSize); + vn_decode_VkDevice_lookup(dec, &args->device); + vn_decode_VkCommandPool_lookup(dec, &args->commandPool); + vn_decode_uint32_t(dec, &args->commandBufferCount); if (vn_peek_array_size(dec)) { - const size_t array_size = vn_decode_array_size(dec, args->dataSize); - args->pData = vn_cs_decoder_alloc_temp(dec, array_size); - if (!args->pData) return; - vn_decode_blob_array(dec, (void *)args->pData, array_size); + const uint32_t iter_count = vn_decode_array_size(dec, args->commandBufferCount); + args->pCommandBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCommandBuffers) * iter_count); + if (!args->pCommandBuffers) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkCommandBuffer_lookup(dec, &((VkCommandBuffer *)args->pCommandBuffers)[i]); } else { - vn_decode_array_size(dec, args->dataSize); - args->pData = NULL; + vn_decode_array_size_unchecked(dec); + args->pCommandBuffers = NULL; } } -static inline void vn_replace_vkCmdUpdateBuffer_args_handle(struct vn_command_vkCmdUpdateBuffer *args) +static inline void vn_replace_vkFreeCommandBuffers_args_handle(struct vn_command_vkFreeCommandBuffers *args) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkBuffer_handle(&args->dstBuffer); - /* skip args->dstOffset */ - /* skip args->dataSize */ - /* skip args->pData */ + vn_replace_VkDevice_handle(&args->device); + vn_replace_VkCommandPool_handle(&args->commandPool); + /* skip args->commandBufferCount */ + if (args->pCommandBuffers) { + for (uint32_t i = 0; i < args->commandBufferCount; i++) + vn_replace_VkCommandBuffer_handle(&((VkCommandBuffer *)args->pCommandBuffers)[i]); + } } -static inline void vn_encode_vkCmdUpdateBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdUpdateBuffer *args) +static inline void vn_encode_vkFreeCommandBuffers_reply(struct vn_cs_encoder *enc, const struct vn_command_vkFreeCommandBuffers *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdUpdateBuffer_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkFreeCommandBuffers_EXT}); - /* skip args->commandBuffer */ - /* skip args->dstBuffer */ - /* skip args->dstOffset */ - /* skip args->dataSize */ - /* skip args->pData */ + /* skip args->device */ + /* skip args->commandPool */ + /* skip args->commandBufferCount */ + /* skip args->pCommandBuffers */ } -static inline void vn_decode_vkCmdFillBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdFillBuffer *args) +static inline void vn_decode_vkBeginCommandBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkBeginCommandBuffer *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkBuffer_lookup(dec, &args->dstBuffer); - vn_decode_VkDeviceSize(dec, &args->dstOffset); - vn_decode_VkDeviceSize(dec, &args->size); - vn_decode_uint32_t(dec, &args->data); + if (vn_decode_simple_pointer(dec)) { + args->pBeginInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBeginInfo)); + if (!args->pBeginInfo) return; + vn_decode_VkCommandBufferBeginInfo_temp(dec, (VkCommandBufferBeginInfo *)args->pBeginInfo); + } else { + args->pBeginInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } } -static inline void vn_replace_vkCmdFillBuffer_args_handle(struct vn_command_vkCmdFillBuffer *args) +static inline void vn_replace_vkBeginCommandBuffer_args_handle(struct vn_command_vkBeginCommandBuffer *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkBuffer_handle(&args->dstBuffer); - /* skip args->dstOffset */ - /* skip args->size */ - /* skip args->data */ + if (args->pBeginInfo) + vn_replace_VkCommandBufferBeginInfo_handle((VkCommandBufferBeginInfo *)args->pBeginInfo); } -static inline void vn_encode_vkCmdFillBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdFillBuffer *args) +static inline void vn_encode_vkBeginCommandBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkBeginCommandBuffer *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdFillBuffer_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkBeginCommandBuffer_EXT}); + vn_encode_VkResult(enc, &args->ret); /* skip args->commandBuffer */ - /* skip args->dstBuffer */ - /* skip args->dstOffset */ - /* skip args->size */ - /* skip args->data */ + /* skip args->pBeginInfo */ } -static inline void vn_decode_vkCmdClearColorImage_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdClearColorImage *args) +static inline void vn_decode_vkEndCommandBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkEndCommandBuffer *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkImage_lookup(dec, &args->image); - vn_decode_VkImageLayout(dec, &args->imageLayout); - if (vn_decode_simple_pointer(dec)) { - args->pColor = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pColor)); - if (!args->pColor) return; - vn_decode_VkClearColorValue_temp(dec, (VkClearColorValue *)args->pColor); - } else { - args->pColor = NULL; - } - vn_decode_uint32_t(dec, &args->rangeCount); - if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->rangeCount); - args->pRanges = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRanges) * iter_count); - if (!args->pRanges) return; - for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkImageSubresourceRange_temp(dec, &((VkImageSubresourceRange *)args->pRanges)[i]); - } else { - vn_decode_array_size(dec, args->rangeCount); - args->pRanges = NULL; - } } -static inline void vn_replace_vkCmdClearColorImage_args_handle(struct vn_command_vkCmdClearColorImage *args) +static inline void vn_replace_vkEndCommandBuffer_args_handle(struct vn_command_vkEndCommandBuffer *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkImage_handle(&args->image); - /* skip args->imageLayout */ - /* skip args->pColor */ - /* skip args->rangeCount */ - if (args->pRanges) { - for (uint32_t i = 0; i < args->rangeCount; i++) - vn_replace_VkImageSubresourceRange_handle(&((VkImageSubresourceRange *)args->pRanges)[i]); - } } -static inline void vn_encode_vkCmdClearColorImage_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdClearColorImage *args) +static inline void vn_encode_vkEndCommandBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkEndCommandBuffer *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdClearColorImage_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkEndCommandBuffer_EXT}); + vn_encode_VkResult(enc, &args->ret); /* skip args->commandBuffer */ - /* skip args->image */ - /* skip args->imageLayout */ - /* skip args->pColor */ - /* skip args->rangeCount */ - /* skip args->pRanges */ } -static inline void vn_decode_vkCmdClearDepthStencilImage_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdClearDepthStencilImage *args) +static inline void vn_decode_vkResetCommandBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkResetCommandBuffer *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkImage_lookup(dec, &args->image); - vn_decode_VkImageLayout(dec, &args->imageLayout); - if (vn_decode_simple_pointer(dec)) { - args->pDepthStencil = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pDepthStencil)); - if (!args->pDepthStencil) return; - vn_decode_VkClearDepthStencilValue_temp(dec, (VkClearDepthStencilValue *)args->pDepthStencil); - } else { - args->pDepthStencil = NULL; - vn_cs_decoder_set_fatal(dec); - } - vn_decode_uint32_t(dec, &args->rangeCount); - if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->rangeCount); - args->pRanges = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRanges) * iter_count); - if (!args->pRanges) return; - for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkImageSubresourceRange_temp(dec, &((VkImageSubresourceRange *)args->pRanges)[i]); - } else { - vn_decode_array_size(dec, args->rangeCount); - args->pRanges = NULL; - } + vn_decode_VkFlags(dec, &args->flags); } -static inline void vn_replace_vkCmdClearDepthStencilImage_args_handle(struct vn_command_vkCmdClearDepthStencilImage *args) +static inline void vn_replace_vkResetCommandBuffer_args_handle(struct vn_command_vkResetCommandBuffer *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkImage_handle(&args->image); - /* skip args->imageLayout */ - if (args->pDepthStencil) - vn_replace_VkClearDepthStencilValue_handle((VkClearDepthStencilValue *)args->pDepthStencil); - /* skip args->rangeCount */ - if (args->pRanges) { - for (uint32_t i = 0; i < args->rangeCount; i++) - vn_replace_VkImageSubresourceRange_handle(&((VkImageSubresourceRange *)args->pRanges)[i]); - } + /* skip args->flags */ } -static inline void vn_encode_vkCmdClearDepthStencilImage_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdClearDepthStencilImage *args) +static inline void vn_encode_vkResetCommandBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkResetCommandBuffer *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdClearDepthStencilImage_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkResetCommandBuffer_EXT}); + vn_encode_VkResult(enc, &args->ret); /* skip args->commandBuffer */ - /* skip args->image */ - /* skip args->imageLayout */ - /* skip args->pDepthStencil */ - /* skip args->rangeCount */ - /* skip args->pRanges */ + /* skip args->flags */ } -static inline void vn_decode_vkCmdClearAttachments_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdClearAttachments *args) +static inline void vn_decode_vkCmdBindPipeline_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBindPipeline *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_uint32_t(dec, &args->attachmentCount); - if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->attachmentCount); - args->pAttachments = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pAttachments) * iter_count); - if (!args->pAttachments) return; - for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkClearAttachment_temp(dec, &((VkClearAttachment *)args->pAttachments)[i]); - } else { - vn_decode_array_size(dec, args->attachmentCount); - args->pAttachments = NULL; - } - vn_decode_uint32_t(dec, &args->rectCount); + vn_decode_VkPipelineBindPoint(dec, &args->pipelineBindPoint); + vn_decode_VkPipeline_lookup(dec, &args->pipeline); +} + +static inline void vn_replace_vkCmdBindPipeline_args_handle(struct vn_command_vkCmdBindPipeline *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->pipelineBindPoint */ + vn_replace_VkPipeline_handle(&args->pipeline); +} + +static inline void vn_encode_vkCmdBindPipeline_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBindPipeline *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBindPipeline_EXT}); + + /* skip args->commandBuffer */ + /* skip args->pipelineBindPoint */ + /* skip args->pipeline */ +} + +static inline void vn_decode_vkCmdSetViewport_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetViewport *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_uint32_t(dec, &args->firstViewport); + vn_decode_uint32_t(dec, &args->viewportCount); if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->rectCount); - args->pRects = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRects) * iter_count); - if (!args->pRects) return; + const uint32_t iter_count = vn_decode_array_size(dec, args->viewportCount); + args->pViewports = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pViewports) * iter_count); + if (!args->pViewports) return; for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkClearRect_temp(dec, &((VkClearRect *)args->pRects)[i]); + vn_decode_VkViewport_temp(dec, &((VkViewport *)args->pViewports)[i]); } else { - vn_decode_array_size(dec, args->rectCount); - args->pRects = NULL; + vn_decode_array_size(dec, args->viewportCount); + args->pViewports = NULL; } } -static inline void vn_replace_vkCmdClearAttachments_args_handle(struct vn_command_vkCmdClearAttachments *args) +static inline void vn_replace_vkCmdSetViewport_args_handle(struct vn_command_vkCmdSetViewport *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->attachmentCount */ - if (args->pAttachments) { - for (uint32_t i = 0; i < args->attachmentCount; i++) - vn_replace_VkClearAttachment_handle(&((VkClearAttachment *)args->pAttachments)[i]); - } - /* skip args->rectCount */ - if (args->pRects) { - for (uint32_t i = 0; i < args->rectCount; i++) - vn_replace_VkClearRect_handle(&((VkClearRect *)args->pRects)[i]); + /* skip args->firstViewport */ + /* skip args->viewportCount */ + if (args->pViewports) { + for (uint32_t i = 0; i < args->viewportCount; i++) + vn_replace_VkViewport_handle(&((VkViewport *)args->pViewports)[i]); } } -static inline void vn_encode_vkCmdClearAttachments_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdClearAttachments *args) +static inline void vn_encode_vkCmdSetViewport_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetViewport *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdClearAttachments_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetViewport_EXT}); /* skip args->commandBuffer */ - /* skip args->attachmentCount */ - /* skip args->pAttachments */ - /* skip args->rectCount */ - /* skip args->pRects */ + /* skip args->firstViewport */ + /* skip args->viewportCount */ + /* skip args->pViewports */ } -static inline void vn_decode_vkCmdResolveImage_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdResolveImage *args) +static inline void vn_decode_vkCmdSetScissor_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetScissor *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkImage_lookup(dec, &args->srcImage); - vn_decode_VkImageLayout(dec, &args->srcImageLayout); - vn_decode_VkImage_lookup(dec, &args->dstImage); - vn_decode_VkImageLayout(dec, &args->dstImageLayout); - vn_decode_uint32_t(dec, &args->regionCount); + vn_decode_uint32_t(dec, &args->firstScissor); + vn_decode_uint32_t(dec, &args->scissorCount); if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->regionCount); - args->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRegions) * iter_count); - if (!args->pRegions) return; + const uint32_t iter_count = vn_decode_array_size(dec, args->scissorCount); + args->pScissors = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pScissors) * iter_count); + if (!args->pScissors) return; for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkImageResolve_temp(dec, &((VkImageResolve *)args->pRegions)[i]); + vn_decode_VkRect2D_temp(dec, &((VkRect2D *)args->pScissors)[i]); } else { - vn_decode_array_size(dec, args->regionCount); - args->pRegions = NULL; + vn_decode_array_size(dec, args->scissorCount); + args->pScissors = NULL; } } -static inline void vn_replace_vkCmdResolveImage_args_handle(struct vn_command_vkCmdResolveImage *args) +static inline void vn_replace_vkCmdSetScissor_args_handle(struct vn_command_vkCmdSetScissor *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkImage_handle(&args->srcImage); - /* skip args->srcImageLayout */ - vn_replace_VkImage_handle(&args->dstImage); - /* skip args->dstImageLayout */ - /* skip args->regionCount */ - if (args->pRegions) { - for (uint32_t i = 0; i < args->regionCount; i++) - vn_replace_VkImageResolve_handle(&((VkImageResolve *)args->pRegions)[i]); + /* skip args->firstScissor */ + /* skip args->scissorCount */ + if (args->pScissors) { + for (uint32_t i = 0; i < args->scissorCount; i++) + vn_replace_VkRect2D_handle(&((VkRect2D *)args->pScissors)[i]); } } -static inline void vn_encode_vkCmdResolveImage_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdResolveImage *args) +static inline void vn_encode_vkCmdSetScissor_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetScissor *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdResolveImage_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetScissor_EXT}); /* skip args->commandBuffer */ - /* skip args->srcImage */ - /* skip args->srcImageLayout */ - /* skip args->dstImage */ - /* skip args->dstImageLayout */ - /* skip args->regionCount */ - /* skip args->pRegions */ + /* skip args->firstScissor */ + /* skip args->scissorCount */ + /* skip args->pScissors */ } -static inline void vn_decode_vkCmdSetEvent_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetEvent *args) +static inline void vn_decode_vkCmdSetLineWidth_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetLineWidth *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkEvent_lookup(dec, &args->event); - vn_decode_VkFlags(dec, &args->stageMask); + vn_decode_float(dec, &args->lineWidth); } -static inline void vn_replace_vkCmdSetEvent_args_handle(struct vn_command_vkCmdSetEvent *args) +static inline void vn_replace_vkCmdSetLineWidth_args_handle(struct vn_command_vkCmdSetLineWidth *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkEvent_handle(&args->event); - /* skip args->stageMask */ + /* skip args->lineWidth */ } -static inline void vn_encode_vkCmdSetEvent_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetEvent *args) +static inline void vn_encode_vkCmdSetLineWidth_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetLineWidth *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetEvent_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetLineWidth_EXT}); /* skip args->commandBuffer */ - /* skip args->event */ - /* skip args->stageMask */ + /* skip args->lineWidth */ } -static inline void vn_decode_vkCmdResetEvent_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdResetEvent *args) +static inline void vn_decode_vkCmdSetDepthBias_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetDepthBias *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkEvent_lookup(dec, &args->event); - vn_decode_VkFlags(dec, &args->stageMask); + vn_decode_float(dec, &args->depthBiasConstantFactor); + vn_decode_float(dec, &args->depthBiasClamp); + vn_decode_float(dec, &args->depthBiasSlopeFactor); } -static inline void vn_replace_vkCmdResetEvent_args_handle(struct vn_command_vkCmdResetEvent *args) +static inline void vn_replace_vkCmdSetDepthBias_args_handle(struct vn_command_vkCmdSetDepthBias *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkEvent_handle(&args->event); - /* skip args->stageMask */ + /* skip args->depthBiasConstantFactor */ + /* skip args->depthBiasClamp */ + /* skip args->depthBiasSlopeFactor */ } -static inline void vn_encode_vkCmdResetEvent_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdResetEvent *args) +static inline void vn_encode_vkCmdSetDepthBias_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetDepthBias *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdResetEvent_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetDepthBias_EXT}); /* skip args->commandBuffer */ - /* skip args->event */ - /* skip args->stageMask */ + /* skip args->depthBiasConstantFactor */ + /* skip args->depthBiasClamp */ + /* skip args->depthBiasSlopeFactor */ } -static inline void vn_decode_vkCmdWaitEvents_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdWaitEvents *args) +static inline void vn_decode_vkCmdSetBlendConstants_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetBlendConstants *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_uint32_t(dec, &args->eventCount); - if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->eventCount); - args->pEvents = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pEvents) * iter_count); - if (!args->pEvents) return; - for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkEvent_lookup(dec, &((VkEvent *)args->pEvents)[i]); - } else { - vn_decode_array_size(dec, args->eventCount); - args->pEvents = NULL; - } - vn_decode_VkFlags(dec, &args->srcStageMask); - vn_decode_VkFlags(dec, &args->dstStageMask); - vn_decode_uint32_t(dec, &args->memoryBarrierCount); - if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->memoryBarrierCount); - args->pMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pMemoryBarriers) * iter_count); - if (!args->pMemoryBarriers) return; - for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkMemoryBarrier_temp(dec, &((VkMemoryBarrier *)args->pMemoryBarriers)[i]); - } else { - vn_decode_array_size(dec, args->memoryBarrierCount); - args->pMemoryBarriers = NULL; - } - vn_decode_uint32_t(dec, &args->bufferMemoryBarrierCount); - if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->bufferMemoryBarrierCount); - args->pBufferMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBufferMemoryBarriers) * iter_count); - if (!args->pBufferMemoryBarriers) return; - for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkBufferMemoryBarrier_temp(dec, &((VkBufferMemoryBarrier *)args->pBufferMemoryBarriers)[i]); - } else { - vn_decode_array_size(dec, args->bufferMemoryBarrierCount); - args->pBufferMemoryBarriers = NULL; - } - vn_decode_uint32_t(dec, &args->imageMemoryBarrierCount); - if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->imageMemoryBarrierCount); - args->pImageMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pImageMemoryBarriers) * iter_count); - if (!args->pImageMemoryBarriers) return; - for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkImageMemoryBarrier_temp(dec, &((VkImageMemoryBarrier *)args->pImageMemoryBarriers)[i]); - } else { - vn_decode_array_size(dec, args->imageMemoryBarrierCount); - args->pImageMemoryBarriers = NULL; + { + const size_t array_size = vn_decode_array_size(dec, 4); + vn_decode_float_array(dec, (float *)args->blendConstants, array_size); } } -static inline void vn_replace_vkCmdWaitEvents_args_handle(struct vn_command_vkCmdWaitEvents *args) +static inline void vn_replace_vkCmdSetBlendConstants_args_handle(struct vn_command_vkCmdSetBlendConstants *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->eventCount */ - if (args->pEvents) { - for (uint32_t i = 0; i < args->eventCount; i++) - vn_replace_VkEvent_handle(&((VkEvent *)args->pEvents)[i]); - } - /* skip args->srcStageMask */ - /* skip args->dstStageMask */ - /* skip args->memoryBarrierCount */ - if (args->pMemoryBarriers) { - for (uint32_t i = 0; i < args->memoryBarrierCount; i++) - vn_replace_VkMemoryBarrier_handle(&((VkMemoryBarrier *)args->pMemoryBarriers)[i]); - } - /* skip args->bufferMemoryBarrierCount */ - if (args->pBufferMemoryBarriers) { - for (uint32_t i = 0; i < args->bufferMemoryBarrierCount; i++) - vn_replace_VkBufferMemoryBarrier_handle(&((VkBufferMemoryBarrier *)args->pBufferMemoryBarriers)[i]); - } - /* skip args->imageMemoryBarrierCount */ - if (args->pImageMemoryBarriers) { - for (uint32_t i = 0; i < args->imageMemoryBarrierCount; i++) - vn_replace_VkImageMemoryBarrier_handle(&((VkImageMemoryBarrier *)args->pImageMemoryBarriers)[i]); - } + /* skip args->blendConstants */ } -static inline void vn_encode_vkCmdWaitEvents_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdWaitEvents *args) +static inline void vn_encode_vkCmdSetBlendConstants_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetBlendConstants *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdWaitEvents_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetBlendConstants_EXT}); /* skip args->commandBuffer */ - /* skip args->eventCount */ - /* skip args->pEvents */ - /* skip args->srcStageMask */ - /* skip args->dstStageMask */ - /* skip args->memoryBarrierCount */ - /* skip args->pMemoryBarriers */ - /* skip args->bufferMemoryBarrierCount */ - /* skip args->pBufferMemoryBarriers */ - /* skip args->imageMemoryBarrierCount */ - /* skip args->pImageMemoryBarriers */ + /* skip args->blendConstants */ } -static inline void vn_decode_vkCmdPipelineBarrier_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdPipelineBarrier *args) +static inline void vn_decode_vkCmdSetDepthBounds_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetDepthBounds *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkFlags(dec, &args->srcStageMask); - vn_decode_VkFlags(dec, &args->dstStageMask); - vn_decode_VkFlags(dec, &args->dependencyFlags); - vn_decode_uint32_t(dec, &args->memoryBarrierCount); - if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->memoryBarrierCount); - args->pMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pMemoryBarriers) * iter_count); - if (!args->pMemoryBarriers) return; - for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkMemoryBarrier_temp(dec, &((VkMemoryBarrier *)args->pMemoryBarriers)[i]); - } else { - vn_decode_array_size(dec, args->memoryBarrierCount); - args->pMemoryBarriers = NULL; - } - vn_decode_uint32_t(dec, &args->bufferMemoryBarrierCount); - if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->bufferMemoryBarrierCount); - args->pBufferMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBufferMemoryBarriers) * iter_count); - if (!args->pBufferMemoryBarriers) return; - for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkBufferMemoryBarrier_temp(dec, &((VkBufferMemoryBarrier *)args->pBufferMemoryBarriers)[i]); - } else { - vn_decode_array_size(dec, args->bufferMemoryBarrierCount); - args->pBufferMemoryBarriers = NULL; - } - vn_decode_uint32_t(dec, &args->imageMemoryBarrierCount); - if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->imageMemoryBarrierCount); - args->pImageMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pImageMemoryBarriers) * iter_count); - if (!args->pImageMemoryBarriers) return; - for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkImageMemoryBarrier_temp(dec, &((VkImageMemoryBarrier *)args->pImageMemoryBarriers)[i]); - } else { - vn_decode_array_size(dec, args->imageMemoryBarrierCount); - args->pImageMemoryBarriers = NULL; - } + vn_decode_float(dec, &args->minDepthBounds); + vn_decode_float(dec, &args->maxDepthBounds); } -static inline void vn_replace_vkCmdPipelineBarrier_args_handle(struct vn_command_vkCmdPipelineBarrier *args) +static inline void vn_replace_vkCmdSetDepthBounds_args_handle(struct vn_command_vkCmdSetDepthBounds *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->srcStageMask */ - /* skip args->dstStageMask */ - /* skip args->dependencyFlags */ - /* skip args->memoryBarrierCount */ - if (args->pMemoryBarriers) { - for (uint32_t i = 0; i < args->memoryBarrierCount; i++) - vn_replace_VkMemoryBarrier_handle(&((VkMemoryBarrier *)args->pMemoryBarriers)[i]); - } - /* skip args->bufferMemoryBarrierCount */ - if (args->pBufferMemoryBarriers) { - for (uint32_t i = 0; i < args->bufferMemoryBarrierCount; i++) - vn_replace_VkBufferMemoryBarrier_handle(&((VkBufferMemoryBarrier *)args->pBufferMemoryBarriers)[i]); - } - /* skip args->imageMemoryBarrierCount */ - if (args->pImageMemoryBarriers) { - for (uint32_t i = 0; i < args->imageMemoryBarrierCount; i++) - vn_replace_VkImageMemoryBarrier_handle(&((VkImageMemoryBarrier *)args->pImageMemoryBarriers)[i]); - } + /* skip args->minDepthBounds */ + /* skip args->maxDepthBounds */ } -static inline void vn_encode_vkCmdPipelineBarrier_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdPipelineBarrier *args) +static inline void vn_encode_vkCmdSetDepthBounds_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetDepthBounds *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdPipelineBarrier_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetDepthBounds_EXT}); /* skip args->commandBuffer */ - /* skip args->srcStageMask */ - /* skip args->dstStageMask */ - /* skip args->dependencyFlags */ - /* skip args->memoryBarrierCount */ - /* skip args->pMemoryBarriers */ - /* skip args->bufferMemoryBarrierCount */ - /* skip args->pBufferMemoryBarriers */ - /* skip args->imageMemoryBarrierCount */ - /* skip args->pImageMemoryBarriers */ + /* skip args->minDepthBounds */ + /* skip args->maxDepthBounds */ } -static inline void vn_decode_vkCmdBeginQuery_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBeginQuery *args) +static inline void vn_decode_vkCmdSetStencilCompareMask_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetStencilCompareMask *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkQueryPool_lookup(dec, &args->queryPool); - vn_decode_uint32_t(dec, &args->query); - vn_decode_VkFlags(dec, &args->flags); + vn_decode_VkFlags(dec, &args->faceMask); + vn_decode_uint32_t(dec, &args->compareMask); } -static inline void vn_replace_vkCmdBeginQuery_args_handle(struct vn_command_vkCmdBeginQuery *args) +static inline void vn_replace_vkCmdSetStencilCompareMask_args_handle(struct vn_command_vkCmdSetStencilCompareMask *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkQueryPool_handle(&args->queryPool); - /* skip args->query */ - /* skip args->flags */ + /* skip args->faceMask */ + /* skip args->compareMask */ } -static inline void vn_encode_vkCmdBeginQuery_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBeginQuery *args) +static inline void vn_encode_vkCmdSetStencilCompareMask_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetStencilCompareMask *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBeginQuery_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetStencilCompareMask_EXT}); /* skip args->commandBuffer */ - /* skip args->queryPool */ - /* skip args->query */ - /* skip args->flags */ + /* skip args->faceMask */ + /* skip args->compareMask */ } -static inline void vn_decode_vkCmdEndQuery_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdEndQuery *args) +static inline void vn_decode_vkCmdSetStencilWriteMask_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetStencilWriteMask *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkQueryPool_lookup(dec, &args->queryPool); - vn_decode_uint32_t(dec, &args->query); + vn_decode_VkFlags(dec, &args->faceMask); + vn_decode_uint32_t(dec, &args->writeMask); } -static inline void vn_replace_vkCmdEndQuery_args_handle(struct vn_command_vkCmdEndQuery *args) +static inline void vn_replace_vkCmdSetStencilWriteMask_args_handle(struct vn_command_vkCmdSetStencilWriteMask *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkQueryPool_handle(&args->queryPool); - /* skip args->query */ + /* skip args->faceMask */ + /* skip args->writeMask */ } -static inline void vn_encode_vkCmdEndQuery_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdEndQuery *args) +static inline void vn_encode_vkCmdSetStencilWriteMask_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetStencilWriteMask *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdEndQuery_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetStencilWriteMask_EXT}); /* skip args->commandBuffer */ - /* skip args->queryPool */ - /* skip args->query */ + /* skip args->faceMask */ + /* skip args->writeMask */ } -static inline void vn_decode_vkCmdResetQueryPool_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdResetQueryPool *args) +static inline void vn_decode_vkCmdSetStencilReference_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetStencilReference *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkQueryPool_lookup(dec, &args->queryPool); - vn_decode_uint32_t(dec, &args->firstQuery); - vn_decode_uint32_t(dec, &args->queryCount); + vn_decode_VkFlags(dec, &args->faceMask); + vn_decode_uint32_t(dec, &args->reference); } -static inline void vn_replace_vkCmdResetQueryPool_args_handle(struct vn_command_vkCmdResetQueryPool *args) +static inline void vn_replace_vkCmdSetStencilReference_args_handle(struct vn_command_vkCmdSetStencilReference *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkQueryPool_handle(&args->queryPool); - /* skip args->firstQuery */ - /* skip args->queryCount */ + /* skip args->faceMask */ + /* skip args->reference */ } -static inline void vn_encode_vkCmdResetQueryPool_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdResetQueryPool *args) +static inline void vn_encode_vkCmdSetStencilReference_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetStencilReference *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdResetQueryPool_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetStencilReference_EXT}); /* skip args->commandBuffer */ - /* skip args->queryPool */ - /* skip args->firstQuery */ - /* skip args->queryCount */ + /* skip args->faceMask */ + /* skip args->reference */ } -static inline void vn_decode_vkCmdWriteTimestamp_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdWriteTimestamp *args) +static inline void vn_decode_vkCmdBindDescriptorSets_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBindDescriptorSets *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkPipelineStageFlagBits(dec, &args->pipelineStage); - vn_decode_VkQueryPool_lookup(dec, &args->queryPool); - vn_decode_uint32_t(dec, &args->query); + vn_decode_VkPipelineBindPoint(dec, &args->pipelineBindPoint); + vn_decode_VkPipelineLayout_lookup(dec, &args->layout); + vn_decode_uint32_t(dec, &args->firstSet); + vn_decode_uint32_t(dec, &args->descriptorSetCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->descriptorSetCount); + args->pDescriptorSets = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pDescriptorSets) * iter_count); + if (!args->pDescriptorSets) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkDescriptorSet_lookup(dec, &((VkDescriptorSet *)args->pDescriptorSets)[i]); + } else { + vn_decode_array_size(dec, args->descriptorSetCount); + args->pDescriptorSets = NULL; + } + vn_decode_uint32_t(dec, &args->dynamicOffsetCount); + if (vn_peek_array_size(dec)) { + const size_t array_size = vn_decode_array_size(dec, args->dynamicOffsetCount); + args->pDynamicOffsets = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pDynamicOffsets) * array_size); + if (!args->pDynamicOffsets) return; + vn_decode_uint32_t_array(dec, (uint32_t *)args->pDynamicOffsets, array_size); + } else { + vn_decode_array_size(dec, args->dynamicOffsetCount); + args->pDynamicOffsets = NULL; + } } -static inline void vn_replace_vkCmdWriteTimestamp_args_handle(struct vn_command_vkCmdWriteTimestamp *args) +static inline void vn_replace_vkCmdBindDescriptorSets_args_handle(struct vn_command_vkCmdBindDescriptorSets *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->pipelineStage */ - vn_replace_VkQueryPool_handle(&args->queryPool); - /* skip args->query */ + /* skip args->pipelineBindPoint */ + vn_replace_VkPipelineLayout_handle(&args->layout); + /* skip args->firstSet */ + /* skip args->descriptorSetCount */ + if (args->pDescriptorSets) { + for (uint32_t i = 0; i < args->descriptorSetCount; i++) + vn_replace_VkDescriptorSet_handle(&((VkDescriptorSet *)args->pDescriptorSets)[i]); + } + /* skip args->dynamicOffsetCount */ + /* skip args->pDynamicOffsets */ } -static inline void vn_encode_vkCmdWriteTimestamp_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdWriteTimestamp *args) +static inline void vn_encode_vkCmdBindDescriptorSets_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBindDescriptorSets *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdWriteTimestamp_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBindDescriptorSets_EXT}); /* skip args->commandBuffer */ - /* skip args->pipelineStage */ - /* skip args->queryPool */ - /* skip args->query */ + /* skip args->pipelineBindPoint */ + /* skip args->layout */ + /* skip args->firstSet */ + /* skip args->descriptorSetCount */ + /* skip args->pDescriptorSets */ + /* skip args->dynamicOffsetCount */ + /* skip args->pDynamicOffsets */ } -static inline void vn_decode_vkCmdCopyQueryPoolResults_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdCopyQueryPoolResults *args) +static inline void vn_decode_vkCmdBindIndexBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBindIndexBuffer *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkQueryPool_lookup(dec, &args->queryPool); - vn_decode_uint32_t(dec, &args->firstQuery); - vn_decode_uint32_t(dec, &args->queryCount); - vn_decode_VkBuffer_lookup(dec, &args->dstBuffer); - vn_decode_VkDeviceSize(dec, &args->dstOffset); - vn_decode_VkDeviceSize(dec, &args->stride); - vn_decode_VkFlags(dec, &args->flags); + vn_decode_VkBuffer_lookup(dec, &args->buffer); + vn_decode_VkDeviceSize(dec, &args->offset); + vn_decode_VkIndexType(dec, &args->indexType); } -static inline void vn_replace_vkCmdCopyQueryPoolResults_args_handle(struct vn_command_vkCmdCopyQueryPoolResults *args) +static inline void vn_replace_vkCmdBindIndexBuffer_args_handle(struct vn_command_vkCmdBindIndexBuffer *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkQueryPool_handle(&args->queryPool); - /* skip args->firstQuery */ - /* skip args->queryCount */ - vn_replace_VkBuffer_handle(&args->dstBuffer); - /* skip args->dstOffset */ - /* skip args->stride */ - /* skip args->flags */ + vn_replace_VkBuffer_handle(&args->buffer); + /* skip args->offset */ + /* skip args->indexType */ } -static inline void vn_encode_vkCmdCopyQueryPoolResults_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdCopyQueryPoolResults *args) +static inline void vn_encode_vkCmdBindIndexBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBindIndexBuffer *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdCopyQueryPoolResults_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBindIndexBuffer_EXT}); /* skip args->commandBuffer */ - /* skip args->queryPool */ - /* skip args->firstQuery */ - /* skip args->queryCount */ - /* skip args->dstBuffer */ - /* skip args->dstOffset */ - /* skip args->stride */ - /* skip args->flags */ + /* skip args->buffer */ + /* skip args->offset */ + /* skip args->indexType */ } -static inline void vn_decode_vkCmdPushConstants_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdPushConstants *args) +static inline void vn_decode_vkCmdBindVertexBuffers_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBindVertexBuffers *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkPipelineLayout_lookup(dec, &args->layout); - vn_decode_VkFlags(dec, &args->stageFlags); - vn_decode_uint32_t(dec, &args->offset); - vn_decode_uint32_t(dec, &args->size); + vn_decode_uint32_t(dec, &args->firstBinding); + vn_decode_uint32_t(dec, &args->bindingCount); if (vn_peek_array_size(dec)) { - const size_t array_size = vn_decode_array_size(dec, args->size); - args->pValues = vn_cs_decoder_alloc_temp(dec, array_size); - if (!args->pValues) return; - vn_decode_blob_array(dec, (void *)args->pValues, array_size); + const uint32_t iter_count = vn_decode_array_size(dec, args->bindingCount); + args->pBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBuffers) * iter_count); + if (!args->pBuffers) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkBuffer_lookup(dec, &((VkBuffer *)args->pBuffers)[i]); } else { - vn_decode_array_size(dec, args->size); - args->pValues = NULL; + vn_decode_array_size(dec, args->bindingCount); + args->pBuffers = NULL; } -} - -static inline void vn_replace_vkCmdPushConstants_args_handle(struct vn_command_vkCmdPushConstants *args) -{ - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkPipelineLayout_handle(&args->layout); - /* skip args->stageFlags */ - /* skip args->offset */ - /* skip args->size */ - /* skip args->pValues */ -} - -static inline void vn_encode_vkCmdPushConstants_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdPushConstants *args) -{ - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdPushConstants_EXT}); - - /* skip args->commandBuffer */ - /* skip args->layout */ - /* skip args->stageFlags */ - /* skip args->offset */ - /* skip args->size */ - /* skip args->pValues */ -} - -static inline void vn_decode_vkCmdBeginRenderPass_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBeginRenderPass *args) -{ - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - if (vn_decode_simple_pointer(dec)) { - args->pRenderPassBegin = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRenderPassBegin)); - if (!args->pRenderPassBegin) return; - vn_decode_VkRenderPassBeginInfo_temp(dec, (VkRenderPassBeginInfo *)args->pRenderPassBegin); + if (vn_peek_array_size(dec)) { + const size_t array_size = vn_decode_array_size(dec, args->bindingCount); + args->pOffsets = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pOffsets) * array_size); + if (!args->pOffsets) return; + vn_decode_VkDeviceSize_array(dec, (VkDeviceSize *)args->pOffsets, array_size); } else { - args->pRenderPassBegin = NULL; - vn_cs_decoder_set_fatal(dec); + vn_decode_array_size(dec, args->bindingCount); + args->pOffsets = NULL; } - vn_decode_VkSubpassContents(dec, &args->contents); } -static inline void vn_replace_vkCmdBeginRenderPass_args_handle(struct vn_command_vkCmdBeginRenderPass *args) +static inline void vn_replace_vkCmdBindVertexBuffers_args_handle(struct vn_command_vkCmdBindVertexBuffers *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - if (args->pRenderPassBegin) - vn_replace_VkRenderPassBeginInfo_handle((VkRenderPassBeginInfo *)args->pRenderPassBegin); - /* skip args->contents */ + /* skip args->firstBinding */ + /* skip args->bindingCount */ + if (args->pBuffers) { + for (uint32_t i = 0; i < args->bindingCount; i++) + vn_replace_VkBuffer_handle(&((VkBuffer *)args->pBuffers)[i]); + } + /* skip args->pOffsets */ } -static inline void vn_encode_vkCmdBeginRenderPass_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBeginRenderPass *args) +static inline void vn_encode_vkCmdBindVertexBuffers_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBindVertexBuffers *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBeginRenderPass_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBindVertexBuffers_EXT}); /* skip args->commandBuffer */ - /* skip args->pRenderPassBegin */ - /* skip args->contents */ + /* skip args->firstBinding */ + /* skip args->bindingCount */ + /* skip args->pBuffers */ + /* skip args->pOffsets */ } -static inline void vn_decode_vkCmdNextSubpass_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdNextSubpass *args) +static inline void vn_decode_vkCmdDraw_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDraw *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkSubpassContents(dec, &args->contents); + vn_decode_uint32_t(dec, &args->vertexCount); + vn_decode_uint32_t(dec, &args->instanceCount); + vn_decode_uint32_t(dec, &args->firstVertex); + vn_decode_uint32_t(dec, &args->firstInstance); } -static inline void vn_replace_vkCmdNextSubpass_args_handle(struct vn_command_vkCmdNextSubpass *args) +static inline void vn_replace_vkCmdDraw_args_handle(struct vn_command_vkCmdDraw *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->contents */ + /* skip args->vertexCount */ + /* skip args->instanceCount */ + /* skip args->firstVertex */ + /* skip args->firstInstance */ } -static inline void vn_encode_vkCmdNextSubpass_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdNextSubpass *args) +static inline void vn_encode_vkCmdDraw_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDraw *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdNextSubpass_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDraw_EXT}); /* skip args->commandBuffer */ - /* skip args->contents */ + /* skip args->vertexCount */ + /* skip args->instanceCount */ + /* skip args->firstVertex */ + /* skip args->firstInstance */ } -static inline void vn_decode_vkCmdEndRenderPass_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdEndRenderPass *args) +static inline void vn_decode_vkCmdDrawIndexed_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDrawIndexed *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_uint32_t(dec, &args->indexCount); + vn_decode_uint32_t(dec, &args->instanceCount); + vn_decode_uint32_t(dec, &args->firstIndex); + vn_decode_int32_t(dec, &args->vertexOffset); + vn_decode_uint32_t(dec, &args->firstInstance); } -static inline void vn_replace_vkCmdEndRenderPass_args_handle(struct vn_command_vkCmdEndRenderPass *args) +static inline void vn_replace_vkCmdDrawIndexed_args_handle(struct vn_command_vkCmdDrawIndexed *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->indexCount */ + /* skip args->instanceCount */ + /* skip args->firstIndex */ + /* skip args->vertexOffset */ + /* skip args->firstInstance */ } -static inline void vn_encode_vkCmdEndRenderPass_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdEndRenderPass *args) +static inline void vn_encode_vkCmdDrawIndexed_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDrawIndexed *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdEndRenderPass_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDrawIndexed_EXT}); /* skip args->commandBuffer */ + /* skip args->indexCount */ + /* skip args->instanceCount */ + /* skip args->firstIndex */ + /* skip args->vertexOffset */ + /* skip args->firstInstance */ } -static inline void vn_decode_vkCmdExecuteCommands_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdExecuteCommands *args) +static inline void vn_decode_vkCmdDrawIndirect_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDrawIndirect *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_uint32_t(dec, &args->commandBufferCount); - if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->commandBufferCount); - args->pCommandBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCommandBuffers) * iter_count); - if (!args->pCommandBuffers) return; - for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkCommandBuffer_lookup(dec, &((VkCommandBuffer *)args->pCommandBuffers)[i]); - } else { - vn_decode_array_size(dec, args->commandBufferCount); - args->pCommandBuffers = NULL; - } + vn_decode_VkBuffer_lookup(dec, &args->buffer); + vn_decode_VkDeviceSize(dec, &args->offset); + vn_decode_uint32_t(dec, &args->drawCount); + vn_decode_uint32_t(dec, &args->stride); } -static inline void vn_replace_vkCmdExecuteCommands_args_handle(struct vn_command_vkCmdExecuteCommands *args) +static inline void vn_replace_vkCmdDrawIndirect_args_handle(struct vn_command_vkCmdDrawIndirect *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->commandBufferCount */ - if (args->pCommandBuffers) { - for (uint32_t i = 0; i < args->commandBufferCount; i++) - vn_replace_VkCommandBuffer_handle(&((VkCommandBuffer *)args->pCommandBuffers)[i]); - } + vn_replace_VkBuffer_handle(&args->buffer); + /* skip args->offset */ + /* skip args->drawCount */ + /* skip args->stride */ } -static inline void vn_encode_vkCmdExecuteCommands_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdExecuteCommands *args) +static inline void vn_encode_vkCmdDrawIndirect_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDrawIndirect *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdExecuteCommands_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDrawIndirect_EXT}); /* skip args->commandBuffer */ - /* skip args->commandBufferCount */ - /* skip args->pCommandBuffers */ + /* skip args->buffer */ + /* skip args->offset */ + /* skip args->drawCount */ + /* skip args->stride */ } -static inline void vn_decode_vkCmdSetDeviceMask_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetDeviceMask *args) +static inline void vn_decode_vkCmdDrawIndexedIndirect_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDrawIndexedIndirect *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_uint32_t(dec, &args->deviceMask); + vn_decode_VkBuffer_lookup(dec, &args->buffer); + vn_decode_VkDeviceSize(dec, &args->offset); + vn_decode_uint32_t(dec, &args->drawCount); + vn_decode_uint32_t(dec, &args->stride); } -static inline void vn_replace_vkCmdSetDeviceMask_args_handle(struct vn_command_vkCmdSetDeviceMask *args) +static inline void vn_replace_vkCmdDrawIndexedIndirect_args_handle(struct vn_command_vkCmdDrawIndexedIndirect *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->deviceMask */ + vn_replace_VkBuffer_handle(&args->buffer); + /* skip args->offset */ + /* skip args->drawCount */ + /* skip args->stride */ } -static inline void vn_encode_vkCmdSetDeviceMask_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetDeviceMask *args) +static inline void vn_encode_vkCmdDrawIndexedIndirect_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDrawIndexedIndirect *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetDeviceMask_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDrawIndexedIndirect_EXT}); /* skip args->commandBuffer */ - /* skip args->deviceMask */ + /* skip args->buffer */ + /* skip args->offset */ + /* skip args->drawCount */ + /* skip args->stride */ } -static inline void vn_decode_vkCmdDispatchBase_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDispatchBase *args) +static inline void vn_decode_vkCmdDispatch_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDispatch *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_uint32_t(dec, &args->baseGroupX); - vn_decode_uint32_t(dec, &args->baseGroupY); - vn_decode_uint32_t(dec, &args->baseGroupZ); vn_decode_uint32_t(dec, &args->groupCountX); vn_decode_uint32_t(dec, &args->groupCountY); vn_decode_uint32_t(dec, &args->groupCountZ); } -static inline void vn_replace_vkCmdDispatchBase_args_handle(struct vn_command_vkCmdDispatchBase *args) +static inline void vn_replace_vkCmdDispatch_args_handle(struct vn_command_vkCmdDispatch *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->baseGroupX */ - /* skip args->baseGroupY */ - /* skip args->baseGroupZ */ /* skip args->groupCountX */ /* skip args->groupCountY */ /* skip args->groupCountZ */ } -static inline void vn_encode_vkCmdDispatchBase_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDispatchBase *args) +static inline void vn_encode_vkCmdDispatch_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDispatch *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDispatchBase_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDispatch_EXT}); /* skip args->commandBuffer */ - /* skip args->baseGroupX */ - /* skip args->baseGroupY */ - /* skip args->baseGroupZ */ /* skip args->groupCountX */ /* skip args->groupCountY */ /* skip args->groupCountZ */ } -static inline void vn_decode_vkCmdBeginRenderPass2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBeginRenderPass2 *args) +static inline void vn_decode_vkCmdDispatchIndirect_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDispatchIndirect *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - if (vn_decode_simple_pointer(dec)) { - args->pRenderPassBegin = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRenderPassBegin)); - if (!args->pRenderPassBegin) return; - vn_decode_VkRenderPassBeginInfo_temp(dec, (VkRenderPassBeginInfo *)args->pRenderPassBegin); - } else { - args->pRenderPassBegin = NULL; - vn_cs_decoder_set_fatal(dec); - } - if (vn_decode_simple_pointer(dec)) { - args->pSubpassBeginInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSubpassBeginInfo)); - if (!args->pSubpassBeginInfo) return; - vn_decode_VkSubpassBeginInfo_temp(dec, (VkSubpassBeginInfo *)args->pSubpassBeginInfo); - } else { - args->pSubpassBeginInfo = NULL; - vn_cs_decoder_set_fatal(dec); - } + vn_decode_VkBuffer_lookup(dec, &args->buffer); + vn_decode_VkDeviceSize(dec, &args->offset); } -static inline void vn_replace_vkCmdBeginRenderPass2_args_handle(struct vn_command_vkCmdBeginRenderPass2 *args) +static inline void vn_replace_vkCmdDispatchIndirect_args_handle(struct vn_command_vkCmdDispatchIndirect *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - if (args->pRenderPassBegin) - vn_replace_VkRenderPassBeginInfo_handle((VkRenderPassBeginInfo *)args->pRenderPassBegin); - if (args->pSubpassBeginInfo) - vn_replace_VkSubpassBeginInfo_handle((VkSubpassBeginInfo *)args->pSubpassBeginInfo); + vn_replace_VkBuffer_handle(&args->buffer); + /* skip args->offset */ } -static inline void vn_encode_vkCmdBeginRenderPass2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBeginRenderPass2 *args) +static inline void vn_encode_vkCmdDispatchIndirect_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDispatchIndirect *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBeginRenderPass2_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDispatchIndirect_EXT}); /* skip args->commandBuffer */ - /* skip args->pRenderPassBegin */ - /* skip args->pSubpassBeginInfo */ + /* skip args->buffer */ + /* skip args->offset */ } -static inline void vn_decode_vkCmdNextSubpass2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdNextSubpass2 *args) +static inline void vn_decode_vkCmdCopyBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdCopyBuffer *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - if (vn_decode_simple_pointer(dec)) { - args->pSubpassBeginInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSubpassBeginInfo)); - if (!args->pSubpassBeginInfo) return; - vn_decode_VkSubpassBeginInfo_temp(dec, (VkSubpassBeginInfo *)args->pSubpassBeginInfo); - } else { - args->pSubpassBeginInfo = NULL; - vn_cs_decoder_set_fatal(dec); - } - if (vn_decode_simple_pointer(dec)) { - args->pSubpassEndInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSubpassEndInfo)); - if (!args->pSubpassEndInfo) return; - vn_decode_VkSubpassEndInfo_temp(dec, (VkSubpassEndInfo *)args->pSubpassEndInfo); + vn_decode_VkBuffer_lookup(dec, &args->srcBuffer); + vn_decode_VkBuffer_lookup(dec, &args->dstBuffer); + vn_decode_uint32_t(dec, &args->regionCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->regionCount); + args->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRegions) * iter_count); + if (!args->pRegions) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkBufferCopy_temp(dec, &((VkBufferCopy *)args->pRegions)[i]); } else { - args->pSubpassEndInfo = NULL; - vn_cs_decoder_set_fatal(dec); + vn_decode_array_size(dec, args->regionCount); + args->pRegions = NULL; } } -static inline void vn_replace_vkCmdNextSubpass2_args_handle(struct vn_command_vkCmdNextSubpass2 *args) +static inline void vn_replace_vkCmdCopyBuffer_args_handle(struct vn_command_vkCmdCopyBuffer *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - if (args->pSubpassBeginInfo) - vn_replace_VkSubpassBeginInfo_handle((VkSubpassBeginInfo *)args->pSubpassBeginInfo); - if (args->pSubpassEndInfo) - vn_replace_VkSubpassEndInfo_handle((VkSubpassEndInfo *)args->pSubpassEndInfo); + vn_replace_VkBuffer_handle(&args->srcBuffer); + vn_replace_VkBuffer_handle(&args->dstBuffer); + /* skip args->regionCount */ + if (args->pRegions) { + for (uint32_t i = 0; i < args->regionCount; i++) + vn_replace_VkBufferCopy_handle(&((VkBufferCopy *)args->pRegions)[i]); + } } -static inline void vn_encode_vkCmdNextSubpass2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdNextSubpass2 *args) +static inline void vn_encode_vkCmdCopyBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdCopyBuffer *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdNextSubpass2_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdCopyBuffer_EXT}); /* skip args->commandBuffer */ - /* skip args->pSubpassBeginInfo */ - /* skip args->pSubpassEndInfo */ + /* skip args->srcBuffer */ + /* skip args->dstBuffer */ + /* skip args->regionCount */ + /* skip args->pRegions */ } -static inline void vn_decode_vkCmdEndRenderPass2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdEndRenderPass2 *args) +static inline void vn_decode_vkCmdCopyImage_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdCopyImage *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - if (vn_decode_simple_pointer(dec)) { - args->pSubpassEndInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSubpassEndInfo)); - if (!args->pSubpassEndInfo) return; - vn_decode_VkSubpassEndInfo_temp(dec, (VkSubpassEndInfo *)args->pSubpassEndInfo); + vn_decode_VkImage_lookup(dec, &args->srcImage); + vn_decode_VkImageLayout(dec, &args->srcImageLayout); + vn_decode_VkImage_lookup(dec, &args->dstImage); + vn_decode_VkImageLayout(dec, &args->dstImageLayout); + vn_decode_uint32_t(dec, &args->regionCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->regionCount); + args->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRegions) * iter_count); + if (!args->pRegions) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkImageCopy_temp(dec, &((VkImageCopy *)args->pRegions)[i]); } else { - args->pSubpassEndInfo = NULL; - vn_cs_decoder_set_fatal(dec); + vn_decode_array_size(dec, args->regionCount); + args->pRegions = NULL; } } -static inline void vn_replace_vkCmdEndRenderPass2_args_handle(struct vn_command_vkCmdEndRenderPass2 *args) +static inline void vn_replace_vkCmdCopyImage_args_handle(struct vn_command_vkCmdCopyImage *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - if (args->pSubpassEndInfo) - vn_replace_VkSubpassEndInfo_handle((VkSubpassEndInfo *)args->pSubpassEndInfo); + vn_replace_VkImage_handle(&args->srcImage); + /* skip args->srcImageLayout */ + vn_replace_VkImage_handle(&args->dstImage); + /* skip args->dstImageLayout */ + /* skip args->regionCount */ + if (args->pRegions) { + for (uint32_t i = 0; i < args->regionCount; i++) + vn_replace_VkImageCopy_handle(&((VkImageCopy *)args->pRegions)[i]); + } } -static inline void vn_encode_vkCmdEndRenderPass2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdEndRenderPass2 *args) +static inline void vn_encode_vkCmdCopyImage_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdCopyImage *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdEndRenderPass2_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdCopyImage_EXT}); /* skip args->commandBuffer */ - /* skip args->pSubpassEndInfo */ + /* skip args->srcImage */ + /* skip args->srcImageLayout */ + /* skip args->dstImage */ + /* skip args->dstImageLayout */ + /* skip args->regionCount */ + /* skip args->pRegions */ } -static inline void vn_decode_vkCmdDrawIndirectCount_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDrawIndirectCount *args) +static inline void vn_decode_vkCmdBlitImage_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBlitImage *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkBuffer_lookup(dec, &args->buffer); - vn_decode_VkDeviceSize(dec, &args->offset); - vn_decode_VkBuffer_lookup(dec, &args->countBuffer); - vn_decode_VkDeviceSize(dec, &args->countBufferOffset); - vn_decode_uint32_t(dec, &args->maxDrawCount); - vn_decode_uint32_t(dec, &args->stride); + vn_decode_VkImage_lookup(dec, &args->srcImage); + vn_decode_VkImageLayout(dec, &args->srcImageLayout); + vn_decode_VkImage_lookup(dec, &args->dstImage); + vn_decode_VkImageLayout(dec, &args->dstImageLayout); + vn_decode_uint32_t(dec, &args->regionCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->regionCount); + args->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRegions) * iter_count); + if (!args->pRegions) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkImageBlit_temp(dec, &((VkImageBlit *)args->pRegions)[i]); + } else { + vn_decode_array_size(dec, args->regionCount); + args->pRegions = NULL; + } + vn_decode_VkFilter(dec, &args->filter); } -static inline void vn_replace_vkCmdDrawIndirectCount_args_handle(struct vn_command_vkCmdDrawIndirectCount *args) +static inline void vn_replace_vkCmdBlitImage_args_handle(struct vn_command_vkCmdBlitImage *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkBuffer_handle(&args->buffer); - /* skip args->offset */ - vn_replace_VkBuffer_handle(&args->countBuffer); - /* skip args->countBufferOffset */ - /* skip args->maxDrawCount */ - /* skip args->stride */ + vn_replace_VkImage_handle(&args->srcImage); + /* skip args->srcImageLayout */ + vn_replace_VkImage_handle(&args->dstImage); + /* skip args->dstImageLayout */ + /* skip args->regionCount */ + if (args->pRegions) { + for (uint32_t i = 0; i < args->regionCount; i++) + vn_replace_VkImageBlit_handle(&((VkImageBlit *)args->pRegions)[i]); + } + /* skip args->filter */ } -static inline void vn_encode_vkCmdDrawIndirectCount_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDrawIndirectCount *args) +static inline void vn_encode_vkCmdBlitImage_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBlitImage *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDrawIndirectCount_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBlitImage_EXT}); /* skip args->commandBuffer */ - /* skip args->buffer */ - /* skip args->offset */ - /* skip args->countBuffer */ - /* skip args->countBufferOffset */ - /* skip args->maxDrawCount */ - /* skip args->stride */ + /* skip args->srcImage */ + /* skip args->srcImageLayout */ + /* skip args->dstImage */ + /* skip args->dstImageLayout */ + /* skip args->regionCount */ + /* skip args->pRegions */ + /* skip args->filter */ } -static inline void vn_decode_vkCmdDrawIndexedIndirectCount_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDrawIndexedIndirectCount *args) +static inline void vn_decode_vkCmdCopyBufferToImage_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdCopyBufferToImage *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkBuffer_lookup(dec, &args->buffer); - vn_decode_VkDeviceSize(dec, &args->offset); - vn_decode_VkBuffer_lookup(dec, &args->countBuffer); - vn_decode_VkDeviceSize(dec, &args->countBufferOffset); - vn_decode_uint32_t(dec, &args->maxDrawCount); - vn_decode_uint32_t(dec, &args->stride); + vn_decode_VkBuffer_lookup(dec, &args->srcBuffer); + vn_decode_VkImage_lookup(dec, &args->dstImage); + vn_decode_VkImageLayout(dec, &args->dstImageLayout); + vn_decode_uint32_t(dec, &args->regionCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->regionCount); + args->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRegions) * iter_count); + if (!args->pRegions) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkBufferImageCopy_temp(dec, &((VkBufferImageCopy *)args->pRegions)[i]); + } else { + vn_decode_array_size(dec, args->regionCount); + args->pRegions = NULL; + } } -static inline void vn_replace_vkCmdDrawIndexedIndirectCount_args_handle(struct vn_command_vkCmdDrawIndexedIndirectCount *args) +static inline void vn_replace_vkCmdCopyBufferToImage_args_handle(struct vn_command_vkCmdCopyBufferToImage *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkBuffer_handle(&args->buffer); - /* skip args->offset */ - vn_replace_VkBuffer_handle(&args->countBuffer); - /* skip args->countBufferOffset */ - /* skip args->maxDrawCount */ - /* skip args->stride */ + vn_replace_VkBuffer_handle(&args->srcBuffer); + vn_replace_VkImage_handle(&args->dstImage); + /* skip args->dstImageLayout */ + /* skip args->regionCount */ + if (args->pRegions) { + for (uint32_t i = 0; i < args->regionCount; i++) + vn_replace_VkBufferImageCopy_handle(&((VkBufferImageCopy *)args->pRegions)[i]); + } } -static inline void vn_encode_vkCmdDrawIndexedIndirectCount_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDrawIndexedIndirectCount *args) +static inline void vn_encode_vkCmdCopyBufferToImage_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdCopyBufferToImage *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDrawIndexedIndirectCount_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdCopyBufferToImage_EXT}); /* skip args->commandBuffer */ - /* skip args->buffer */ - /* skip args->offset */ - /* skip args->countBuffer */ - /* skip args->countBufferOffset */ - /* skip args->maxDrawCount */ - /* skip args->stride */ + /* skip args->srcBuffer */ + /* skip args->dstImage */ + /* skip args->dstImageLayout */ + /* skip args->regionCount */ + /* skip args->pRegions */ } -static inline void vn_decode_vkCmdBindTransformFeedbackBuffersEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBindTransformFeedbackBuffersEXT *args) +static inline void vn_decode_vkCmdCopyImageToBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdCopyImageToBuffer *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_uint32_t(dec, &args->firstBinding); - vn_decode_uint32_t(dec, &args->bindingCount); + vn_decode_VkImage_lookup(dec, &args->srcImage); + vn_decode_VkImageLayout(dec, &args->srcImageLayout); + vn_decode_VkBuffer_lookup(dec, &args->dstBuffer); + vn_decode_uint32_t(dec, &args->regionCount); if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->bindingCount); - args->pBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBuffers) * iter_count); - if (!args->pBuffers) return; + const uint32_t iter_count = vn_decode_array_size(dec, args->regionCount); + args->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRegions) * iter_count); + if (!args->pRegions) return; for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkBuffer_lookup(dec, &((VkBuffer *)args->pBuffers)[i]); - } else { - vn_decode_array_size(dec, args->bindingCount); - args->pBuffers = NULL; - } - if (vn_peek_array_size(dec)) { - const size_t array_size = vn_decode_array_size(dec, args->bindingCount); - args->pOffsets = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pOffsets) * array_size); - if (!args->pOffsets) return; - vn_decode_VkDeviceSize_array(dec, (VkDeviceSize *)args->pOffsets, array_size); - } else { - vn_decode_array_size(dec, args->bindingCount); - args->pOffsets = NULL; - } - if (vn_peek_array_size(dec)) { - const size_t array_size = vn_decode_array_size(dec, args->bindingCount); - args->pSizes = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSizes) * array_size); - if (!args->pSizes) return; - vn_decode_VkDeviceSize_array(dec, (VkDeviceSize *)args->pSizes, array_size); + vn_decode_VkBufferImageCopy_temp(dec, &((VkBufferImageCopy *)args->pRegions)[i]); } else { - vn_decode_array_size_unchecked(dec); - args->pSizes = NULL; + vn_decode_array_size(dec, args->regionCount); + args->pRegions = NULL; } } -static inline void vn_replace_vkCmdBindTransformFeedbackBuffersEXT_args_handle(struct vn_command_vkCmdBindTransformFeedbackBuffersEXT *args) +static inline void vn_replace_vkCmdCopyImageToBuffer_args_handle(struct vn_command_vkCmdCopyImageToBuffer *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->firstBinding */ - /* skip args->bindingCount */ - if (args->pBuffers) { - for (uint32_t i = 0; i < args->bindingCount; i++) - vn_replace_VkBuffer_handle(&((VkBuffer *)args->pBuffers)[i]); + vn_replace_VkImage_handle(&args->srcImage); + /* skip args->srcImageLayout */ + vn_replace_VkBuffer_handle(&args->dstBuffer); + /* skip args->regionCount */ + if (args->pRegions) { + for (uint32_t i = 0; i < args->regionCount; i++) + vn_replace_VkBufferImageCopy_handle(&((VkBufferImageCopy *)args->pRegions)[i]); } - /* skip args->pOffsets */ - /* skip args->pSizes */ } -static inline void vn_encode_vkCmdBindTransformFeedbackBuffersEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBindTransformFeedbackBuffersEXT *args) +static inline void vn_encode_vkCmdCopyImageToBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdCopyImageToBuffer *args) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBindTransformFeedbackBuffersEXT_EXT}); + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdCopyImageToBuffer_EXT}); /* skip args->commandBuffer */ - /* skip args->firstBinding */ - /* skip args->bindingCount */ - /* skip args->pBuffers */ - /* skip args->pOffsets */ - /* skip args->pSizes */ + /* skip args->srcImage */ + /* skip args->srcImageLayout */ + /* skip args->dstBuffer */ + /* skip args->regionCount */ + /* skip args->pRegions */ } -static inline void vn_decode_vkCmdBeginTransformFeedbackEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBeginTransformFeedbackEXT *args) +static inline void vn_decode_vkCmdUpdateBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdUpdateBuffer *args) { vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_uint32_t(dec, &args->firstCounterBuffer); - vn_decode_uint32_t(dec, &args->counterBufferCount); + vn_decode_VkBuffer_lookup(dec, &args->dstBuffer); + vn_decode_VkDeviceSize(dec, &args->dstOffset); + vn_decode_VkDeviceSize(dec, &args->dataSize); if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->counterBufferCount); - args->pCounterBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCounterBuffers) * iter_count); - if (!args->pCounterBuffers) return; + const size_t array_size = vn_decode_array_size(dec, args->dataSize); + args->pData = vn_cs_decoder_alloc_temp(dec, array_size); + if (!args->pData) return; + vn_decode_blob_array(dec, (void *)args->pData, array_size); + } else { + vn_decode_array_size(dec, args->dataSize); + args->pData = NULL; + } +} + +static inline void vn_replace_vkCmdUpdateBuffer_args_handle(struct vn_command_vkCmdUpdateBuffer *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + vn_replace_VkBuffer_handle(&args->dstBuffer); + /* skip args->dstOffset */ + /* skip args->dataSize */ + /* skip args->pData */ +} + +static inline void vn_encode_vkCmdUpdateBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdUpdateBuffer *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdUpdateBuffer_EXT}); + + /* skip args->commandBuffer */ + /* skip args->dstBuffer */ + /* skip args->dstOffset */ + /* skip args->dataSize */ + /* skip args->pData */ +} + +static inline void vn_decode_vkCmdFillBuffer_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdFillBuffer *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkBuffer_lookup(dec, &args->dstBuffer); + vn_decode_VkDeviceSize(dec, &args->dstOffset); + vn_decode_VkDeviceSize(dec, &args->size); + vn_decode_uint32_t(dec, &args->data); +} + +static inline void vn_replace_vkCmdFillBuffer_args_handle(struct vn_command_vkCmdFillBuffer *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + vn_replace_VkBuffer_handle(&args->dstBuffer); + /* skip args->dstOffset */ + /* skip args->size */ + /* skip args->data */ +} + +static inline void vn_encode_vkCmdFillBuffer_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdFillBuffer *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdFillBuffer_EXT}); + + /* skip args->commandBuffer */ + /* skip args->dstBuffer */ + /* skip args->dstOffset */ + /* skip args->size */ + /* skip args->data */ +} + +static inline void vn_decode_vkCmdClearColorImage_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdClearColorImage *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkImage_lookup(dec, &args->image); + vn_decode_VkImageLayout(dec, &args->imageLayout); + if (vn_decode_simple_pointer(dec)) { + args->pColor = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pColor)); + if (!args->pColor) return; + vn_decode_VkClearColorValue_temp(dec, (VkClearColorValue *)args->pColor); + } else { + args->pColor = NULL; + } + vn_decode_uint32_t(dec, &args->rangeCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->rangeCount); + args->pRanges = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRanges) * iter_count); + if (!args->pRanges) return; for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkBuffer_lookup(dec, &((VkBuffer *)args->pCounterBuffers)[i]); + vn_decode_VkImageSubresourceRange_temp(dec, &((VkImageSubresourceRange *)args->pRanges)[i]); } else { - vn_decode_array_size_unchecked(dec); - args->pCounterBuffers = NULL; + vn_decode_array_size(dec, args->rangeCount); + args->pRanges = NULL; + } +} + +static inline void vn_replace_vkCmdClearColorImage_args_handle(struct vn_command_vkCmdClearColorImage *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + vn_replace_VkImage_handle(&args->image); + /* skip args->imageLayout */ + /* skip args->pColor */ + /* skip args->rangeCount */ + if (args->pRanges) { + for (uint32_t i = 0; i < args->rangeCount; i++) + vn_replace_VkImageSubresourceRange_handle(&((VkImageSubresourceRange *)args->pRanges)[i]); + } +} + +static inline void vn_encode_vkCmdClearColorImage_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdClearColorImage *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdClearColorImage_EXT}); + + /* skip args->commandBuffer */ + /* skip args->image */ + /* skip args->imageLayout */ + /* skip args->pColor */ + /* skip args->rangeCount */ + /* skip args->pRanges */ +} + +static inline void vn_decode_vkCmdClearDepthStencilImage_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdClearDepthStencilImage *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkImage_lookup(dec, &args->image); + vn_decode_VkImageLayout(dec, &args->imageLayout); + if (vn_decode_simple_pointer(dec)) { + args->pDepthStencil = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pDepthStencil)); + if (!args->pDepthStencil) return; + vn_decode_VkClearDepthStencilValue_temp(dec, (VkClearDepthStencilValue *)args->pDepthStencil); + } else { + args->pDepthStencil = NULL; + vn_cs_decoder_set_fatal(dec); } + vn_decode_uint32_t(dec, &args->rangeCount); if (vn_peek_array_size(dec)) { - const size_t array_size = vn_decode_array_size(dec, args->counterBufferCount); - args->pCounterBufferOffsets = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCounterBufferOffsets) * array_size); - if (!args->pCounterBufferOffsets) return; - vn_decode_VkDeviceSize_array(dec, (VkDeviceSize *)args->pCounterBufferOffsets, array_size); + const uint32_t iter_count = vn_decode_array_size(dec, args->rangeCount); + args->pRanges = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRanges) * iter_count); + if (!args->pRanges) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkImageSubresourceRange_temp(dec, &((VkImageSubresourceRange *)args->pRanges)[i]); } else { - vn_decode_array_size_unchecked(dec); - args->pCounterBufferOffsets = NULL; + vn_decode_array_size(dec, args->rangeCount); + args->pRanges = NULL; } } -static inline void vn_replace_vkCmdBeginTransformFeedbackEXT_args_handle(struct vn_command_vkCmdBeginTransformFeedbackEXT *args) +static inline void vn_replace_vkCmdClearDepthStencilImage_args_handle(struct vn_command_vkCmdClearDepthStencilImage *args) { vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->firstCounterBuffer */ - /* skip args->counterBufferCount */ - if (args->pCounterBuffers) { - for (uint32_t i = 0; i < args->counterBufferCount; i++) - vn_replace_VkBuffer_handle(&((VkBuffer *)args->pCounterBuffers)[i]); + vn_replace_VkImage_handle(&args->image); + /* skip args->imageLayout */ + if (args->pDepthStencil) + vn_replace_VkClearDepthStencilValue_handle((VkClearDepthStencilValue *)args->pDepthStencil); + /* skip args->rangeCount */ + if (args->pRanges) { + for (uint32_t i = 0; i < args->rangeCount; i++) + vn_replace_VkImageSubresourceRange_handle(&((VkImageSubresourceRange *)args->pRanges)[i]); + } +} + +static inline void vn_encode_vkCmdClearDepthStencilImage_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdClearDepthStencilImage *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdClearDepthStencilImage_EXT}); + + /* skip args->commandBuffer */ + /* skip args->image */ + /* skip args->imageLayout */ + /* skip args->pDepthStencil */ + /* skip args->rangeCount */ + /* skip args->pRanges */ +} + +static inline void vn_decode_vkCmdClearAttachments_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdClearAttachments *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_uint32_t(dec, &args->attachmentCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->attachmentCount); + args->pAttachments = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pAttachments) * iter_count); + if (!args->pAttachments) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkClearAttachment_temp(dec, &((VkClearAttachment *)args->pAttachments)[i]); + } else { + vn_decode_array_size(dec, args->attachmentCount); + args->pAttachments = NULL; + } + vn_decode_uint32_t(dec, &args->rectCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->rectCount); + args->pRects = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRects) * iter_count); + if (!args->pRects) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkClearRect_temp(dec, &((VkClearRect *)args->pRects)[i]); + } else { + vn_decode_array_size(dec, args->rectCount); + args->pRects = NULL; + } +} + +static inline void vn_replace_vkCmdClearAttachments_args_handle(struct vn_command_vkCmdClearAttachments *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->attachmentCount */ + if (args->pAttachments) { + for (uint32_t i = 0; i < args->attachmentCount; i++) + vn_replace_VkClearAttachment_handle(&((VkClearAttachment *)args->pAttachments)[i]); + } + /* skip args->rectCount */ + if (args->pRects) { + for (uint32_t i = 0; i < args->rectCount; i++) + vn_replace_VkClearRect_handle(&((VkClearRect *)args->pRects)[i]); + } +} + +static inline void vn_encode_vkCmdClearAttachments_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdClearAttachments *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdClearAttachments_EXT}); + + /* skip args->commandBuffer */ + /* skip args->attachmentCount */ + /* skip args->pAttachments */ + /* skip args->rectCount */ + /* skip args->pRects */ +} + +static inline void vn_decode_vkCmdResolveImage_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdResolveImage *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkImage_lookup(dec, &args->srcImage); + vn_decode_VkImageLayout(dec, &args->srcImageLayout); + vn_decode_VkImage_lookup(dec, &args->dstImage); + vn_decode_VkImageLayout(dec, &args->dstImageLayout); + vn_decode_uint32_t(dec, &args->regionCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->regionCount); + args->pRegions = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRegions) * iter_count); + if (!args->pRegions) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkImageResolve_temp(dec, &((VkImageResolve *)args->pRegions)[i]); + } else { + vn_decode_array_size(dec, args->regionCount); + args->pRegions = NULL; + } +} + +static inline void vn_replace_vkCmdResolveImage_args_handle(struct vn_command_vkCmdResolveImage *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + vn_replace_VkImage_handle(&args->srcImage); + /* skip args->srcImageLayout */ + vn_replace_VkImage_handle(&args->dstImage); + /* skip args->dstImageLayout */ + /* skip args->regionCount */ + if (args->pRegions) { + for (uint32_t i = 0; i < args->regionCount; i++) + vn_replace_VkImageResolve_handle(&((VkImageResolve *)args->pRegions)[i]); + } +} + +static inline void vn_encode_vkCmdResolveImage_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdResolveImage *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdResolveImage_EXT}); + + /* skip args->commandBuffer */ + /* skip args->srcImage */ + /* skip args->srcImageLayout */ + /* skip args->dstImage */ + /* skip args->dstImageLayout */ + /* skip args->regionCount */ + /* skip args->pRegions */ +} + +static inline void vn_decode_vkCmdSetEvent_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetEvent *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkEvent_lookup(dec, &args->event); + vn_decode_VkFlags(dec, &args->stageMask); +} + +static inline void vn_replace_vkCmdSetEvent_args_handle(struct vn_command_vkCmdSetEvent *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + vn_replace_VkEvent_handle(&args->event); + /* skip args->stageMask */ +} + +static inline void vn_encode_vkCmdSetEvent_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetEvent *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetEvent_EXT}); + + /* skip args->commandBuffer */ + /* skip args->event */ + /* skip args->stageMask */ +} + +static inline void vn_decode_vkCmdResetEvent_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdResetEvent *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkEvent_lookup(dec, &args->event); + vn_decode_VkFlags(dec, &args->stageMask); +} + +static inline void vn_replace_vkCmdResetEvent_args_handle(struct vn_command_vkCmdResetEvent *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + vn_replace_VkEvent_handle(&args->event); + /* skip args->stageMask */ +} + +static inline void vn_encode_vkCmdResetEvent_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdResetEvent *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdResetEvent_EXT}); + + /* skip args->commandBuffer */ + /* skip args->event */ + /* skip args->stageMask */ +} + +static inline void vn_decode_vkCmdWaitEvents_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdWaitEvents *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_uint32_t(dec, &args->eventCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->eventCount); + args->pEvents = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pEvents) * iter_count); + if (!args->pEvents) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkEvent_lookup(dec, &((VkEvent *)args->pEvents)[i]); + } else { + vn_decode_array_size(dec, args->eventCount); + args->pEvents = NULL; + } + vn_decode_VkFlags(dec, &args->srcStageMask); + vn_decode_VkFlags(dec, &args->dstStageMask); + vn_decode_uint32_t(dec, &args->memoryBarrierCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->memoryBarrierCount); + args->pMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pMemoryBarriers) * iter_count); + if (!args->pMemoryBarriers) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkMemoryBarrier_temp(dec, &((VkMemoryBarrier *)args->pMemoryBarriers)[i]); + } else { + vn_decode_array_size(dec, args->memoryBarrierCount); + args->pMemoryBarriers = NULL; + } + vn_decode_uint32_t(dec, &args->bufferMemoryBarrierCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->bufferMemoryBarrierCount); + args->pBufferMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBufferMemoryBarriers) * iter_count); + if (!args->pBufferMemoryBarriers) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkBufferMemoryBarrier_temp(dec, &((VkBufferMemoryBarrier *)args->pBufferMemoryBarriers)[i]); + } else { + vn_decode_array_size(dec, args->bufferMemoryBarrierCount); + args->pBufferMemoryBarriers = NULL; + } + vn_decode_uint32_t(dec, &args->imageMemoryBarrierCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->imageMemoryBarrierCount); + args->pImageMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pImageMemoryBarriers) * iter_count); + if (!args->pImageMemoryBarriers) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkImageMemoryBarrier_temp(dec, &((VkImageMemoryBarrier *)args->pImageMemoryBarriers)[i]); + } else { + vn_decode_array_size(dec, args->imageMemoryBarrierCount); + args->pImageMemoryBarriers = NULL; + } +} + +static inline void vn_replace_vkCmdWaitEvents_args_handle(struct vn_command_vkCmdWaitEvents *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->eventCount */ + if (args->pEvents) { + for (uint32_t i = 0; i < args->eventCount; i++) + vn_replace_VkEvent_handle(&((VkEvent *)args->pEvents)[i]); + } + /* skip args->srcStageMask */ + /* skip args->dstStageMask */ + /* skip args->memoryBarrierCount */ + if (args->pMemoryBarriers) { + for (uint32_t i = 0; i < args->memoryBarrierCount; i++) + vn_replace_VkMemoryBarrier_handle(&((VkMemoryBarrier *)args->pMemoryBarriers)[i]); + } + /* skip args->bufferMemoryBarrierCount */ + if (args->pBufferMemoryBarriers) { + for (uint32_t i = 0; i < args->bufferMemoryBarrierCount; i++) + vn_replace_VkBufferMemoryBarrier_handle(&((VkBufferMemoryBarrier *)args->pBufferMemoryBarriers)[i]); + } + /* skip args->imageMemoryBarrierCount */ + if (args->pImageMemoryBarriers) { + for (uint32_t i = 0; i < args->imageMemoryBarrierCount; i++) + vn_replace_VkImageMemoryBarrier_handle(&((VkImageMemoryBarrier *)args->pImageMemoryBarriers)[i]); + } +} + +static inline void vn_encode_vkCmdWaitEvents_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdWaitEvents *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdWaitEvents_EXT}); + + /* skip args->commandBuffer */ + /* skip args->eventCount */ + /* skip args->pEvents */ + /* skip args->srcStageMask */ + /* skip args->dstStageMask */ + /* skip args->memoryBarrierCount */ + /* skip args->pMemoryBarriers */ + /* skip args->bufferMemoryBarrierCount */ + /* skip args->pBufferMemoryBarriers */ + /* skip args->imageMemoryBarrierCount */ + /* skip args->pImageMemoryBarriers */ +} + +static inline void vn_decode_vkCmdPipelineBarrier_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdPipelineBarrier *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkFlags(dec, &args->srcStageMask); + vn_decode_VkFlags(dec, &args->dstStageMask); + vn_decode_VkFlags(dec, &args->dependencyFlags); + vn_decode_uint32_t(dec, &args->memoryBarrierCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->memoryBarrierCount); + args->pMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pMemoryBarriers) * iter_count); + if (!args->pMemoryBarriers) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkMemoryBarrier_temp(dec, &((VkMemoryBarrier *)args->pMemoryBarriers)[i]); + } else { + vn_decode_array_size(dec, args->memoryBarrierCount); + args->pMemoryBarriers = NULL; + } + vn_decode_uint32_t(dec, &args->bufferMemoryBarrierCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->bufferMemoryBarrierCount); + args->pBufferMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBufferMemoryBarriers) * iter_count); + if (!args->pBufferMemoryBarriers) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkBufferMemoryBarrier_temp(dec, &((VkBufferMemoryBarrier *)args->pBufferMemoryBarriers)[i]); + } else { + vn_decode_array_size(dec, args->bufferMemoryBarrierCount); + args->pBufferMemoryBarriers = NULL; + } + vn_decode_uint32_t(dec, &args->imageMemoryBarrierCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->imageMemoryBarrierCount); + args->pImageMemoryBarriers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pImageMemoryBarriers) * iter_count); + if (!args->pImageMemoryBarriers) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkImageMemoryBarrier_temp(dec, &((VkImageMemoryBarrier *)args->pImageMemoryBarriers)[i]); + } else { + vn_decode_array_size(dec, args->imageMemoryBarrierCount); + args->pImageMemoryBarriers = NULL; + } +} + +static inline void vn_replace_vkCmdPipelineBarrier_args_handle(struct vn_command_vkCmdPipelineBarrier *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->srcStageMask */ + /* skip args->dstStageMask */ + /* skip args->dependencyFlags */ + /* skip args->memoryBarrierCount */ + if (args->pMemoryBarriers) { + for (uint32_t i = 0; i < args->memoryBarrierCount; i++) + vn_replace_VkMemoryBarrier_handle(&((VkMemoryBarrier *)args->pMemoryBarriers)[i]); + } + /* skip args->bufferMemoryBarrierCount */ + if (args->pBufferMemoryBarriers) { + for (uint32_t i = 0; i < args->bufferMemoryBarrierCount; i++) + vn_replace_VkBufferMemoryBarrier_handle(&((VkBufferMemoryBarrier *)args->pBufferMemoryBarriers)[i]); + } + /* skip args->imageMemoryBarrierCount */ + if (args->pImageMemoryBarriers) { + for (uint32_t i = 0; i < args->imageMemoryBarrierCount; i++) + vn_replace_VkImageMemoryBarrier_handle(&((VkImageMemoryBarrier *)args->pImageMemoryBarriers)[i]); + } +} + +static inline void vn_encode_vkCmdPipelineBarrier_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdPipelineBarrier *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdPipelineBarrier_EXT}); + + /* skip args->commandBuffer */ + /* skip args->srcStageMask */ + /* skip args->dstStageMask */ + /* skip args->dependencyFlags */ + /* skip args->memoryBarrierCount */ + /* skip args->pMemoryBarriers */ + /* skip args->bufferMemoryBarrierCount */ + /* skip args->pBufferMemoryBarriers */ + /* skip args->imageMemoryBarrierCount */ + /* skip args->pImageMemoryBarriers */ +} + +static inline void vn_decode_vkCmdBeginQuery_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBeginQuery *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkQueryPool_lookup(dec, &args->queryPool); + vn_decode_uint32_t(dec, &args->query); + vn_decode_VkFlags(dec, &args->flags); +} + +static inline void vn_replace_vkCmdBeginQuery_args_handle(struct vn_command_vkCmdBeginQuery *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + vn_replace_VkQueryPool_handle(&args->queryPool); + /* skip args->query */ + /* skip args->flags */ +} + +static inline void vn_encode_vkCmdBeginQuery_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBeginQuery *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBeginQuery_EXT}); + + /* skip args->commandBuffer */ + /* skip args->queryPool */ + /* skip args->query */ + /* skip args->flags */ +} + +static inline void vn_decode_vkCmdEndQuery_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdEndQuery *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkQueryPool_lookup(dec, &args->queryPool); + vn_decode_uint32_t(dec, &args->query); +} + +static inline void vn_replace_vkCmdEndQuery_args_handle(struct vn_command_vkCmdEndQuery *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + vn_replace_VkQueryPool_handle(&args->queryPool); + /* skip args->query */ +} + +static inline void vn_encode_vkCmdEndQuery_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdEndQuery *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdEndQuery_EXT}); + + /* skip args->commandBuffer */ + /* skip args->queryPool */ + /* skip args->query */ +} + +static inline void vn_decode_vkCmdResetQueryPool_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdResetQueryPool *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkQueryPool_lookup(dec, &args->queryPool); + vn_decode_uint32_t(dec, &args->firstQuery); + vn_decode_uint32_t(dec, &args->queryCount); +} + +static inline void vn_replace_vkCmdResetQueryPool_args_handle(struct vn_command_vkCmdResetQueryPool *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + vn_replace_VkQueryPool_handle(&args->queryPool); + /* skip args->firstQuery */ + /* skip args->queryCount */ +} + +static inline void vn_encode_vkCmdResetQueryPool_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdResetQueryPool *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdResetQueryPool_EXT}); + + /* skip args->commandBuffer */ + /* skip args->queryPool */ + /* skip args->firstQuery */ + /* skip args->queryCount */ +} + +static inline void vn_decode_vkCmdWriteTimestamp_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdWriteTimestamp *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkPipelineStageFlagBits(dec, &args->pipelineStage); + vn_decode_VkQueryPool_lookup(dec, &args->queryPool); + vn_decode_uint32_t(dec, &args->query); +} + +static inline void vn_replace_vkCmdWriteTimestamp_args_handle(struct vn_command_vkCmdWriteTimestamp *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->pipelineStage */ + vn_replace_VkQueryPool_handle(&args->queryPool); + /* skip args->query */ +} + +static inline void vn_encode_vkCmdWriteTimestamp_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdWriteTimestamp *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdWriteTimestamp_EXT}); + + /* skip args->commandBuffer */ + /* skip args->pipelineStage */ + /* skip args->queryPool */ + /* skip args->query */ +} + +static inline void vn_decode_vkCmdCopyQueryPoolResults_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdCopyQueryPoolResults *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkQueryPool_lookup(dec, &args->queryPool); + vn_decode_uint32_t(dec, &args->firstQuery); + vn_decode_uint32_t(dec, &args->queryCount); + vn_decode_VkBuffer_lookup(dec, &args->dstBuffer); + vn_decode_VkDeviceSize(dec, &args->dstOffset); + vn_decode_VkDeviceSize(dec, &args->stride); + vn_decode_VkFlags(dec, &args->flags); +} + +static inline void vn_replace_vkCmdCopyQueryPoolResults_args_handle(struct vn_command_vkCmdCopyQueryPoolResults *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + vn_replace_VkQueryPool_handle(&args->queryPool); + /* skip args->firstQuery */ + /* skip args->queryCount */ + vn_replace_VkBuffer_handle(&args->dstBuffer); + /* skip args->dstOffset */ + /* skip args->stride */ + /* skip args->flags */ +} + +static inline void vn_encode_vkCmdCopyQueryPoolResults_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdCopyQueryPoolResults *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdCopyQueryPoolResults_EXT}); + + /* skip args->commandBuffer */ + /* skip args->queryPool */ + /* skip args->firstQuery */ + /* skip args->queryCount */ + /* skip args->dstBuffer */ + /* skip args->dstOffset */ + /* skip args->stride */ + /* skip args->flags */ +} + +static inline void vn_decode_vkCmdPushConstants_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdPushConstants *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkPipelineLayout_lookup(dec, &args->layout); + vn_decode_VkFlags(dec, &args->stageFlags); + vn_decode_uint32_t(dec, &args->offset); + vn_decode_uint32_t(dec, &args->size); + if (vn_peek_array_size(dec)) { + const size_t array_size = vn_decode_array_size(dec, args->size); + args->pValues = vn_cs_decoder_alloc_temp(dec, array_size); + if (!args->pValues) return; + vn_decode_blob_array(dec, (void *)args->pValues, array_size); + } else { + vn_decode_array_size(dec, args->size); + args->pValues = NULL; + } +} + +static inline void vn_replace_vkCmdPushConstants_args_handle(struct vn_command_vkCmdPushConstants *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + vn_replace_VkPipelineLayout_handle(&args->layout); + /* skip args->stageFlags */ + /* skip args->offset */ + /* skip args->size */ + /* skip args->pValues */ +} + +static inline void vn_encode_vkCmdPushConstants_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdPushConstants *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdPushConstants_EXT}); + + /* skip args->commandBuffer */ + /* skip args->layout */ + /* skip args->stageFlags */ + /* skip args->offset */ + /* skip args->size */ + /* skip args->pValues */ +} + +static inline void vn_decode_vkCmdBeginRenderPass_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBeginRenderPass *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + if (vn_decode_simple_pointer(dec)) { + args->pRenderPassBegin = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRenderPassBegin)); + if (!args->pRenderPassBegin) return; + vn_decode_VkRenderPassBeginInfo_temp(dec, (VkRenderPassBeginInfo *)args->pRenderPassBegin); + } else { + args->pRenderPassBegin = NULL; + vn_cs_decoder_set_fatal(dec); + } + vn_decode_VkSubpassContents(dec, &args->contents); +} + +static inline void vn_replace_vkCmdBeginRenderPass_args_handle(struct vn_command_vkCmdBeginRenderPass *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + if (args->pRenderPassBegin) + vn_replace_VkRenderPassBeginInfo_handle((VkRenderPassBeginInfo *)args->pRenderPassBegin); + /* skip args->contents */ +} + +static inline void vn_encode_vkCmdBeginRenderPass_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBeginRenderPass *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBeginRenderPass_EXT}); + + /* skip args->commandBuffer */ + /* skip args->pRenderPassBegin */ + /* skip args->contents */ +} + +static inline void vn_decode_vkCmdNextSubpass_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdNextSubpass *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkSubpassContents(dec, &args->contents); +} + +static inline void vn_replace_vkCmdNextSubpass_args_handle(struct vn_command_vkCmdNextSubpass *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->contents */ +} + +static inline void vn_encode_vkCmdNextSubpass_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdNextSubpass *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdNextSubpass_EXT}); + + /* skip args->commandBuffer */ + /* skip args->contents */ +} + +static inline void vn_decode_vkCmdEndRenderPass_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdEndRenderPass *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); +} + +static inline void vn_replace_vkCmdEndRenderPass_args_handle(struct vn_command_vkCmdEndRenderPass *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); +} + +static inline void vn_encode_vkCmdEndRenderPass_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdEndRenderPass *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdEndRenderPass_EXT}); + + /* skip args->commandBuffer */ +} + +static inline void vn_decode_vkCmdExecuteCommands_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdExecuteCommands *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_uint32_t(dec, &args->commandBufferCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->commandBufferCount); + args->pCommandBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCommandBuffers) * iter_count); + if (!args->pCommandBuffers) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkCommandBuffer_lookup(dec, &((VkCommandBuffer *)args->pCommandBuffers)[i]); + } else { + vn_decode_array_size(dec, args->commandBufferCount); + args->pCommandBuffers = NULL; + } +} + +static inline void vn_replace_vkCmdExecuteCommands_args_handle(struct vn_command_vkCmdExecuteCommands *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->commandBufferCount */ + if (args->pCommandBuffers) { + for (uint32_t i = 0; i < args->commandBufferCount; i++) + vn_replace_VkCommandBuffer_handle(&((VkCommandBuffer *)args->pCommandBuffers)[i]); + } +} + +static inline void vn_encode_vkCmdExecuteCommands_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdExecuteCommands *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdExecuteCommands_EXT}); + + /* skip args->commandBuffer */ + /* skip args->commandBufferCount */ + /* skip args->pCommandBuffers */ +} + +static inline void vn_decode_vkCmdSetDeviceMask_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetDeviceMask *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_uint32_t(dec, &args->deviceMask); +} + +static inline void vn_replace_vkCmdSetDeviceMask_args_handle(struct vn_command_vkCmdSetDeviceMask *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->deviceMask */ +} + +static inline void vn_encode_vkCmdSetDeviceMask_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetDeviceMask *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetDeviceMask_EXT}); + + /* skip args->commandBuffer */ + /* skip args->deviceMask */ +} + +static inline void vn_decode_vkCmdDispatchBase_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDispatchBase *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_uint32_t(dec, &args->baseGroupX); + vn_decode_uint32_t(dec, &args->baseGroupY); + vn_decode_uint32_t(dec, &args->baseGroupZ); + vn_decode_uint32_t(dec, &args->groupCountX); + vn_decode_uint32_t(dec, &args->groupCountY); + vn_decode_uint32_t(dec, &args->groupCountZ); +} + +static inline void vn_replace_vkCmdDispatchBase_args_handle(struct vn_command_vkCmdDispatchBase *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->baseGroupX */ + /* skip args->baseGroupY */ + /* skip args->baseGroupZ */ + /* skip args->groupCountX */ + /* skip args->groupCountY */ + /* skip args->groupCountZ */ +} + +static inline void vn_encode_vkCmdDispatchBase_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDispatchBase *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDispatchBase_EXT}); + + /* skip args->commandBuffer */ + /* skip args->baseGroupX */ + /* skip args->baseGroupY */ + /* skip args->baseGroupZ */ + /* skip args->groupCountX */ + /* skip args->groupCountY */ + /* skip args->groupCountZ */ +} + +static inline void vn_decode_vkCmdBeginRenderPass2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBeginRenderPass2 *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + if (vn_decode_simple_pointer(dec)) { + args->pRenderPassBegin = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRenderPassBegin)); + if (!args->pRenderPassBegin) return; + vn_decode_VkRenderPassBeginInfo_temp(dec, (VkRenderPassBeginInfo *)args->pRenderPassBegin); + } else { + args->pRenderPassBegin = NULL; + vn_cs_decoder_set_fatal(dec); + } + if (vn_decode_simple_pointer(dec)) { + args->pSubpassBeginInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSubpassBeginInfo)); + if (!args->pSubpassBeginInfo) return; + vn_decode_VkSubpassBeginInfo_temp(dec, (VkSubpassBeginInfo *)args->pSubpassBeginInfo); + } else { + args->pSubpassBeginInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } +} + +static inline void vn_replace_vkCmdBeginRenderPass2_args_handle(struct vn_command_vkCmdBeginRenderPass2 *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + if (args->pRenderPassBegin) + vn_replace_VkRenderPassBeginInfo_handle((VkRenderPassBeginInfo *)args->pRenderPassBegin); + if (args->pSubpassBeginInfo) + vn_replace_VkSubpassBeginInfo_handle((VkSubpassBeginInfo *)args->pSubpassBeginInfo); +} + +static inline void vn_encode_vkCmdBeginRenderPass2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBeginRenderPass2 *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBeginRenderPass2_EXT}); + + /* skip args->commandBuffer */ + /* skip args->pRenderPassBegin */ + /* skip args->pSubpassBeginInfo */ +} + +static inline void vn_decode_vkCmdNextSubpass2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdNextSubpass2 *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + if (vn_decode_simple_pointer(dec)) { + args->pSubpassBeginInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSubpassBeginInfo)); + if (!args->pSubpassBeginInfo) return; + vn_decode_VkSubpassBeginInfo_temp(dec, (VkSubpassBeginInfo *)args->pSubpassBeginInfo); + } else { + args->pSubpassBeginInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } + if (vn_decode_simple_pointer(dec)) { + args->pSubpassEndInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSubpassEndInfo)); + if (!args->pSubpassEndInfo) return; + vn_decode_VkSubpassEndInfo_temp(dec, (VkSubpassEndInfo *)args->pSubpassEndInfo); + } else { + args->pSubpassEndInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } +} + +static inline void vn_replace_vkCmdNextSubpass2_args_handle(struct vn_command_vkCmdNextSubpass2 *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + if (args->pSubpassBeginInfo) + vn_replace_VkSubpassBeginInfo_handle((VkSubpassBeginInfo *)args->pSubpassBeginInfo); + if (args->pSubpassEndInfo) + vn_replace_VkSubpassEndInfo_handle((VkSubpassEndInfo *)args->pSubpassEndInfo); +} + +static inline void vn_encode_vkCmdNextSubpass2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdNextSubpass2 *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdNextSubpass2_EXT}); + + /* skip args->commandBuffer */ + /* skip args->pSubpassBeginInfo */ + /* skip args->pSubpassEndInfo */ +} + +static inline void vn_decode_vkCmdEndRenderPass2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdEndRenderPass2 *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + if (vn_decode_simple_pointer(dec)) { + args->pSubpassEndInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSubpassEndInfo)); + if (!args->pSubpassEndInfo) return; + vn_decode_VkSubpassEndInfo_temp(dec, (VkSubpassEndInfo *)args->pSubpassEndInfo); + } else { + args->pSubpassEndInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } +} + +static inline void vn_replace_vkCmdEndRenderPass2_args_handle(struct vn_command_vkCmdEndRenderPass2 *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + if (args->pSubpassEndInfo) + vn_replace_VkSubpassEndInfo_handle((VkSubpassEndInfo *)args->pSubpassEndInfo); +} + +static inline void vn_encode_vkCmdEndRenderPass2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdEndRenderPass2 *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdEndRenderPass2_EXT}); + + /* skip args->commandBuffer */ + /* skip args->pSubpassEndInfo */ +} + +static inline void vn_decode_vkCmdDrawIndirectCount_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDrawIndirectCount *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkBuffer_lookup(dec, &args->buffer); + vn_decode_VkDeviceSize(dec, &args->offset); + vn_decode_VkBuffer_lookup(dec, &args->countBuffer); + vn_decode_VkDeviceSize(dec, &args->countBufferOffset); + vn_decode_uint32_t(dec, &args->maxDrawCount); + vn_decode_uint32_t(dec, &args->stride); +} + +static inline void vn_replace_vkCmdDrawIndirectCount_args_handle(struct vn_command_vkCmdDrawIndirectCount *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + vn_replace_VkBuffer_handle(&args->buffer); + /* skip args->offset */ + vn_replace_VkBuffer_handle(&args->countBuffer); + /* skip args->countBufferOffset */ + /* skip args->maxDrawCount */ + /* skip args->stride */ +} + +static inline void vn_encode_vkCmdDrawIndirectCount_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDrawIndirectCount *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDrawIndirectCount_EXT}); + + /* skip args->commandBuffer */ + /* skip args->buffer */ + /* skip args->offset */ + /* skip args->countBuffer */ + /* skip args->countBufferOffset */ + /* skip args->maxDrawCount */ + /* skip args->stride */ +} + +static inline void vn_decode_vkCmdDrawIndexedIndirectCount_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDrawIndexedIndirectCount *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkBuffer_lookup(dec, &args->buffer); + vn_decode_VkDeviceSize(dec, &args->offset); + vn_decode_VkBuffer_lookup(dec, &args->countBuffer); + vn_decode_VkDeviceSize(dec, &args->countBufferOffset); + vn_decode_uint32_t(dec, &args->maxDrawCount); + vn_decode_uint32_t(dec, &args->stride); +} + +static inline void vn_replace_vkCmdDrawIndexedIndirectCount_args_handle(struct vn_command_vkCmdDrawIndexedIndirectCount *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + vn_replace_VkBuffer_handle(&args->buffer); + /* skip args->offset */ + vn_replace_VkBuffer_handle(&args->countBuffer); + /* skip args->countBufferOffset */ + /* skip args->maxDrawCount */ + /* skip args->stride */ +} + +static inline void vn_encode_vkCmdDrawIndexedIndirectCount_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDrawIndexedIndirectCount *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDrawIndexedIndirectCount_EXT}); + + /* skip args->commandBuffer */ + /* skip args->buffer */ + /* skip args->offset */ + /* skip args->countBuffer */ + /* skip args->countBufferOffset */ + /* skip args->maxDrawCount */ + /* skip args->stride */ +} + +static inline void vn_decode_vkCmdBindTransformFeedbackBuffersEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBindTransformFeedbackBuffersEXT *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_uint32_t(dec, &args->firstBinding); + vn_decode_uint32_t(dec, &args->bindingCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->bindingCount); + args->pBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBuffers) * iter_count); + if (!args->pBuffers) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkBuffer_lookup(dec, &((VkBuffer *)args->pBuffers)[i]); + } else { + vn_decode_array_size(dec, args->bindingCount); + args->pBuffers = NULL; + } + if (vn_peek_array_size(dec)) { + const size_t array_size = vn_decode_array_size(dec, args->bindingCount); + args->pOffsets = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pOffsets) * array_size); + if (!args->pOffsets) return; + vn_decode_VkDeviceSize_array(dec, (VkDeviceSize *)args->pOffsets, array_size); + } else { + vn_decode_array_size(dec, args->bindingCount); + args->pOffsets = NULL; + } + if (vn_peek_array_size(dec)) { + const size_t array_size = vn_decode_array_size(dec, args->bindingCount); + args->pSizes = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSizes) * array_size); + if (!args->pSizes) return; + vn_decode_VkDeviceSize_array(dec, (VkDeviceSize *)args->pSizes, array_size); + } else { + vn_decode_array_size_unchecked(dec); + args->pSizes = NULL; + } +} + +static inline void vn_replace_vkCmdBindTransformFeedbackBuffersEXT_args_handle(struct vn_command_vkCmdBindTransformFeedbackBuffersEXT *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->firstBinding */ + /* skip args->bindingCount */ + if (args->pBuffers) { + for (uint32_t i = 0; i < args->bindingCount; i++) + vn_replace_VkBuffer_handle(&((VkBuffer *)args->pBuffers)[i]); + } + /* skip args->pOffsets */ + /* skip args->pSizes */ +} + +static inline void vn_encode_vkCmdBindTransformFeedbackBuffersEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBindTransformFeedbackBuffersEXT *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBindTransformFeedbackBuffersEXT_EXT}); + + /* skip args->commandBuffer */ + /* skip args->firstBinding */ + /* skip args->bindingCount */ + /* skip args->pBuffers */ + /* skip args->pOffsets */ + /* skip args->pSizes */ +} + +static inline void vn_decode_vkCmdBeginTransformFeedbackEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBeginTransformFeedbackEXT *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_uint32_t(dec, &args->firstCounterBuffer); + vn_decode_uint32_t(dec, &args->counterBufferCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->counterBufferCount); + args->pCounterBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCounterBuffers) * iter_count); + if (!args->pCounterBuffers) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkBuffer_lookup(dec, &((VkBuffer *)args->pCounterBuffers)[i]); + } else { + vn_decode_array_size_unchecked(dec); + args->pCounterBuffers = NULL; + } + if (vn_peek_array_size(dec)) { + const size_t array_size = vn_decode_array_size(dec, args->counterBufferCount); + args->pCounterBufferOffsets = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCounterBufferOffsets) * array_size); + if (!args->pCounterBufferOffsets) return; + vn_decode_VkDeviceSize_array(dec, (VkDeviceSize *)args->pCounterBufferOffsets, array_size); + } else { + vn_decode_array_size_unchecked(dec); + args->pCounterBufferOffsets = NULL; + } +} + +static inline void vn_replace_vkCmdBeginTransformFeedbackEXT_args_handle(struct vn_command_vkCmdBeginTransformFeedbackEXT *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->firstCounterBuffer */ + /* skip args->counterBufferCount */ + if (args->pCounterBuffers) { + for (uint32_t i = 0; i < args->counterBufferCount; i++) + vn_replace_VkBuffer_handle(&((VkBuffer *)args->pCounterBuffers)[i]); + } + /* skip args->pCounterBufferOffsets */ +} + +static inline void vn_encode_vkCmdBeginTransformFeedbackEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBeginTransformFeedbackEXT *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBeginTransformFeedbackEXT_EXT}); + + /* skip args->commandBuffer */ + /* skip args->firstCounterBuffer */ + /* skip args->counterBufferCount */ + /* skip args->pCounterBuffers */ + /* skip args->pCounterBufferOffsets */ +} + +static inline void vn_decode_vkCmdEndTransformFeedbackEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdEndTransformFeedbackEXT *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_uint32_t(dec, &args->firstCounterBuffer); + vn_decode_uint32_t(dec, &args->counterBufferCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->counterBufferCount); + args->pCounterBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCounterBuffers) * iter_count); + if (!args->pCounterBuffers) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkBuffer_lookup(dec, &((VkBuffer *)args->pCounterBuffers)[i]); + } else { + vn_decode_array_size_unchecked(dec); + args->pCounterBuffers = NULL; + } + if (vn_peek_array_size(dec)) { + const size_t array_size = vn_decode_array_size(dec, args->counterBufferCount); + args->pCounterBufferOffsets = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCounterBufferOffsets) * array_size); + if (!args->pCounterBufferOffsets) return; + vn_decode_VkDeviceSize_array(dec, (VkDeviceSize *)args->pCounterBufferOffsets, array_size); + } else { + vn_decode_array_size_unchecked(dec); + args->pCounterBufferOffsets = NULL; + } +} + +static inline void vn_replace_vkCmdEndTransformFeedbackEXT_args_handle(struct vn_command_vkCmdEndTransformFeedbackEXT *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->firstCounterBuffer */ + /* skip args->counterBufferCount */ + if (args->pCounterBuffers) { + for (uint32_t i = 0; i < args->counterBufferCount; i++) + vn_replace_VkBuffer_handle(&((VkBuffer *)args->pCounterBuffers)[i]); + } + /* skip args->pCounterBufferOffsets */ +} + +static inline void vn_encode_vkCmdEndTransformFeedbackEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdEndTransformFeedbackEXT *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdEndTransformFeedbackEXT_EXT}); + + /* skip args->commandBuffer */ + /* skip args->firstCounterBuffer */ + /* skip args->counterBufferCount */ + /* skip args->pCounterBuffers */ + /* skip args->pCounterBufferOffsets */ +} + +static inline void vn_decode_vkCmdBeginQueryIndexedEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBeginQueryIndexedEXT *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkQueryPool_lookup(dec, &args->queryPool); + vn_decode_uint32_t(dec, &args->query); + vn_decode_VkFlags(dec, &args->flags); + vn_decode_uint32_t(dec, &args->index); +} + +static inline void vn_replace_vkCmdBeginQueryIndexedEXT_args_handle(struct vn_command_vkCmdBeginQueryIndexedEXT *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + vn_replace_VkQueryPool_handle(&args->queryPool); + /* skip args->query */ + /* skip args->flags */ + /* skip args->index */ +} + +static inline void vn_encode_vkCmdBeginQueryIndexedEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBeginQueryIndexedEXT *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBeginQueryIndexedEXT_EXT}); + + /* skip args->commandBuffer */ + /* skip args->queryPool */ + /* skip args->query */ + /* skip args->flags */ + /* skip args->index */ +} + +static inline void vn_decode_vkCmdEndQueryIndexedEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdEndQueryIndexedEXT *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkQueryPool_lookup(dec, &args->queryPool); + vn_decode_uint32_t(dec, &args->query); + vn_decode_uint32_t(dec, &args->index); +} + +static inline void vn_replace_vkCmdEndQueryIndexedEXT_args_handle(struct vn_command_vkCmdEndQueryIndexedEXT *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + vn_replace_VkQueryPool_handle(&args->queryPool); + /* skip args->query */ + /* skip args->index */ +} + +static inline void vn_encode_vkCmdEndQueryIndexedEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdEndQueryIndexedEXT *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdEndQueryIndexedEXT_EXT}); + + /* skip args->commandBuffer */ + /* skip args->queryPool */ + /* skip args->query */ + /* skip args->index */ +} + +static inline void vn_decode_vkCmdDrawIndirectByteCountEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDrawIndirectByteCountEXT *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_uint32_t(dec, &args->instanceCount); + vn_decode_uint32_t(dec, &args->firstInstance); + vn_decode_VkBuffer_lookup(dec, &args->counterBuffer); + vn_decode_VkDeviceSize(dec, &args->counterBufferOffset); + vn_decode_uint32_t(dec, &args->counterOffset); + vn_decode_uint32_t(dec, &args->vertexStride); +} + +static inline void vn_replace_vkCmdDrawIndirectByteCountEXT_args_handle(struct vn_command_vkCmdDrawIndirectByteCountEXT *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->instanceCount */ + /* skip args->firstInstance */ + vn_replace_VkBuffer_handle(&args->counterBuffer); + /* skip args->counterBufferOffset */ + /* skip args->counterOffset */ + /* skip args->vertexStride */ +} + +static inline void vn_encode_vkCmdDrawIndirectByteCountEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDrawIndirectByteCountEXT *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDrawIndirectByteCountEXT_EXT}); + + /* skip args->commandBuffer */ + /* skip args->instanceCount */ + /* skip args->firstInstance */ + /* skip args->counterBuffer */ + /* skip args->counterBufferOffset */ + /* skip args->counterOffset */ + /* skip args->vertexStride */ +} + +static inline void vn_decode_vkCmdSetCullMode_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetCullMode *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkFlags(dec, &args->cullMode); +} + +static inline void vn_replace_vkCmdSetCullMode_args_handle(struct vn_command_vkCmdSetCullMode *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->cullMode */ +} + +static inline void vn_encode_vkCmdSetCullMode_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetCullMode *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetCullMode_EXT}); + + /* skip args->commandBuffer */ + /* skip args->cullMode */ +} + +static inline void vn_decode_vkCmdSetFrontFace_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetFrontFace *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkFrontFace(dec, &args->frontFace); +} + +static inline void vn_replace_vkCmdSetFrontFace_args_handle(struct vn_command_vkCmdSetFrontFace *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->frontFace */ +} + +static inline void vn_encode_vkCmdSetFrontFace_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetFrontFace *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetFrontFace_EXT}); + + /* skip args->commandBuffer */ + /* skip args->frontFace */ +} + +static inline void vn_decode_vkCmdSetPrimitiveTopology_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetPrimitiveTopology *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkPrimitiveTopology(dec, &args->primitiveTopology); +} + +static inline void vn_replace_vkCmdSetPrimitiveTopology_args_handle(struct vn_command_vkCmdSetPrimitiveTopology *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->primitiveTopology */ +} + +static inline void vn_encode_vkCmdSetPrimitiveTopology_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetPrimitiveTopology *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetPrimitiveTopology_EXT}); + + /* skip args->commandBuffer */ + /* skip args->primitiveTopology */ +} + +static inline void vn_decode_vkCmdSetViewportWithCount_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetViewportWithCount *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_uint32_t(dec, &args->viewportCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->viewportCount); + args->pViewports = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pViewports) * iter_count); + if (!args->pViewports) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkViewport_temp(dec, &((VkViewport *)args->pViewports)[i]); + } else { + vn_decode_array_size(dec, args->viewportCount); + args->pViewports = NULL; + } +} + +static inline void vn_replace_vkCmdSetViewportWithCount_args_handle(struct vn_command_vkCmdSetViewportWithCount *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->viewportCount */ + if (args->pViewports) { + for (uint32_t i = 0; i < args->viewportCount; i++) + vn_replace_VkViewport_handle(&((VkViewport *)args->pViewports)[i]); + } +} + +static inline void vn_encode_vkCmdSetViewportWithCount_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetViewportWithCount *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetViewportWithCount_EXT}); + + /* skip args->commandBuffer */ + /* skip args->viewportCount */ + /* skip args->pViewports */ +} + +static inline void vn_decode_vkCmdSetScissorWithCount_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetScissorWithCount *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_uint32_t(dec, &args->scissorCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->scissorCount); + args->pScissors = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pScissors) * iter_count); + if (!args->pScissors) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkRect2D_temp(dec, &((VkRect2D *)args->pScissors)[i]); + } else { + vn_decode_array_size(dec, args->scissorCount); + args->pScissors = NULL; + } +} + +static inline void vn_replace_vkCmdSetScissorWithCount_args_handle(struct vn_command_vkCmdSetScissorWithCount *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->scissorCount */ + if (args->pScissors) { + for (uint32_t i = 0; i < args->scissorCount; i++) + vn_replace_VkRect2D_handle(&((VkRect2D *)args->pScissors)[i]); + } +} + +static inline void vn_encode_vkCmdSetScissorWithCount_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetScissorWithCount *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetScissorWithCount_EXT}); + + /* skip args->commandBuffer */ + /* skip args->scissorCount */ + /* skip args->pScissors */ +} + +static inline void vn_decode_vkCmdBindVertexBuffers2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBindVertexBuffers2 *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_uint32_t(dec, &args->firstBinding); + vn_decode_uint32_t(dec, &args->bindingCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->bindingCount); + args->pBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBuffers) * iter_count); + if (!args->pBuffers) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkBuffer_lookup(dec, &((VkBuffer *)args->pBuffers)[i]); + } else { + vn_decode_array_size(dec, args->bindingCount); + args->pBuffers = NULL; + } + if (vn_peek_array_size(dec)) { + const size_t array_size = vn_decode_array_size(dec, args->bindingCount); + args->pOffsets = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pOffsets) * array_size); + if (!args->pOffsets) return; + vn_decode_VkDeviceSize_array(dec, (VkDeviceSize *)args->pOffsets, array_size); + } else { + vn_decode_array_size(dec, args->bindingCount); + args->pOffsets = NULL; + } + if (vn_peek_array_size(dec)) { + const size_t array_size = vn_decode_array_size(dec, args->bindingCount); + args->pSizes = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSizes) * array_size); + if (!args->pSizes) return; + vn_decode_VkDeviceSize_array(dec, (VkDeviceSize *)args->pSizes, array_size); + } else { + vn_decode_array_size_unchecked(dec); + args->pSizes = NULL; + } + if (vn_peek_array_size(dec)) { + const size_t array_size = vn_decode_array_size(dec, args->bindingCount); + args->pStrides = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pStrides) * array_size); + if (!args->pStrides) return; + vn_decode_VkDeviceSize_array(dec, (VkDeviceSize *)args->pStrides, array_size); + } else { + vn_decode_array_size_unchecked(dec); + args->pStrides = NULL; + } +} + +static inline void vn_replace_vkCmdBindVertexBuffers2_args_handle(struct vn_command_vkCmdBindVertexBuffers2 *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->firstBinding */ + /* skip args->bindingCount */ + if (args->pBuffers) { + for (uint32_t i = 0; i < args->bindingCount; i++) + vn_replace_VkBuffer_handle(&((VkBuffer *)args->pBuffers)[i]); + } + /* skip args->pOffsets */ + /* skip args->pSizes */ + /* skip args->pStrides */ +} + +static inline void vn_encode_vkCmdBindVertexBuffers2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBindVertexBuffers2 *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBindVertexBuffers2_EXT}); + + /* skip args->commandBuffer */ + /* skip args->firstBinding */ + /* skip args->bindingCount */ + /* skip args->pBuffers */ + /* skip args->pOffsets */ + /* skip args->pSizes */ + /* skip args->pStrides */ +} + +static inline void vn_decode_vkCmdSetDepthTestEnable_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetDepthTestEnable *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkBool32(dec, &args->depthTestEnable); +} + +static inline void vn_replace_vkCmdSetDepthTestEnable_args_handle(struct vn_command_vkCmdSetDepthTestEnable *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->depthTestEnable */ +} + +static inline void vn_encode_vkCmdSetDepthTestEnable_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetDepthTestEnable *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetDepthTestEnable_EXT}); + + /* skip args->commandBuffer */ + /* skip args->depthTestEnable */ +} + +static inline void vn_decode_vkCmdSetDepthWriteEnable_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetDepthWriteEnable *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkBool32(dec, &args->depthWriteEnable); +} + +static inline void vn_replace_vkCmdSetDepthWriteEnable_args_handle(struct vn_command_vkCmdSetDepthWriteEnable *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->depthWriteEnable */ +} + +static inline void vn_encode_vkCmdSetDepthWriteEnable_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetDepthWriteEnable *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetDepthWriteEnable_EXT}); + + /* skip args->commandBuffer */ + /* skip args->depthWriteEnable */ +} + +static inline void vn_decode_vkCmdSetDepthCompareOp_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetDepthCompareOp *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkCompareOp(dec, &args->depthCompareOp); +} + +static inline void vn_replace_vkCmdSetDepthCompareOp_args_handle(struct vn_command_vkCmdSetDepthCompareOp *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->depthCompareOp */ +} + +static inline void vn_encode_vkCmdSetDepthCompareOp_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetDepthCompareOp *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetDepthCompareOp_EXT}); + + /* skip args->commandBuffer */ + /* skip args->depthCompareOp */ +} + +static inline void vn_decode_vkCmdSetDepthBoundsTestEnable_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetDepthBoundsTestEnable *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkBool32(dec, &args->depthBoundsTestEnable); +} + +static inline void vn_replace_vkCmdSetDepthBoundsTestEnable_args_handle(struct vn_command_vkCmdSetDepthBoundsTestEnable *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->depthBoundsTestEnable */ +} + +static inline void vn_encode_vkCmdSetDepthBoundsTestEnable_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetDepthBoundsTestEnable *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetDepthBoundsTestEnable_EXT}); + + /* skip args->commandBuffer */ + /* skip args->depthBoundsTestEnable */ +} + +static inline void vn_decode_vkCmdSetStencilTestEnable_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetStencilTestEnable *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkBool32(dec, &args->stencilTestEnable); +} + +static inline void vn_replace_vkCmdSetStencilTestEnable_args_handle(struct vn_command_vkCmdSetStencilTestEnable *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->stencilTestEnable */ +} + +static inline void vn_encode_vkCmdSetStencilTestEnable_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetStencilTestEnable *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetStencilTestEnable_EXT}); + + /* skip args->commandBuffer */ + /* skip args->stencilTestEnable */ +} + +static inline void vn_decode_vkCmdSetStencilOp_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetStencilOp *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkFlags(dec, &args->faceMask); + vn_decode_VkStencilOp(dec, &args->failOp); + vn_decode_VkStencilOp(dec, &args->passOp); + vn_decode_VkStencilOp(dec, &args->depthFailOp); + vn_decode_VkCompareOp(dec, &args->compareOp); +} + +static inline void vn_replace_vkCmdSetStencilOp_args_handle(struct vn_command_vkCmdSetStencilOp *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->faceMask */ + /* skip args->failOp */ + /* skip args->passOp */ + /* skip args->depthFailOp */ + /* skip args->compareOp */ +} + +static inline void vn_encode_vkCmdSetStencilOp_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetStencilOp *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetStencilOp_EXT}); + + /* skip args->commandBuffer */ + /* skip args->faceMask */ + /* skip args->failOp */ + /* skip args->passOp */ + /* skip args->depthFailOp */ + /* skip args->compareOp */ +} + +static inline void vn_decode_vkCmdSetPatchControlPointsEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetPatchControlPointsEXT *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_uint32_t(dec, &args->patchControlPoints); +} + +static inline void vn_replace_vkCmdSetPatchControlPointsEXT_args_handle(struct vn_command_vkCmdSetPatchControlPointsEXT *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->patchControlPoints */ +} + +static inline void vn_encode_vkCmdSetPatchControlPointsEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetPatchControlPointsEXT *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetPatchControlPointsEXT_EXT}); + + /* skip args->commandBuffer */ + /* skip args->patchControlPoints */ +} + +static inline void vn_decode_vkCmdSetRasterizerDiscardEnable_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetRasterizerDiscardEnable *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkBool32(dec, &args->rasterizerDiscardEnable); +} + +static inline void vn_replace_vkCmdSetRasterizerDiscardEnable_args_handle(struct vn_command_vkCmdSetRasterizerDiscardEnable *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->rasterizerDiscardEnable */ +} + +static inline void vn_encode_vkCmdSetRasterizerDiscardEnable_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetRasterizerDiscardEnable *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetRasterizerDiscardEnable_EXT}); + + /* skip args->commandBuffer */ + /* skip args->rasterizerDiscardEnable */ +} + +static inline void vn_decode_vkCmdSetDepthBiasEnable_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetDepthBiasEnable *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkBool32(dec, &args->depthBiasEnable); +} + +static inline void vn_replace_vkCmdSetDepthBiasEnable_args_handle(struct vn_command_vkCmdSetDepthBiasEnable *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->depthBiasEnable */ +} + +static inline void vn_encode_vkCmdSetDepthBiasEnable_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetDepthBiasEnable *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetDepthBiasEnable_EXT}); + + /* skip args->commandBuffer */ + /* skip args->depthBiasEnable */ +} + +static inline void vn_decode_vkCmdSetLogicOpEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetLogicOpEXT *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkLogicOp(dec, &args->logicOp); +} + +static inline void vn_replace_vkCmdSetLogicOpEXT_args_handle(struct vn_command_vkCmdSetLogicOpEXT *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->logicOp */ +} + +static inline void vn_encode_vkCmdSetLogicOpEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetLogicOpEXT *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetLogicOpEXT_EXT}); + + /* skip args->commandBuffer */ + /* skip args->logicOp */ +} + +static inline void vn_decode_vkCmdSetPrimitiveRestartEnable_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetPrimitiveRestartEnable *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkBool32(dec, &args->primitiveRestartEnable); +} + +static inline void vn_replace_vkCmdSetPrimitiveRestartEnable_args_handle(struct vn_command_vkCmdSetPrimitiveRestartEnable *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->primitiveRestartEnable */ +} + +static inline void vn_encode_vkCmdSetPrimitiveRestartEnable_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetPrimitiveRestartEnable *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetPrimitiveRestartEnable_EXT}); + + /* skip args->commandBuffer */ + /* skip args->primitiveRestartEnable */ +} + +static inline void vn_decode_vkCmdCopyBuffer2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdCopyBuffer2 *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + if (vn_decode_simple_pointer(dec)) { + args->pCopyBufferInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCopyBufferInfo)); + if (!args->pCopyBufferInfo) return; + vn_decode_VkCopyBufferInfo2_temp(dec, (VkCopyBufferInfo2 *)args->pCopyBufferInfo); + } else { + args->pCopyBufferInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } +} + +static inline void vn_replace_vkCmdCopyBuffer2_args_handle(struct vn_command_vkCmdCopyBuffer2 *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + if (args->pCopyBufferInfo) + vn_replace_VkCopyBufferInfo2_handle((VkCopyBufferInfo2 *)args->pCopyBufferInfo); +} + +static inline void vn_encode_vkCmdCopyBuffer2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdCopyBuffer2 *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdCopyBuffer2_EXT}); + + /* skip args->commandBuffer */ + /* skip args->pCopyBufferInfo */ +} + +static inline void vn_decode_vkCmdCopyImage2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdCopyImage2 *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + if (vn_decode_simple_pointer(dec)) { + args->pCopyImageInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCopyImageInfo)); + if (!args->pCopyImageInfo) return; + vn_decode_VkCopyImageInfo2_temp(dec, (VkCopyImageInfo2 *)args->pCopyImageInfo); + } else { + args->pCopyImageInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } +} + +static inline void vn_replace_vkCmdCopyImage2_args_handle(struct vn_command_vkCmdCopyImage2 *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + if (args->pCopyImageInfo) + vn_replace_VkCopyImageInfo2_handle((VkCopyImageInfo2 *)args->pCopyImageInfo); +} + +static inline void vn_encode_vkCmdCopyImage2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdCopyImage2 *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdCopyImage2_EXT}); + + /* skip args->commandBuffer */ + /* skip args->pCopyImageInfo */ +} + +static inline void vn_decode_vkCmdBlitImage2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBlitImage2 *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + if (vn_decode_simple_pointer(dec)) { + args->pBlitImageInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pBlitImageInfo)); + if (!args->pBlitImageInfo) return; + vn_decode_VkBlitImageInfo2_temp(dec, (VkBlitImageInfo2 *)args->pBlitImageInfo); + } else { + args->pBlitImageInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } +} + +static inline void vn_replace_vkCmdBlitImage2_args_handle(struct vn_command_vkCmdBlitImage2 *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + if (args->pBlitImageInfo) + vn_replace_VkBlitImageInfo2_handle((VkBlitImageInfo2 *)args->pBlitImageInfo); +} + +static inline void vn_encode_vkCmdBlitImage2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBlitImage2 *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBlitImage2_EXT}); + + /* skip args->commandBuffer */ + /* skip args->pBlitImageInfo */ +} + +static inline void vn_decode_vkCmdCopyBufferToImage2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdCopyBufferToImage2 *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + if (vn_decode_simple_pointer(dec)) { + args->pCopyBufferToImageInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCopyBufferToImageInfo)); + if (!args->pCopyBufferToImageInfo) return; + vn_decode_VkCopyBufferToImageInfo2_temp(dec, (VkCopyBufferToImageInfo2 *)args->pCopyBufferToImageInfo); + } else { + args->pCopyBufferToImageInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } +} + +static inline void vn_replace_vkCmdCopyBufferToImage2_args_handle(struct vn_command_vkCmdCopyBufferToImage2 *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + if (args->pCopyBufferToImageInfo) + vn_replace_VkCopyBufferToImageInfo2_handle((VkCopyBufferToImageInfo2 *)args->pCopyBufferToImageInfo); +} + +static inline void vn_encode_vkCmdCopyBufferToImage2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdCopyBufferToImage2 *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdCopyBufferToImage2_EXT}); + + /* skip args->commandBuffer */ + /* skip args->pCopyBufferToImageInfo */ +} + +static inline void vn_decode_vkCmdCopyImageToBuffer2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdCopyImageToBuffer2 *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + if (vn_decode_simple_pointer(dec)) { + args->pCopyImageToBufferInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCopyImageToBufferInfo)); + if (!args->pCopyImageToBufferInfo) return; + vn_decode_VkCopyImageToBufferInfo2_temp(dec, (VkCopyImageToBufferInfo2 *)args->pCopyImageToBufferInfo); + } else { + args->pCopyImageToBufferInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } +} + +static inline void vn_replace_vkCmdCopyImageToBuffer2_args_handle(struct vn_command_vkCmdCopyImageToBuffer2 *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + if (args->pCopyImageToBufferInfo) + vn_replace_VkCopyImageToBufferInfo2_handle((VkCopyImageToBufferInfo2 *)args->pCopyImageToBufferInfo); +} + +static inline void vn_encode_vkCmdCopyImageToBuffer2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdCopyImageToBuffer2 *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdCopyImageToBuffer2_EXT}); + + /* skip args->commandBuffer */ + /* skip args->pCopyImageToBufferInfo */ +} + +static inline void vn_decode_vkCmdResolveImage2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdResolveImage2 *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + if (vn_decode_simple_pointer(dec)) { + args->pResolveImageInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pResolveImageInfo)); + if (!args->pResolveImageInfo) return; + vn_decode_VkResolveImageInfo2_temp(dec, (VkResolveImageInfo2 *)args->pResolveImageInfo); + } else { + args->pResolveImageInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } +} + +static inline void vn_replace_vkCmdResolveImage2_args_handle(struct vn_command_vkCmdResolveImage2 *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + if (args->pResolveImageInfo) + vn_replace_VkResolveImageInfo2_handle((VkResolveImageInfo2 *)args->pResolveImageInfo); +} + +static inline void vn_encode_vkCmdResolveImage2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdResolveImage2 *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdResolveImage2_EXT}); + + /* skip args->commandBuffer */ + /* skip args->pResolveImageInfo */ +} + +static inline void vn_decode_vkCmdSetEvent2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetEvent2 *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkEvent_lookup(dec, &args->event); + if (vn_decode_simple_pointer(dec)) { + args->pDependencyInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pDependencyInfo)); + if (!args->pDependencyInfo) return; + vn_decode_VkDependencyInfo_temp(dec, (VkDependencyInfo *)args->pDependencyInfo); + } else { + args->pDependencyInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } +} + +static inline void vn_replace_vkCmdSetEvent2_args_handle(struct vn_command_vkCmdSetEvent2 *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + vn_replace_VkEvent_handle(&args->event); + if (args->pDependencyInfo) + vn_replace_VkDependencyInfo_handle((VkDependencyInfo *)args->pDependencyInfo); +} + +static inline void vn_encode_vkCmdSetEvent2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetEvent2 *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetEvent2_EXT}); + + /* skip args->commandBuffer */ + /* skip args->event */ + /* skip args->pDependencyInfo */ +} + +static inline void vn_decode_vkCmdResetEvent2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdResetEvent2 *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkEvent_lookup(dec, &args->event); + vn_decode_VkFlags64(dec, &args->stageMask); +} + +static inline void vn_replace_vkCmdResetEvent2_args_handle(struct vn_command_vkCmdResetEvent2 *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + vn_replace_VkEvent_handle(&args->event); + /* skip args->stageMask */ +} + +static inline void vn_encode_vkCmdResetEvent2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdResetEvent2 *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdResetEvent2_EXT}); + + /* skip args->commandBuffer */ + /* skip args->event */ + /* skip args->stageMask */ +} + +static inline void vn_decode_vkCmdWaitEvents2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdWaitEvents2 *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_uint32_t(dec, &args->eventCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->eventCount); + args->pEvents = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pEvents) * iter_count); + if (!args->pEvents) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkEvent_lookup(dec, &((VkEvent *)args->pEvents)[i]); + } else { + vn_decode_array_size(dec, args->eventCount); + args->pEvents = NULL; + } + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->eventCount); + args->pDependencyInfos = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pDependencyInfos) * iter_count); + if (!args->pDependencyInfos) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkDependencyInfo_temp(dec, &((VkDependencyInfo *)args->pDependencyInfos)[i]); + } else { + vn_decode_array_size(dec, args->eventCount); + args->pDependencyInfos = NULL; + } +} + +static inline void vn_replace_vkCmdWaitEvents2_args_handle(struct vn_command_vkCmdWaitEvents2 *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->eventCount */ + if (args->pEvents) { + for (uint32_t i = 0; i < args->eventCount; i++) + vn_replace_VkEvent_handle(&((VkEvent *)args->pEvents)[i]); + } + if (args->pDependencyInfos) { + for (uint32_t i = 0; i < args->eventCount; i++) + vn_replace_VkDependencyInfo_handle(&((VkDependencyInfo *)args->pDependencyInfos)[i]); + } +} + +static inline void vn_encode_vkCmdWaitEvents2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdWaitEvents2 *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdWaitEvents2_EXT}); + + /* skip args->commandBuffer */ + /* skip args->eventCount */ + /* skip args->pEvents */ + /* skip args->pDependencyInfos */ +} + +static inline void vn_decode_vkCmdPipelineBarrier2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdPipelineBarrier2 *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + if (vn_decode_simple_pointer(dec)) { + args->pDependencyInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pDependencyInfo)); + if (!args->pDependencyInfo) return; + vn_decode_VkDependencyInfo_temp(dec, (VkDependencyInfo *)args->pDependencyInfo); + } else { + args->pDependencyInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } +} + +static inline void vn_replace_vkCmdPipelineBarrier2_args_handle(struct vn_command_vkCmdPipelineBarrier2 *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + if (args->pDependencyInfo) + vn_replace_VkDependencyInfo_handle((VkDependencyInfo *)args->pDependencyInfo); +} + +static inline void vn_encode_vkCmdPipelineBarrier2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdPipelineBarrier2 *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdPipelineBarrier2_EXT}); + + /* skip args->commandBuffer */ + /* skip args->pDependencyInfo */ +} + +static inline void vn_decode_vkCmdWriteTimestamp2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdWriteTimestamp2 *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + vn_decode_VkFlags64(dec, &args->stage); + vn_decode_VkQueryPool_lookup(dec, &args->queryPool); + vn_decode_uint32_t(dec, &args->query); +} + +static inline void vn_replace_vkCmdWriteTimestamp2_args_handle(struct vn_command_vkCmdWriteTimestamp2 *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + /* skip args->stage */ + vn_replace_VkQueryPool_handle(&args->queryPool); + /* skip args->query */ +} + +static inline void vn_encode_vkCmdWriteTimestamp2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdWriteTimestamp2 *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdWriteTimestamp2_EXT}); + + /* skip args->commandBuffer */ + /* skip args->stage */ + /* skip args->queryPool */ + /* skip args->query */ +} + +static inline void vn_decode_vkCmdBeginRendering_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBeginRendering *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); + if (vn_decode_simple_pointer(dec)) { + args->pRenderingInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRenderingInfo)); + if (!args->pRenderingInfo) return; + vn_decode_VkRenderingInfo_temp(dec, (VkRenderingInfo *)args->pRenderingInfo); + } else { + args->pRenderingInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } +} + +static inline void vn_replace_vkCmdBeginRendering_args_handle(struct vn_command_vkCmdBeginRendering *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); + if (args->pRenderingInfo) + vn_replace_VkRenderingInfo_handle((VkRenderingInfo *)args->pRenderingInfo); +} + +static inline void vn_encode_vkCmdBeginRendering_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBeginRendering *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBeginRendering_EXT}); + + /* skip args->commandBuffer */ + /* skip args->pRenderingInfo */ +} + +static inline void vn_decode_vkCmdEndRendering_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdEndRendering *args) +{ + vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); +} + +static inline void vn_replace_vkCmdEndRendering_args_handle(struct vn_command_vkCmdEndRendering *args) +{ + vn_replace_VkCommandBuffer_handle(&args->commandBuffer); +} + +static inline void vn_encode_vkCmdEndRendering_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdEndRendering *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdEndRendering_EXT}); + + /* skip args->commandBuffer */ +} + +static inline void vn_dispatch_vkAllocateCommandBuffers(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkAllocateCommandBuffers args; + + if (!ctx->dispatch_vkAllocateCommandBuffers) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkAllocateCommandBuffers_args_temp(ctx->decoder, &args); + if (!args.device) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkAllocateCommandBuffers(ctx, &args); + +#ifdef DEBUG + if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret)) + vn_dispatch_debug_log(ctx, "vkAllocateCommandBuffers returned %d", args.ret); +#endif + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkAllocateCommandBuffers_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkFreeCommandBuffers(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkFreeCommandBuffers args; + + if (!ctx->dispatch_vkFreeCommandBuffers) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkFreeCommandBuffers_args_temp(ctx->decoder, &args); + if (!args.device) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkFreeCommandBuffers(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkFreeCommandBuffers_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkBeginCommandBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkBeginCommandBuffer args; + + if (!ctx->dispatch_vkBeginCommandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkBeginCommandBuffer_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkBeginCommandBuffer(ctx, &args); + +#ifdef DEBUG + if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret)) + vn_dispatch_debug_log(ctx, "vkBeginCommandBuffer returned %d", args.ret); +#endif + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkBeginCommandBuffer_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkEndCommandBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkEndCommandBuffer args; + + if (!ctx->dispatch_vkEndCommandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkEndCommandBuffer_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkEndCommandBuffer(ctx, &args); + +#ifdef DEBUG + if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret)) + vn_dispatch_debug_log(ctx, "vkEndCommandBuffer returned %d", args.ret); +#endif + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkEndCommandBuffer_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkResetCommandBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkResetCommandBuffer args; + + if (!ctx->dispatch_vkResetCommandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkResetCommandBuffer_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkResetCommandBuffer(ctx, &args); + +#ifdef DEBUG + if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret)) + vn_dispatch_debug_log(ctx, "vkResetCommandBuffer returned %d", args.ret); +#endif + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkResetCommandBuffer_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdBindPipeline(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdBindPipeline args; + + if (!ctx->dispatch_vkCmdBindPipeline) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdBindPipeline_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdBindPipeline(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdBindPipeline_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdSetViewport(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdSetViewport args; + + if (!ctx->dispatch_vkCmdSetViewport) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdSetViewport_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdSetViewport(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdSetViewport_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdSetScissor(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdSetScissor args; + + if (!ctx->dispatch_vkCmdSetScissor) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdSetScissor_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdSetScissor(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdSetScissor_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdSetLineWidth(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdSetLineWidth args; + + if (!ctx->dispatch_vkCmdSetLineWidth) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdSetLineWidth_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdSetLineWidth(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdSetLineWidth_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdSetDepthBias(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdSetDepthBias args; + + if (!ctx->dispatch_vkCmdSetDepthBias) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdSetDepthBias_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdSetDepthBias(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdSetDepthBias_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdSetBlendConstants(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdSetBlendConstants args; + + if (!ctx->dispatch_vkCmdSetBlendConstants) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdSetBlendConstants_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdSetBlendConstants(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdSetBlendConstants_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdSetDepthBounds(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdSetDepthBounds args; + + if (!ctx->dispatch_vkCmdSetDepthBounds) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdSetDepthBounds_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdSetDepthBounds(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdSetDepthBounds_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdSetStencilCompareMask(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdSetStencilCompareMask args; + + if (!ctx->dispatch_vkCmdSetStencilCompareMask) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdSetStencilCompareMask_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdSetStencilCompareMask(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdSetStencilCompareMask_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdSetStencilWriteMask(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdSetStencilWriteMask args; + + if (!ctx->dispatch_vkCmdSetStencilWriteMask) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdSetStencilWriteMask_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdSetStencilWriteMask(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdSetStencilWriteMask_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdSetStencilReference(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdSetStencilReference args; + + if (!ctx->dispatch_vkCmdSetStencilReference) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdSetStencilReference_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdSetStencilReference(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdSetStencilReference_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdBindDescriptorSets(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdBindDescriptorSets args; + + if (!ctx->dispatch_vkCmdBindDescriptorSets) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdBindDescriptorSets_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdBindDescriptorSets(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdBindDescriptorSets_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdBindIndexBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdBindIndexBuffer args; + + if (!ctx->dispatch_vkCmdBindIndexBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdBindIndexBuffer_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdBindIndexBuffer(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdBindIndexBuffer_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdBindVertexBuffers(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdBindVertexBuffers args; + + if (!ctx->dispatch_vkCmdBindVertexBuffers) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdBindVertexBuffers_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdBindVertexBuffers(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdBindVertexBuffers_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdDraw(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdDraw args; + + if (!ctx->dispatch_vkCmdDraw) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdDraw_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdDraw(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdDraw_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdDrawIndexed(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdDrawIndexed args; + + if (!ctx->dispatch_vkCmdDrawIndexed) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdDrawIndexed_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdDrawIndexed(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdDrawIndexed_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdDrawIndirect(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdDrawIndirect args; + + if (!ctx->dispatch_vkCmdDrawIndirect) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdDrawIndirect_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdDrawIndirect(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdDrawIndirect_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdDrawIndexedIndirect(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdDrawIndexedIndirect args; + + if (!ctx->dispatch_vkCmdDrawIndexedIndirect) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdDrawIndexedIndirect_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdDrawIndexedIndirect(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdDrawIndexedIndirect_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdDispatch(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdDispatch args; + + if (!ctx->dispatch_vkCmdDispatch) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdDispatch_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdDispatch(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdDispatch_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdDispatchIndirect(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdDispatchIndirect args; + + if (!ctx->dispatch_vkCmdDispatchIndirect) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdDispatchIndirect_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdDispatchIndirect(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdDispatchIndirect_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdCopyBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdCopyBuffer args; + + if (!ctx->dispatch_vkCmdCopyBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdCopyBuffer_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdCopyBuffer(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdCopyBuffer_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdCopyImage(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdCopyImage args; + + if (!ctx->dispatch_vkCmdCopyImage) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdCopyImage_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdCopyImage(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdCopyImage_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkCmdBlitImage(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCmdBlitImage args; + + if (!ctx->dispatch_vkCmdBlitImage) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCmdBlitImage_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; } - /* skip args->pCounterBufferOffsets */ -} -static inline void vn_encode_vkCmdBeginTransformFeedbackEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBeginTransformFeedbackEXT *args) -{ - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBeginTransformFeedbackEXT_EXT}); + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdBlitImage(ctx, &args); - /* skip args->commandBuffer */ - /* skip args->firstCounterBuffer */ - /* skip args->counterBufferCount */ - /* skip args->pCounterBuffers */ - /* skip args->pCounterBufferOffsets */ + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdBlitImage_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_decode_vkCmdEndTransformFeedbackEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdEndTransformFeedbackEXT *args) +static inline void vn_dispatch_vkCmdCopyBufferToImage(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_uint32_t(dec, &args->firstCounterBuffer); - vn_decode_uint32_t(dec, &args->counterBufferCount); - if (vn_peek_array_size(dec)) { - const uint32_t iter_count = vn_decode_array_size(dec, args->counterBufferCount); - args->pCounterBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCounterBuffers) * iter_count); - if (!args->pCounterBuffers) return; - for (uint32_t i = 0; i < iter_count; i++) - vn_decode_VkBuffer_lookup(dec, &((VkBuffer *)args->pCounterBuffers)[i]); - } else { - vn_decode_array_size_unchecked(dec); - args->pCounterBuffers = NULL; - } - if (vn_peek_array_size(dec)) { - const size_t array_size = vn_decode_array_size(dec, args->counterBufferCount); - args->pCounterBufferOffsets = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCounterBufferOffsets) * array_size); - if (!args->pCounterBufferOffsets) return; - vn_decode_VkDeviceSize_array(dec, (VkDeviceSize *)args->pCounterBufferOffsets, array_size); - } else { - vn_decode_array_size_unchecked(dec); - args->pCounterBufferOffsets = NULL; + struct vn_command_vkCmdCopyBufferToImage args; + + if (!ctx->dispatch_vkCmdCopyBufferToImage) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; } -} -static inline void vn_replace_vkCmdEndTransformFeedbackEXT_args_handle(struct vn_command_vkCmdEndTransformFeedbackEXT *args) -{ - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->firstCounterBuffer */ - /* skip args->counterBufferCount */ - if (args->pCounterBuffers) { - for (uint32_t i = 0; i < args->counterBufferCount; i++) - vn_replace_VkBuffer_handle(&((VkBuffer *)args->pCounterBuffers)[i]); + vn_decode_vkCmdCopyBufferToImage_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; } - /* skip args->pCounterBufferOffsets */ -} -static inline void vn_encode_vkCmdEndTransformFeedbackEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdEndTransformFeedbackEXT *args) -{ - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdEndTransformFeedbackEXT_EXT}); + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdCopyBufferToImage(ctx, &args); - /* skip args->commandBuffer */ - /* skip args->firstCounterBuffer */ - /* skip args->counterBufferCount */ - /* skip args->pCounterBuffers */ - /* skip args->pCounterBufferOffsets */ -} -static inline void vn_decode_vkCmdBeginQueryIndexedEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdBeginQueryIndexedEXT *args) -{ - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkQueryPool_lookup(dec, &args->queryPool); - vn_decode_uint32_t(dec, &args->query); - vn_decode_VkFlags(dec, &args->flags); - vn_decode_uint32_t(dec, &args->index); -} + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdCopyBufferToImage_reply(ctx->encoder, &args); -static inline void vn_replace_vkCmdBeginQueryIndexedEXT_args_handle(struct vn_command_vkCmdBeginQueryIndexedEXT *args) -{ - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkQueryPool_handle(&args->queryPool); - /* skip args->query */ - /* skip args->flags */ - /* skip args->index */ + vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_encode_vkCmdBeginQueryIndexedEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdBeginQueryIndexedEXT *args) +static inline void vn_dispatch_vkCmdCopyImageToBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdBeginQueryIndexedEXT_EXT}); + struct vn_command_vkCmdCopyImageToBuffer args; - /* skip args->commandBuffer */ - /* skip args->queryPool */ - /* skip args->query */ - /* skip args->flags */ - /* skip args->index */ -} + if (!ctx->dispatch_vkCmdCopyImageToBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } -static inline void vn_decode_vkCmdEndQueryIndexedEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdEndQueryIndexedEXT *args) -{ - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_VkQueryPool_lookup(dec, &args->queryPool); - vn_decode_uint32_t(dec, &args->query); - vn_decode_uint32_t(dec, &args->index); -} + vn_decode_vkCmdCopyImageToBuffer_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } -static inline void vn_replace_vkCmdEndQueryIndexedEXT_args_handle(struct vn_command_vkCmdEndQueryIndexedEXT *args) -{ - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - vn_replace_VkQueryPool_handle(&args->queryPool); - /* skip args->query */ - /* skip args->index */ -} + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdCopyImageToBuffer(ctx, &args); -static inline void vn_encode_vkCmdEndQueryIndexedEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdEndQueryIndexedEXT *args) -{ - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdEndQueryIndexedEXT_EXT}); - /* skip args->commandBuffer */ - /* skip args->queryPool */ - /* skip args->query */ - /* skip args->index */ -} + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdCopyImageToBuffer_reply(ctx->encoder, &args); -static inline void vn_decode_vkCmdDrawIndirectByteCountEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdDrawIndirectByteCountEXT *args) -{ - vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer); - vn_decode_uint32_t(dec, &args->instanceCount); - vn_decode_uint32_t(dec, &args->firstInstance); - vn_decode_VkBuffer_lookup(dec, &args->counterBuffer); - vn_decode_VkDeviceSize(dec, &args->counterBufferOffset); - vn_decode_uint32_t(dec, &args->counterOffset); - vn_decode_uint32_t(dec, &args->vertexStride); + vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_replace_vkCmdDrawIndirectByteCountEXT_args_handle(struct vn_command_vkCmdDrawIndirectByteCountEXT *args) +static inline void vn_dispatch_vkCmdUpdateBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - vn_replace_VkCommandBuffer_handle(&args->commandBuffer); - /* skip args->instanceCount */ - /* skip args->firstInstance */ - vn_replace_VkBuffer_handle(&args->counterBuffer); - /* skip args->counterBufferOffset */ - /* skip args->counterOffset */ - /* skip args->vertexStride */ -} + struct vn_command_vkCmdUpdateBuffer args; -static inline void vn_encode_vkCmdDrawIndirectByteCountEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdDrawIndirectByteCountEXT *args) -{ - vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdDrawIndirectByteCountEXT_EXT}); + if (!ctx->dispatch_vkCmdUpdateBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } - /* skip args->commandBuffer */ - /* skip args->instanceCount */ - /* skip args->firstInstance */ - /* skip args->counterBuffer */ - /* skip args->counterBufferOffset */ - /* skip args->counterOffset */ - /* skip args->vertexStride */ + vn_decode_vkCmdUpdateBuffer_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCmdUpdateBuffer(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCmdUpdateBuffer_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkAllocateCommandBuffers(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdFillBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkAllocateCommandBuffers args; + struct vn_command_vkCmdFillBuffer args; - if (!ctx->dispatch_vkAllocateCommandBuffers) { + if (!ctx->dispatch_vkCmdFillBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkAllocateCommandBuffers_args_temp(ctx->decoder, &args); - if (!args.device) { + vn_decode_vkCmdFillBuffer_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkAllocateCommandBuffers(ctx, &args); + ctx->dispatch_vkCmdFillBuffer(ctx, &args); -#ifdef DEBUG - if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret)) - vn_dispatch_debug_log(ctx, "vkAllocateCommandBuffers returned %d", args.ret); -#endif if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkAllocateCommandBuffers_reply(ctx->encoder, &args); + vn_encode_vkCmdFillBuffer_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkFreeCommandBuffers(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdClearColorImage(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkFreeCommandBuffers args; + struct vn_command_vkCmdClearColorImage args; - if (!ctx->dispatch_vkFreeCommandBuffers) { + if (!ctx->dispatch_vkCmdClearColorImage) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkFreeCommandBuffers_args_temp(ctx->decoder, &args); - if (!args.device) { + vn_decode_vkCmdClearColorImage_args_temp(ctx->decoder, &args); + if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkFreeCommandBuffers(ctx, &args); + ctx->dispatch_vkCmdClearColorImage(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkFreeCommandBuffers_reply(ctx->encoder, &args); + vn_encode_vkCmdClearColorImage_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkBeginCommandBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdClearDepthStencilImage(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkBeginCommandBuffer args; + struct vn_command_vkCmdClearDepthStencilImage args; - if (!ctx->dispatch_vkBeginCommandBuffer) { + if (!ctx->dispatch_vkCmdClearDepthStencilImage) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkBeginCommandBuffer_args_temp(ctx->decoder, &args); + vn_decode_vkCmdClearDepthStencilImage_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkBeginCommandBuffer(ctx, &args); + ctx->dispatch_vkCmdClearDepthStencilImage(ctx, &args); -#ifdef DEBUG - if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret)) - vn_dispatch_debug_log(ctx, "vkBeginCommandBuffer returned %d", args.ret); -#endif if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkBeginCommandBuffer_reply(ctx->encoder, &args); + vn_encode_vkCmdClearDepthStencilImage_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkEndCommandBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdClearAttachments(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkEndCommandBuffer args; + struct vn_command_vkCmdClearAttachments args; - if (!ctx->dispatch_vkEndCommandBuffer) { + if (!ctx->dispatch_vkCmdClearAttachments) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkEndCommandBuffer_args_temp(ctx->decoder, &args); + vn_decode_vkCmdClearAttachments_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkEndCommandBuffer(ctx, &args); + ctx->dispatch_vkCmdClearAttachments(ctx, &args); -#ifdef DEBUG - if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret)) - vn_dispatch_debug_log(ctx, "vkEndCommandBuffer returned %d", args.ret); -#endif if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkEndCommandBuffer_reply(ctx->encoder, &args); + vn_encode_vkCmdClearAttachments_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkResetCommandBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdResolveImage(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkResetCommandBuffer args; + struct vn_command_vkCmdResolveImage args; - if (!ctx->dispatch_vkResetCommandBuffer) { + if (!ctx->dispatch_vkCmdResolveImage) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkResetCommandBuffer_args_temp(ctx->decoder, &args); + vn_decode_vkCmdResolveImage_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkResetCommandBuffer(ctx, &args); + ctx->dispatch_vkCmdResolveImage(ctx, &args); -#ifdef DEBUG - if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret)) - vn_dispatch_debug_log(ctx, "vkResetCommandBuffer returned %d", args.ret); -#endif if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkResetCommandBuffer_reply(ctx->encoder, &args); + vn_encode_vkCmdResolveImage_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdBindPipeline(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdSetEvent(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdBindPipeline args; + struct vn_command_vkCmdSetEvent args; - if (!ctx->dispatch_vkCmdBindPipeline) { + if (!ctx->dispatch_vkCmdSetEvent) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdBindPipeline_args_temp(ctx->decoder, &args); + vn_decode_vkCmdSetEvent_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdBindPipeline(ctx, &args); + ctx->dispatch_vkCmdSetEvent(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdBindPipeline_reply(ctx->encoder, &args); + vn_encode_vkCmdSetEvent_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdSetViewport(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdResetEvent(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdSetViewport args; + struct vn_command_vkCmdResetEvent args; - if (!ctx->dispatch_vkCmdSetViewport) { + if (!ctx->dispatch_vkCmdResetEvent) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdSetViewport_args_temp(ctx->decoder, &args); + vn_decode_vkCmdResetEvent_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdSetViewport(ctx, &args); + ctx->dispatch_vkCmdResetEvent(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdSetViewport_reply(ctx->encoder, &args); + vn_encode_vkCmdResetEvent_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdSetScissor(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdWaitEvents(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdSetScissor args; + struct vn_command_vkCmdWaitEvents args; - if (!ctx->dispatch_vkCmdSetScissor) { + if (!ctx->dispatch_vkCmdWaitEvents) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdSetScissor_args_temp(ctx->decoder, &args); + vn_decode_vkCmdWaitEvents_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdSetScissor(ctx, &args); + ctx->dispatch_vkCmdWaitEvents(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdSetScissor_reply(ctx->encoder, &args); + vn_encode_vkCmdWaitEvents_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdSetLineWidth(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdPipelineBarrier(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdSetLineWidth args; + struct vn_command_vkCmdPipelineBarrier args; - if (!ctx->dispatch_vkCmdSetLineWidth) { + if (!ctx->dispatch_vkCmdPipelineBarrier) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdSetLineWidth_args_temp(ctx->decoder, &args); + vn_decode_vkCmdPipelineBarrier_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdSetLineWidth(ctx, &args); + ctx->dispatch_vkCmdPipelineBarrier(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdSetLineWidth_reply(ctx->encoder, &args); + vn_encode_vkCmdPipelineBarrier_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdSetDepthBias(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdBeginQuery(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdSetDepthBias args; + struct vn_command_vkCmdBeginQuery args; - if (!ctx->dispatch_vkCmdSetDepthBias) { + if (!ctx->dispatch_vkCmdBeginQuery) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdSetDepthBias_args_temp(ctx->decoder, &args); + vn_decode_vkCmdBeginQuery_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdSetDepthBias(ctx, &args); + ctx->dispatch_vkCmdBeginQuery(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdSetDepthBias_reply(ctx->encoder, &args); + vn_encode_vkCmdBeginQuery_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdSetBlendConstants(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdEndQuery(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdSetBlendConstants args; + struct vn_command_vkCmdEndQuery args; - if (!ctx->dispatch_vkCmdSetBlendConstants) { + if (!ctx->dispatch_vkCmdEndQuery) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdSetBlendConstants_args_temp(ctx->decoder, &args); + vn_decode_vkCmdEndQuery_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdSetBlendConstants(ctx, &args); + ctx->dispatch_vkCmdEndQuery(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdSetBlendConstants_reply(ctx->encoder, &args); + vn_encode_vkCmdEndQuery_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdSetDepthBounds(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdResetQueryPool(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdSetDepthBounds args; + struct vn_command_vkCmdResetQueryPool args; - if (!ctx->dispatch_vkCmdSetDepthBounds) { + if (!ctx->dispatch_vkCmdResetQueryPool) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdSetDepthBounds_args_temp(ctx->decoder, &args); + vn_decode_vkCmdResetQueryPool_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdSetDepthBounds(ctx, &args); + ctx->dispatch_vkCmdResetQueryPool(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdSetDepthBounds_reply(ctx->encoder, &args); + vn_encode_vkCmdResetQueryPool_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdSetStencilCompareMask(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdWriteTimestamp(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdSetStencilCompareMask args; + struct vn_command_vkCmdWriteTimestamp args; - if (!ctx->dispatch_vkCmdSetStencilCompareMask) { + if (!ctx->dispatch_vkCmdWriteTimestamp) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdSetStencilCompareMask_args_temp(ctx->decoder, &args); + vn_decode_vkCmdWriteTimestamp_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdSetStencilCompareMask(ctx, &args); + ctx->dispatch_vkCmdWriteTimestamp(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdSetStencilCompareMask_reply(ctx->encoder, &args); + vn_encode_vkCmdWriteTimestamp_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdSetStencilWriteMask(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdCopyQueryPoolResults(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdSetStencilWriteMask args; + struct vn_command_vkCmdCopyQueryPoolResults args; - if (!ctx->dispatch_vkCmdSetStencilWriteMask) { + if (!ctx->dispatch_vkCmdCopyQueryPoolResults) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdSetStencilWriteMask_args_temp(ctx->decoder, &args); + vn_decode_vkCmdCopyQueryPoolResults_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdSetStencilWriteMask(ctx, &args); + ctx->dispatch_vkCmdCopyQueryPoolResults(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdSetStencilWriteMask_reply(ctx->encoder, &args); + vn_encode_vkCmdCopyQueryPoolResults_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdSetStencilReference(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdPushConstants(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdSetStencilReference args; + struct vn_command_vkCmdPushConstants args; - if (!ctx->dispatch_vkCmdSetStencilReference) { + if (!ctx->dispatch_vkCmdPushConstants) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdSetStencilReference_args_temp(ctx->decoder, &args); + vn_decode_vkCmdPushConstants_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdSetStencilReference(ctx, &args); + ctx->dispatch_vkCmdPushConstants(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdSetStencilReference_reply(ctx->encoder, &args); + vn_encode_vkCmdPushConstants_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdBindDescriptorSets(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdBeginRenderPass(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdBindDescriptorSets args; + struct vn_command_vkCmdBeginRenderPass args; - if (!ctx->dispatch_vkCmdBindDescriptorSets) { + if (!ctx->dispatch_vkCmdBeginRenderPass) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdBindDescriptorSets_args_temp(ctx->decoder, &args); + vn_decode_vkCmdBeginRenderPass_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdBindDescriptorSets(ctx, &args); + ctx->dispatch_vkCmdBeginRenderPass(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdBindDescriptorSets_reply(ctx->encoder, &args); + vn_encode_vkCmdBeginRenderPass_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdBindIndexBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdNextSubpass(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdBindIndexBuffer args; + struct vn_command_vkCmdNextSubpass args; - if (!ctx->dispatch_vkCmdBindIndexBuffer) { + if (!ctx->dispatch_vkCmdNextSubpass) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdBindIndexBuffer_args_temp(ctx->decoder, &args); + vn_decode_vkCmdNextSubpass_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdBindIndexBuffer(ctx, &args); + ctx->dispatch_vkCmdNextSubpass(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdBindIndexBuffer_reply(ctx->encoder, &args); + vn_encode_vkCmdNextSubpass_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdBindVertexBuffers(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdEndRenderPass(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdBindVertexBuffers args; + struct vn_command_vkCmdEndRenderPass args; - if (!ctx->dispatch_vkCmdBindVertexBuffers) { + if (!ctx->dispatch_vkCmdEndRenderPass) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdBindVertexBuffers_args_temp(ctx->decoder, &args); + vn_decode_vkCmdEndRenderPass_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdBindVertexBuffers(ctx, &args); + ctx->dispatch_vkCmdEndRenderPass(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdBindVertexBuffers_reply(ctx->encoder, &args); + vn_encode_vkCmdEndRenderPass_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdDraw(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdExecuteCommands(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdDraw args; + struct vn_command_vkCmdExecuteCommands args; - if (!ctx->dispatch_vkCmdDraw) { + if (!ctx->dispatch_vkCmdExecuteCommands) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdDraw_args_temp(ctx->decoder, &args); + vn_decode_vkCmdExecuteCommands_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdDraw(ctx, &args); + ctx->dispatch_vkCmdExecuteCommands(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdDraw_reply(ctx->encoder, &args); + vn_encode_vkCmdExecuteCommands_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdDrawIndexed(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdSetDeviceMask(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdDrawIndexed args; + struct vn_command_vkCmdSetDeviceMask args; - if (!ctx->dispatch_vkCmdDrawIndexed) { + if (!ctx->dispatch_vkCmdSetDeviceMask) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdDrawIndexed_args_temp(ctx->decoder, &args); + vn_decode_vkCmdSetDeviceMask_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdDrawIndexed(ctx, &args); + ctx->dispatch_vkCmdSetDeviceMask(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdDrawIndexed_reply(ctx->encoder, &args); + vn_encode_vkCmdSetDeviceMask_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdDrawIndirect(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdDispatchBase(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdDrawIndirect args; + struct vn_command_vkCmdDispatchBase args; - if (!ctx->dispatch_vkCmdDrawIndirect) { + if (!ctx->dispatch_vkCmdDispatchBase) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdDrawIndirect_args_temp(ctx->decoder, &args); + vn_decode_vkCmdDispatchBase_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdDrawIndirect(ctx, &args); + ctx->dispatch_vkCmdDispatchBase(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdDrawIndirect_reply(ctx->encoder, &args); + vn_encode_vkCmdDispatchBase_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdDrawIndexedIndirect(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdBeginRenderPass2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdDrawIndexedIndirect args; + struct vn_command_vkCmdBeginRenderPass2 args; - if (!ctx->dispatch_vkCmdDrawIndexedIndirect) { + if (!ctx->dispatch_vkCmdBeginRenderPass2) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdDrawIndexedIndirect_args_temp(ctx->decoder, &args); + vn_decode_vkCmdBeginRenderPass2_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdDrawIndexedIndirect(ctx, &args); + ctx->dispatch_vkCmdBeginRenderPass2(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdDrawIndexedIndirect_reply(ctx->encoder, &args); + vn_encode_vkCmdBeginRenderPass2_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdDispatch(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdNextSubpass2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdDispatch args; + struct vn_command_vkCmdNextSubpass2 args; - if (!ctx->dispatch_vkCmdDispatch) { + if (!ctx->dispatch_vkCmdNextSubpass2) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdDispatch_args_temp(ctx->decoder, &args); + vn_decode_vkCmdNextSubpass2_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdDispatch(ctx, &args); + ctx->dispatch_vkCmdNextSubpass2(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdDispatch_reply(ctx->encoder, &args); + vn_encode_vkCmdNextSubpass2_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdDispatchIndirect(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdEndRenderPass2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdDispatchIndirect args; + struct vn_command_vkCmdEndRenderPass2 args; - if (!ctx->dispatch_vkCmdDispatchIndirect) { + if (!ctx->dispatch_vkCmdEndRenderPass2) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdDispatchIndirect_args_temp(ctx->decoder, &args); + vn_decode_vkCmdEndRenderPass2_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdDispatchIndirect(ctx, &args); + ctx->dispatch_vkCmdEndRenderPass2(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdDispatchIndirect_reply(ctx->encoder, &args); + vn_encode_vkCmdEndRenderPass2_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdCopyBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdDrawIndirectCount(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdCopyBuffer args; + struct vn_command_vkCmdDrawIndirectCount args; - if (!ctx->dispatch_vkCmdCopyBuffer) { + if (!ctx->dispatch_vkCmdDrawIndirectCount) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdCopyBuffer_args_temp(ctx->decoder, &args); + vn_decode_vkCmdDrawIndirectCount_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdCopyBuffer(ctx, &args); + ctx->dispatch_vkCmdDrawIndirectCount(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdCopyBuffer_reply(ctx->encoder, &args); + vn_encode_vkCmdDrawIndirectCount_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdCopyImage(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdDrawIndexedIndirectCount(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdCopyImage args; + struct vn_command_vkCmdDrawIndexedIndirectCount args; - if (!ctx->dispatch_vkCmdCopyImage) { + if (!ctx->dispatch_vkCmdDrawIndexedIndirectCount) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdCopyImage_args_temp(ctx->decoder, &args); + vn_decode_vkCmdDrawIndexedIndirectCount_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdCopyImage(ctx, &args); + ctx->dispatch_vkCmdDrawIndexedIndirectCount(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdCopyImage_reply(ctx->encoder, &args); + vn_encode_vkCmdDrawIndexedIndirectCount_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdBlitImage(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdBindTransformFeedbackBuffersEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdBlitImage args; + struct vn_command_vkCmdBindTransformFeedbackBuffersEXT args; - if (!ctx->dispatch_vkCmdBlitImage) { + if (!ctx->dispatch_vkCmdBindTransformFeedbackBuffersEXT) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdBlitImage_args_temp(ctx->decoder, &args); + vn_decode_vkCmdBindTransformFeedbackBuffersEXT_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdBlitImage(ctx, &args); + ctx->dispatch_vkCmdBindTransformFeedbackBuffersEXT(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdBlitImage_reply(ctx->encoder, &args); + vn_encode_vkCmdBindTransformFeedbackBuffersEXT_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdCopyBufferToImage(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdBeginTransformFeedbackEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdCopyBufferToImage args; + struct vn_command_vkCmdBeginTransformFeedbackEXT args; - if (!ctx->dispatch_vkCmdCopyBufferToImage) { + if (!ctx->dispatch_vkCmdBeginTransformFeedbackEXT) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdCopyBufferToImage_args_temp(ctx->decoder, &args); + vn_decode_vkCmdBeginTransformFeedbackEXT_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdCopyBufferToImage(ctx, &args); + ctx->dispatch_vkCmdBeginTransformFeedbackEXT(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdCopyBufferToImage_reply(ctx->encoder, &args); + vn_encode_vkCmdBeginTransformFeedbackEXT_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdCopyImageToBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdEndTransformFeedbackEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdCopyImageToBuffer args; + struct vn_command_vkCmdEndTransformFeedbackEXT args; - if (!ctx->dispatch_vkCmdCopyImageToBuffer) { + if (!ctx->dispatch_vkCmdEndTransformFeedbackEXT) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdCopyImageToBuffer_args_temp(ctx->decoder, &args); + vn_decode_vkCmdEndTransformFeedbackEXT_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdCopyImageToBuffer(ctx, &args); + ctx->dispatch_vkCmdEndTransformFeedbackEXT(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdCopyImageToBuffer_reply(ctx->encoder, &args); + vn_encode_vkCmdEndTransformFeedbackEXT_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdUpdateBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdBeginQueryIndexedEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdUpdateBuffer args; + struct vn_command_vkCmdBeginQueryIndexedEXT args; - if (!ctx->dispatch_vkCmdUpdateBuffer) { + if (!ctx->dispatch_vkCmdBeginQueryIndexedEXT) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdUpdateBuffer_args_temp(ctx->decoder, &args); + vn_decode_vkCmdBeginQueryIndexedEXT_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdUpdateBuffer(ctx, &args); + ctx->dispatch_vkCmdBeginQueryIndexedEXT(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdUpdateBuffer_reply(ctx->encoder, &args); + vn_encode_vkCmdBeginQueryIndexedEXT_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdFillBuffer(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdEndQueryIndexedEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdFillBuffer args; + struct vn_command_vkCmdEndQueryIndexedEXT args; - if (!ctx->dispatch_vkCmdFillBuffer) { + if (!ctx->dispatch_vkCmdEndQueryIndexedEXT) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdFillBuffer_args_temp(ctx->decoder, &args); + vn_decode_vkCmdEndQueryIndexedEXT_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdFillBuffer(ctx, &args); + ctx->dispatch_vkCmdEndQueryIndexedEXT(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdFillBuffer_reply(ctx->encoder, &args); + vn_encode_vkCmdEndQueryIndexedEXT_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdClearColorImage(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdDrawIndirectByteCountEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdClearColorImage args; + struct vn_command_vkCmdDrawIndirectByteCountEXT args; - if (!ctx->dispatch_vkCmdClearColorImage) { + if (!ctx->dispatch_vkCmdDrawIndirectByteCountEXT) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdClearColorImage_args_temp(ctx->decoder, &args); + vn_decode_vkCmdDrawIndirectByteCountEXT_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdClearColorImage(ctx, &args); + ctx->dispatch_vkCmdDrawIndirectByteCountEXT(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdClearColorImage_reply(ctx->encoder, &args); + vn_encode_vkCmdDrawIndirectByteCountEXT_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdClearDepthStencilImage(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdSetCullMode(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdClearDepthStencilImage args; + struct vn_command_vkCmdSetCullMode args; - if (!ctx->dispatch_vkCmdClearDepthStencilImage) { + if (!ctx->dispatch_vkCmdSetCullMode) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdClearDepthStencilImage_args_temp(ctx->decoder, &args); + vn_decode_vkCmdSetCullMode_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdClearDepthStencilImage(ctx, &args); + ctx->dispatch_vkCmdSetCullMode(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdClearDepthStencilImage_reply(ctx->encoder, &args); + vn_encode_vkCmdSetCullMode_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdClearAttachments(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdSetFrontFace(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdClearAttachments args; + struct vn_command_vkCmdSetFrontFace args; - if (!ctx->dispatch_vkCmdClearAttachments) { + if (!ctx->dispatch_vkCmdSetFrontFace) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdClearAttachments_args_temp(ctx->decoder, &args); + vn_decode_vkCmdSetFrontFace_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdClearAttachments(ctx, &args); + ctx->dispatch_vkCmdSetFrontFace(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdClearAttachments_reply(ctx->encoder, &args); + vn_encode_vkCmdSetFrontFace_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdResolveImage(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdSetPrimitiveTopology(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdResolveImage args; + struct vn_command_vkCmdSetPrimitiveTopology args; - if (!ctx->dispatch_vkCmdResolveImage) { + if (!ctx->dispatch_vkCmdSetPrimitiveTopology) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdResolveImage_args_temp(ctx->decoder, &args); + vn_decode_vkCmdSetPrimitiveTopology_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdResolveImage(ctx, &args); + ctx->dispatch_vkCmdSetPrimitiveTopology(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdResolveImage_reply(ctx->encoder, &args); + vn_encode_vkCmdSetPrimitiveTopology_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdSetEvent(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdSetViewportWithCount(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdSetEvent args; + struct vn_command_vkCmdSetViewportWithCount args; - if (!ctx->dispatch_vkCmdSetEvent) { + if (!ctx->dispatch_vkCmdSetViewportWithCount) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdSetEvent_args_temp(ctx->decoder, &args); + vn_decode_vkCmdSetViewportWithCount_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdSetEvent(ctx, &args); + ctx->dispatch_vkCmdSetViewportWithCount(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdSetEvent_reply(ctx->encoder, &args); + vn_encode_vkCmdSetViewportWithCount_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdResetEvent(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdSetScissorWithCount(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdResetEvent args; + struct vn_command_vkCmdSetScissorWithCount args; - if (!ctx->dispatch_vkCmdResetEvent) { + if (!ctx->dispatch_vkCmdSetScissorWithCount) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdResetEvent_args_temp(ctx->decoder, &args); + vn_decode_vkCmdSetScissorWithCount_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdResetEvent(ctx, &args); + ctx->dispatch_vkCmdSetScissorWithCount(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdResetEvent_reply(ctx->encoder, &args); + vn_encode_vkCmdSetScissorWithCount_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdWaitEvents(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdBindVertexBuffers2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdWaitEvents args; + struct vn_command_vkCmdBindVertexBuffers2 args; - if (!ctx->dispatch_vkCmdWaitEvents) { + if (!ctx->dispatch_vkCmdBindVertexBuffers2) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdWaitEvents_args_temp(ctx->decoder, &args); + vn_decode_vkCmdBindVertexBuffers2_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdWaitEvents(ctx, &args); + ctx->dispatch_vkCmdBindVertexBuffers2(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdWaitEvents_reply(ctx->encoder, &args); + vn_encode_vkCmdBindVertexBuffers2_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdPipelineBarrier(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdSetDepthTestEnable(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdPipelineBarrier args; + struct vn_command_vkCmdSetDepthTestEnable args; - if (!ctx->dispatch_vkCmdPipelineBarrier) { + if (!ctx->dispatch_vkCmdSetDepthTestEnable) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdPipelineBarrier_args_temp(ctx->decoder, &args); + vn_decode_vkCmdSetDepthTestEnable_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdPipelineBarrier(ctx, &args); + ctx->dispatch_vkCmdSetDepthTestEnable(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdPipelineBarrier_reply(ctx->encoder, &args); + vn_encode_vkCmdSetDepthTestEnable_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdBeginQuery(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdSetDepthWriteEnable(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdBeginQuery args; + struct vn_command_vkCmdSetDepthWriteEnable args; - if (!ctx->dispatch_vkCmdBeginQuery) { + if (!ctx->dispatch_vkCmdSetDepthWriteEnable) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdBeginQuery_args_temp(ctx->decoder, &args); + vn_decode_vkCmdSetDepthWriteEnable_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdBeginQuery(ctx, &args); + ctx->dispatch_vkCmdSetDepthWriteEnable(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdBeginQuery_reply(ctx->encoder, &args); + vn_encode_vkCmdSetDepthWriteEnable_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdEndQuery(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdSetDepthCompareOp(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdEndQuery args; + struct vn_command_vkCmdSetDepthCompareOp args; - if (!ctx->dispatch_vkCmdEndQuery) { + if (!ctx->dispatch_vkCmdSetDepthCompareOp) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdEndQuery_args_temp(ctx->decoder, &args); + vn_decode_vkCmdSetDepthCompareOp_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdEndQuery(ctx, &args); + ctx->dispatch_vkCmdSetDepthCompareOp(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdEndQuery_reply(ctx->encoder, &args); + vn_encode_vkCmdSetDepthCompareOp_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdResetQueryPool(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdSetDepthBoundsTestEnable(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdResetQueryPool args; + struct vn_command_vkCmdSetDepthBoundsTestEnable args; - if (!ctx->dispatch_vkCmdResetQueryPool) { + if (!ctx->dispatch_vkCmdSetDepthBoundsTestEnable) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdResetQueryPool_args_temp(ctx->decoder, &args); + vn_decode_vkCmdSetDepthBoundsTestEnable_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdResetQueryPool(ctx, &args); + ctx->dispatch_vkCmdSetDepthBoundsTestEnable(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdResetQueryPool_reply(ctx->encoder, &args); + vn_encode_vkCmdSetDepthBoundsTestEnable_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdWriteTimestamp(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdSetStencilTestEnable(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdWriteTimestamp args; + struct vn_command_vkCmdSetStencilTestEnable args; - if (!ctx->dispatch_vkCmdWriteTimestamp) { + if (!ctx->dispatch_vkCmdSetStencilTestEnable) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdWriteTimestamp_args_temp(ctx->decoder, &args); + vn_decode_vkCmdSetStencilTestEnable_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdWriteTimestamp(ctx, &args); + ctx->dispatch_vkCmdSetStencilTestEnable(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdWriteTimestamp_reply(ctx->encoder, &args); + vn_encode_vkCmdSetStencilTestEnable_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdCopyQueryPoolResults(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdSetStencilOp(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdCopyQueryPoolResults args; + struct vn_command_vkCmdSetStencilOp args; - if (!ctx->dispatch_vkCmdCopyQueryPoolResults) { + if (!ctx->dispatch_vkCmdSetStencilOp) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdCopyQueryPoolResults_args_temp(ctx->decoder, &args); + vn_decode_vkCmdSetStencilOp_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdCopyQueryPoolResults(ctx, &args); + ctx->dispatch_vkCmdSetStencilOp(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdCopyQueryPoolResults_reply(ctx->encoder, &args); + vn_encode_vkCmdSetStencilOp_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdPushConstants(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdSetPatchControlPointsEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdPushConstants args; + struct vn_command_vkCmdSetPatchControlPointsEXT args; - if (!ctx->dispatch_vkCmdPushConstants) { + if (!ctx->dispatch_vkCmdSetPatchControlPointsEXT) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdPushConstants_args_temp(ctx->decoder, &args); + vn_decode_vkCmdSetPatchControlPointsEXT_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdPushConstants(ctx, &args); + ctx->dispatch_vkCmdSetPatchControlPointsEXT(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdPushConstants_reply(ctx->encoder, &args); + vn_encode_vkCmdSetPatchControlPointsEXT_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdBeginRenderPass(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdSetRasterizerDiscardEnable(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdBeginRenderPass args; + struct vn_command_vkCmdSetRasterizerDiscardEnable args; - if (!ctx->dispatch_vkCmdBeginRenderPass) { + if (!ctx->dispatch_vkCmdSetRasterizerDiscardEnable) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdBeginRenderPass_args_temp(ctx->decoder, &args); + vn_decode_vkCmdSetRasterizerDiscardEnable_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdBeginRenderPass(ctx, &args); + ctx->dispatch_vkCmdSetRasterizerDiscardEnable(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdBeginRenderPass_reply(ctx->encoder, &args); + vn_encode_vkCmdSetRasterizerDiscardEnable_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdNextSubpass(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdSetDepthBiasEnable(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdNextSubpass args; + struct vn_command_vkCmdSetDepthBiasEnable args; - if (!ctx->dispatch_vkCmdNextSubpass) { + if (!ctx->dispatch_vkCmdSetDepthBiasEnable) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdNextSubpass_args_temp(ctx->decoder, &args); + vn_decode_vkCmdSetDepthBiasEnable_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdNextSubpass(ctx, &args); + ctx->dispatch_vkCmdSetDepthBiasEnable(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdNextSubpass_reply(ctx->encoder, &args); + vn_encode_vkCmdSetDepthBiasEnable_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdEndRenderPass(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdSetLogicOpEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdEndRenderPass args; + struct vn_command_vkCmdSetLogicOpEXT args; - if (!ctx->dispatch_vkCmdEndRenderPass) { + if (!ctx->dispatch_vkCmdSetLogicOpEXT) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdEndRenderPass_args_temp(ctx->decoder, &args); + vn_decode_vkCmdSetLogicOpEXT_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdEndRenderPass(ctx, &args); + ctx->dispatch_vkCmdSetLogicOpEXT(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdEndRenderPass_reply(ctx->encoder, &args); + vn_encode_vkCmdSetLogicOpEXT_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdExecuteCommands(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdSetPrimitiveRestartEnable(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdExecuteCommands args; + struct vn_command_vkCmdSetPrimitiveRestartEnable args; - if (!ctx->dispatch_vkCmdExecuteCommands) { + if (!ctx->dispatch_vkCmdSetPrimitiveRestartEnable) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdExecuteCommands_args_temp(ctx->decoder, &args); + vn_decode_vkCmdSetPrimitiveRestartEnable_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdExecuteCommands(ctx, &args); + ctx->dispatch_vkCmdSetPrimitiveRestartEnable(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdExecuteCommands_reply(ctx->encoder, &args); + vn_encode_vkCmdSetPrimitiveRestartEnable_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdSetDeviceMask(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdCopyBuffer2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdSetDeviceMask args; + struct vn_command_vkCmdCopyBuffer2 args; - if (!ctx->dispatch_vkCmdSetDeviceMask) { + if (!ctx->dispatch_vkCmdCopyBuffer2) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdSetDeviceMask_args_temp(ctx->decoder, &args); + vn_decode_vkCmdCopyBuffer2_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdSetDeviceMask(ctx, &args); + ctx->dispatch_vkCmdCopyBuffer2(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdSetDeviceMask_reply(ctx->encoder, &args); + vn_encode_vkCmdCopyBuffer2_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdDispatchBase(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdCopyImage2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdDispatchBase args; + struct vn_command_vkCmdCopyImage2 args; - if (!ctx->dispatch_vkCmdDispatchBase) { + if (!ctx->dispatch_vkCmdCopyImage2) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdDispatchBase_args_temp(ctx->decoder, &args); + vn_decode_vkCmdCopyImage2_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdDispatchBase(ctx, &args); + ctx->dispatch_vkCmdCopyImage2(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdDispatchBase_reply(ctx->encoder, &args); + vn_encode_vkCmdCopyImage2_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdBeginRenderPass2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdBlitImage2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdBeginRenderPass2 args; + struct vn_command_vkCmdBlitImage2 args; - if (!ctx->dispatch_vkCmdBeginRenderPass2) { + if (!ctx->dispatch_vkCmdBlitImage2) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdBeginRenderPass2_args_temp(ctx->decoder, &args); + vn_decode_vkCmdBlitImage2_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdBeginRenderPass2(ctx, &args); + ctx->dispatch_vkCmdBlitImage2(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdBeginRenderPass2_reply(ctx->encoder, &args); + vn_encode_vkCmdBlitImage2_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdNextSubpass2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdCopyBufferToImage2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdNextSubpass2 args; + struct vn_command_vkCmdCopyBufferToImage2 args; - if (!ctx->dispatch_vkCmdNextSubpass2) { + if (!ctx->dispatch_vkCmdCopyBufferToImage2) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdNextSubpass2_args_temp(ctx->decoder, &args); + vn_decode_vkCmdCopyBufferToImage2_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdNextSubpass2(ctx, &args); + ctx->dispatch_vkCmdCopyBufferToImage2(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdNextSubpass2_reply(ctx->encoder, &args); + vn_encode_vkCmdCopyBufferToImage2_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdEndRenderPass2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdCopyImageToBuffer2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdEndRenderPass2 args; + struct vn_command_vkCmdCopyImageToBuffer2 args; - if (!ctx->dispatch_vkCmdEndRenderPass2) { + if (!ctx->dispatch_vkCmdCopyImageToBuffer2) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdEndRenderPass2_args_temp(ctx->decoder, &args); + vn_decode_vkCmdCopyImageToBuffer2_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdEndRenderPass2(ctx, &args); + ctx->dispatch_vkCmdCopyImageToBuffer2(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdEndRenderPass2_reply(ctx->encoder, &args); + vn_encode_vkCmdCopyImageToBuffer2_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdDrawIndirectCount(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdResolveImage2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdDrawIndirectCount args; + struct vn_command_vkCmdResolveImage2 args; - if (!ctx->dispatch_vkCmdDrawIndirectCount) { + if (!ctx->dispatch_vkCmdResolveImage2) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdDrawIndirectCount_args_temp(ctx->decoder, &args); + vn_decode_vkCmdResolveImage2_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdDrawIndirectCount(ctx, &args); + ctx->dispatch_vkCmdResolveImage2(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdDrawIndirectCount_reply(ctx->encoder, &args); + vn_encode_vkCmdResolveImage2_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdDrawIndexedIndirectCount(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdSetEvent2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdDrawIndexedIndirectCount args; + struct vn_command_vkCmdSetEvent2 args; - if (!ctx->dispatch_vkCmdDrawIndexedIndirectCount) { + if (!ctx->dispatch_vkCmdSetEvent2) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdDrawIndexedIndirectCount_args_temp(ctx->decoder, &args); + vn_decode_vkCmdSetEvent2_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdDrawIndexedIndirectCount(ctx, &args); + ctx->dispatch_vkCmdSetEvent2(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdDrawIndexedIndirectCount_reply(ctx->encoder, &args); + vn_encode_vkCmdSetEvent2_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdBindTransformFeedbackBuffersEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdResetEvent2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdBindTransformFeedbackBuffersEXT args; + struct vn_command_vkCmdResetEvent2 args; - if (!ctx->dispatch_vkCmdBindTransformFeedbackBuffersEXT) { + if (!ctx->dispatch_vkCmdResetEvent2) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdBindTransformFeedbackBuffersEXT_args_temp(ctx->decoder, &args); + vn_decode_vkCmdResetEvent2_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdBindTransformFeedbackBuffersEXT(ctx, &args); + ctx->dispatch_vkCmdResetEvent2(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdBindTransformFeedbackBuffersEXT_reply(ctx->encoder, &args); + vn_encode_vkCmdResetEvent2_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdBeginTransformFeedbackEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdWaitEvents2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdBeginTransformFeedbackEXT args; + struct vn_command_vkCmdWaitEvents2 args; - if (!ctx->dispatch_vkCmdBeginTransformFeedbackEXT) { + if (!ctx->dispatch_vkCmdWaitEvents2) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdBeginTransformFeedbackEXT_args_temp(ctx->decoder, &args); + vn_decode_vkCmdWaitEvents2_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdBeginTransformFeedbackEXT(ctx, &args); + ctx->dispatch_vkCmdWaitEvents2(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdBeginTransformFeedbackEXT_reply(ctx->encoder, &args); + vn_encode_vkCmdWaitEvents2_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdEndTransformFeedbackEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdPipelineBarrier2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdEndTransformFeedbackEXT args; + struct vn_command_vkCmdPipelineBarrier2 args; - if (!ctx->dispatch_vkCmdEndTransformFeedbackEXT) { + if (!ctx->dispatch_vkCmdPipelineBarrier2) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdEndTransformFeedbackEXT_args_temp(ctx->decoder, &args); + vn_decode_vkCmdPipelineBarrier2_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdEndTransformFeedbackEXT(ctx, &args); + ctx->dispatch_vkCmdPipelineBarrier2(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdEndTransformFeedbackEXT_reply(ctx->encoder, &args); + vn_encode_vkCmdPipelineBarrier2_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdBeginQueryIndexedEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdWriteTimestamp2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdBeginQueryIndexedEXT args; + struct vn_command_vkCmdWriteTimestamp2 args; - if (!ctx->dispatch_vkCmdBeginQueryIndexedEXT) { + if (!ctx->dispatch_vkCmdWriteTimestamp2) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdBeginQueryIndexedEXT_args_temp(ctx->decoder, &args); + vn_decode_vkCmdWriteTimestamp2_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdBeginQueryIndexedEXT(ctx, &args); + ctx->dispatch_vkCmdWriteTimestamp2(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdBeginQueryIndexedEXT_reply(ctx->encoder, &args); + vn_encode_vkCmdWriteTimestamp2_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdEndQueryIndexedEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdBeginRendering(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdEndQueryIndexedEXT args; + struct vn_command_vkCmdBeginRendering args; - if (!ctx->dispatch_vkCmdEndQueryIndexedEXT) { + if (!ctx->dispatch_vkCmdBeginRendering) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdEndQueryIndexedEXT_args_temp(ctx->decoder, &args); + vn_decode_vkCmdBeginRendering_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdEndQueryIndexedEXT(ctx, &args); + ctx->dispatch_vkCmdBeginRendering(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdEndQueryIndexedEXT_reply(ctx->encoder, &args); + vn_encode_vkCmdBeginRendering_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } -static inline void vn_dispatch_vkCmdDrawIndirectByteCountEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +static inline void vn_dispatch_vkCmdEndRendering(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { - struct vn_command_vkCmdDrawIndirectByteCountEXT args; + struct vn_command_vkCmdEndRendering args; - if (!ctx->dispatch_vkCmdDrawIndirectByteCountEXT) { + if (!ctx->dispatch_vkCmdEndRendering) { vn_cs_decoder_set_fatal(ctx->decoder); return; } - vn_decode_vkCmdDrawIndirectByteCountEXT_args_temp(ctx->decoder, &args); + vn_decode_vkCmdEndRendering_args_temp(ctx->decoder, &args); if (!args.commandBuffer) { vn_cs_decoder_set_fatal(ctx->decoder); return; } if (!vn_cs_decoder_get_fatal(ctx->decoder)) - ctx->dispatch_vkCmdDrawIndirectByteCountEXT(ctx, &args); + ctx->dispatch_vkCmdEndRendering(ctx, &args); if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) - vn_encode_vkCmdDrawIndirectByteCountEXT_reply(ctx->encoder, &args); + vn_encode_vkCmdEndRendering_reply(ctx->encoder, &args); vn_cs_decoder_reset_temp_pool(ctx->decoder); } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_defines.h b/src/venus/venus-protocol/vn_protocol_renderer_defines.h index a2410e4..3eac7b8 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_defines.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_defines.h @@ -244,6 +244,80 @@ typedef enum VkCommandTypeEXT { VK_COMMAND_TYPE_vkGetBufferOpaqueCaptureAddressKHR_EXT = 176, VK_COMMAND_TYPE_vkGetDeviceMemoryOpaqueCaptureAddress_EXT = 177, VK_COMMAND_TYPE_vkGetDeviceMemoryOpaqueCaptureAddressKHR_EXT = 177, + VK_COMMAND_TYPE_vkGetPhysicalDeviceToolProperties_EXT = 196, + VK_COMMAND_TYPE_vkGetPhysicalDeviceToolPropertiesEXT_EXT = 196, + VK_COMMAND_TYPE_vkCreatePrivateDataSlot_EXT = 197, + VK_COMMAND_TYPE_vkCreatePrivateDataSlotEXT_EXT = 197, + VK_COMMAND_TYPE_vkDestroyPrivateDataSlot_EXT = 198, + VK_COMMAND_TYPE_vkDestroyPrivateDataSlotEXT_EXT = 198, + VK_COMMAND_TYPE_vkSetPrivateData_EXT = 199, + VK_COMMAND_TYPE_vkSetPrivateDataEXT_EXT = 199, + VK_COMMAND_TYPE_vkGetPrivateData_EXT = 200, + VK_COMMAND_TYPE_vkGetPrivateDataEXT_EXT = 200, + VK_COMMAND_TYPE_vkCmdSetEvent2_EXT = 201, + VK_COMMAND_TYPE_vkCmdSetEvent2KHR_EXT = 201, + VK_COMMAND_TYPE_vkCmdResetEvent2_EXT = 202, + VK_COMMAND_TYPE_vkCmdResetEvent2KHR_EXT = 202, + VK_COMMAND_TYPE_vkCmdWaitEvents2_EXT = 203, + VK_COMMAND_TYPE_vkCmdWaitEvents2KHR_EXT = 203, + VK_COMMAND_TYPE_vkCmdPipelineBarrier2_EXT = 204, + VK_COMMAND_TYPE_vkCmdPipelineBarrier2KHR_EXT = 204, + VK_COMMAND_TYPE_vkCmdWriteTimestamp2_EXT = 205, + VK_COMMAND_TYPE_vkCmdWriteTimestamp2KHR_EXT = 205, + VK_COMMAND_TYPE_vkQueueSubmit2_EXT = 206, + VK_COMMAND_TYPE_vkQueueSubmit2KHR_EXT = 206, + VK_COMMAND_TYPE_vkCmdCopyBuffer2_EXT = 207, + VK_COMMAND_TYPE_vkCmdCopyBuffer2KHR_EXT = 207, + VK_COMMAND_TYPE_vkCmdCopyImage2_EXT = 208, + VK_COMMAND_TYPE_vkCmdCopyImage2KHR_EXT = 208, + VK_COMMAND_TYPE_vkCmdCopyBufferToImage2_EXT = 209, + VK_COMMAND_TYPE_vkCmdCopyBufferToImage2KHR_EXT = 209, + VK_COMMAND_TYPE_vkCmdCopyImageToBuffer2_EXT = 210, + VK_COMMAND_TYPE_vkCmdCopyImageToBuffer2KHR_EXT = 210, + VK_COMMAND_TYPE_vkCmdBlitImage2_EXT = 211, + VK_COMMAND_TYPE_vkCmdBlitImage2KHR_EXT = 211, + VK_COMMAND_TYPE_vkCmdResolveImage2_EXT = 212, + VK_COMMAND_TYPE_vkCmdResolveImage2KHR_EXT = 212, + VK_COMMAND_TYPE_vkCmdBeginRendering_EXT = 213, + VK_COMMAND_TYPE_vkCmdBeginRenderingKHR_EXT = 213, + VK_COMMAND_TYPE_vkCmdEndRendering_EXT = 214, + VK_COMMAND_TYPE_vkCmdEndRenderingKHR_EXT = 214, + VK_COMMAND_TYPE_vkCmdSetCullMode_EXT = 215, + VK_COMMAND_TYPE_vkCmdSetCullModeEXT_EXT = 215, + VK_COMMAND_TYPE_vkCmdSetFrontFace_EXT = 216, + VK_COMMAND_TYPE_vkCmdSetFrontFaceEXT_EXT = 216, + VK_COMMAND_TYPE_vkCmdSetPrimitiveTopology_EXT = 217, + VK_COMMAND_TYPE_vkCmdSetPrimitiveTopologyEXT_EXT = 217, + VK_COMMAND_TYPE_vkCmdSetViewportWithCount_EXT = 218, + VK_COMMAND_TYPE_vkCmdSetViewportWithCountEXT_EXT = 218, + VK_COMMAND_TYPE_vkCmdSetScissorWithCount_EXT = 219, + VK_COMMAND_TYPE_vkCmdSetScissorWithCountEXT_EXT = 219, + VK_COMMAND_TYPE_vkCmdBindVertexBuffers2_EXT = 220, + VK_COMMAND_TYPE_vkCmdBindVertexBuffers2EXT_EXT = 220, + VK_COMMAND_TYPE_vkCmdSetDepthTestEnable_EXT = 221, + VK_COMMAND_TYPE_vkCmdSetDepthTestEnableEXT_EXT = 221, + VK_COMMAND_TYPE_vkCmdSetDepthWriteEnable_EXT = 222, + VK_COMMAND_TYPE_vkCmdSetDepthWriteEnableEXT_EXT = 222, + VK_COMMAND_TYPE_vkCmdSetDepthCompareOp_EXT = 223, + VK_COMMAND_TYPE_vkCmdSetDepthCompareOpEXT_EXT = 223, + VK_COMMAND_TYPE_vkCmdSetDepthBoundsTestEnable_EXT = 224, + VK_COMMAND_TYPE_vkCmdSetDepthBoundsTestEnableEXT_EXT = 224, + VK_COMMAND_TYPE_vkCmdSetStencilTestEnable_EXT = 225, + VK_COMMAND_TYPE_vkCmdSetStencilTestEnableEXT_EXT = 225, + VK_COMMAND_TYPE_vkCmdSetStencilOp_EXT = 226, + VK_COMMAND_TYPE_vkCmdSetStencilOpEXT_EXT = 226, + VK_COMMAND_TYPE_vkCmdSetRasterizerDiscardEnable_EXT = 227, + VK_COMMAND_TYPE_vkCmdSetRasterizerDiscardEnableEXT_EXT = 227, + VK_COMMAND_TYPE_vkCmdSetDepthBiasEnable_EXT = 228, + VK_COMMAND_TYPE_vkCmdSetDepthBiasEnableEXT_EXT = 228, + VK_COMMAND_TYPE_vkCmdSetPrimitiveRestartEnable_EXT = 229, + VK_COMMAND_TYPE_vkCmdSetPrimitiveRestartEnableEXT_EXT = 229, + VK_COMMAND_TYPE_vkGetDeviceBufferMemoryRequirements_EXT = 230, + VK_COMMAND_TYPE_vkGetDeviceBufferMemoryRequirementsKHR_EXT = 230, + VK_COMMAND_TYPE_vkGetDeviceImageMemoryRequirements_EXT = 231, + VK_COMMAND_TYPE_vkGetDeviceImageMemoryRequirementsKHR_EXT = 231, + VK_COMMAND_TYPE_vkGetDeviceImageSparseMemoryRequirements_EXT = 232, + VK_COMMAND_TYPE_vkGetDeviceImageSparseMemoryRequirementsKHR_EXT = 232, VK_COMMAND_TYPE_vkCmdBindTransformFeedbackBuffersEXT_EXT = 181, VK_COMMAND_TYPE_vkCmdBeginTransformFeedbackEXT_EXT = 182, VK_COMMAND_TYPE_vkCmdEndTransformFeedbackEXT_EXT = 183, @@ -253,6 +327,8 @@ typedef enum VkCommandTypeEXT { VK_COMMAND_TYPE_vkGetMemoryFdKHR_EXT = 193, VK_COMMAND_TYPE_vkGetMemoryFdPropertiesKHR_EXT = 194, VK_COMMAND_TYPE_vkGetImageDrmFormatModifierPropertiesEXT_EXT = 187, + VK_COMMAND_TYPE_vkCmdSetPatchControlPointsEXT_EXT = 233, + VK_COMMAND_TYPE_vkCmdSetLogicOpEXT_EXT = 234, VK_COMMAND_TYPE_vkSetReplyCommandStreamMESA_EXT = 178, VK_COMMAND_TYPE_vkSeekReplyCommandStreamMESA_EXT = 179, VK_COMMAND_TYPE_vkExecuteCommandStreamsMESA_EXT = 180, @@ -1558,6 +1634,25 @@ struct vn_command_vkGetImageSparseMemoryRequirements2 { VkSparseImageMemoryRequirements2* pSparseMemoryRequirements; }; +struct vn_command_vkGetDeviceBufferMemoryRequirements { + VkDevice device; + const VkDeviceBufferMemoryRequirements* pInfo; + VkMemoryRequirements2* pMemoryRequirements; +}; + +struct vn_command_vkGetDeviceImageMemoryRequirements { + VkDevice device; + const VkDeviceImageMemoryRequirements* pInfo; + VkMemoryRequirements2* pMemoryRequirements; +}; + +struct vn_command_vkGetDeviceImageSparseMemoryRequirements { + VkDevice device; + const VkDeviceImageMemoryRequirements* pInfo; + uint32_t* pSparseMemoryRequirementCount; + VkSparseImageMemoryRequirements2* pSparseMemoryRequirements; +}; + struct vn_command_vkCreateSamplerYcbcrConversion { VkDevice device; const VkSamplerYcbcrConversionCreateInfo* pCreateInfo; @@ -1733,6 +1828,222 @@ struct vn_command_vkGetDeviceMemoryOpaqueCaptureAddress { uint64_t ret; }; +struct vn_command_vkGetPhysicalDeviceToolProperties { + VkPhysicalDevice physicalDevice; + uint32_t* pToolCount; + VkPhysicalDeviceToolProperties* pToolProperties; + + VkResult ret; +}; + +struct vn_command_vkCmdSetCullMode { + VkCommandBuffer commandBuffer; + VkCullModeFlags cullMode; +}; + +struct vn_command_vkCmdSetFrontFace { + VkCommandBuffer commandBuffer; + VkFrontFace frontFace; +}; + +struct vn_command_vkCmdSetPrimitiveTopology { + VkCommandBuffer commandBuffer; + VkPrimitiveTopology primitiveTopology; +}; + +struct vn_command_vkCmdSetViewportWithCount { + VkCommandBuffer commandBuffer; + uint32_t viewportCount; + const VkViewport* pViewports; +}; + +struct vn_command_vkCmdSetScissorWithCount { + VkCommandBuffer commandBuffer; + uint32_t scissorCount; + const VkRect2D* pScissors; +}; + +struct vn_command_vkCmdBindVertexBuffers2 { + VkCommandBuffer commandBuffer; + uint32_t firstBinding; + uint32_t bindingCount; + const VkBuffer* pBuffers; + const VkDeviceSize* pOffsets; + const VkDeviceSize* pSizes; + const VkDeviceSize* pStrides; +}; + +struct vn_command_vkCmdSetDepthTestEnable { + VkCommandBuffer commandBuffer; + VkBool32 depthTestEnable; +}; + +struct vn_command_vkCmdSetDepthWriteEnable { + VkCommandBuffer commandBuffer; + VkBool32 depthWriteEnable; +}; + +struct vn_command_vkCmdSetDepthCompareOp { + VkCommandBuffer commandBuffer; + VkCompareOp depthCompareOp; +}; + +struct vn_command_vkCmdSetDepthBoundsTestEnable { + VkCommandBuffer commandBuffer; + VkBool32 depthBoundsTestEnable; +}; + +struct vn_command_vkCmdSetStencilTestEnable { + VkCommandBuffer commandBuffer; + VkBool32 stencilTestEnable; +}; + +struct vn_command_vkCmdSetStencilOp { + VkCommandBuffer commandBuffer; + VkStencilFaceFlags faceMask; + VkStencilOp failOp; + VkStencilOp passOp; + VkStencilOp depthFailOp; + VkCompareOp compareOp; +}; + +struct vn_command_vkCmdSetPatchControlPointsEXT { + VkCommandBuffer commandBuffer; + uint32_t patchControlPoints; +}; + +struct vn_command_vkCmdSetRasterizerDiscardEnable { + VkCommandBuffer commandBuffer; + VkBool32 rasterizerDiscardEnable; +}; + +struct vn_command_vkCmdSetDepthBiasEnable { + VkCommandBuffer commandBuffer; + VkBool32 depthBiasEnable; +}; + +struct vn_command_vkCmdSetLogicOpEXT { + VkCommandBuffer commandBuffer; + VkLogicOp logicOp; +}; + +struct vn_command_vkCmdSetPrimitiveRestartEnable { + VkCommandBuffer commandBuffer; + VkBool32 primitiveRestartEnable; +}; + +struct vn_command_vkCreatePrivateDataSlot { + VkDevice device; + const VkPrivateDataSlotCreateInfo* pCreateInfo; + const VkAllocationCallbacks* pAllocator; + VkPrivateDataSlot* pPrivateDataSlot; + + VkResult ret; +}; + +struct vn_command_vkDestroyPrivateDataSlot { + VkDevice device; + VkPrivateDataSlot privateDataSlot; + const VkAllocationCallbacks* pAllocator; +}; + +struct vn_command_vkSetPrivateData { + VkDevice device; + VkObjectType objectType; + uint64_t objectHandle; + VkPrivateDataSlot privateDataSlot; + uint64_t data; + + VkResult ret; +}; + +struct vn_command_vkGetPrivateData { + VkDevice device; + VkObjectType objectType; + uint64_t objectHandle; + VkPrivateDataSlot privateDataSlot; + uint64_t* pData; +}; + +struct vn_command_vkCmdCopyBuffer2 { + VkCommandBuffer commandBuffer; + const VkCopyBufferInfo2* pCopyBufferInfo; +}; + +struct vn_command_vkCmdCopyImage2 { + VkCommandBuffer commandBuffer; + const VkCopyImageInfo2* pCopyImageInfo; +}; + +struct vn_command_vkCmdBlitImage2 { + VkCommandBuffer commandBuffer; + const VkBlitImageInfo2* pBlitImageInfo; +}; + +struct vn_command_vkCmdCopyBufferToImage2 { + VkCommandBuffer commandBuffer; + const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo; +}; + +struct vn_command_vkCmdCopyImageToBuffer2 { + VkCommandBuffer commandBuffer; + const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo; +}; + +struct vn_command_vkCmdResolveImage2 { + VkCommandBuffer commandBuffer; + const VkResolveImageInfo2* pResolveImageInfo; +}; + +struct vn_command_vkCmdSetEvent2 { + VkCommandBuffer commandBuffer; + VkEvent event; + const VkDependencyInfo* pDependencyInfo; +}; + +struct vn_command_vkCmdResetEvent2 { + VkCommandBuffer commandBuffer; + VkEvent event; + VkPipelineStageFlags2 stageMask; +}; + +struct vn_command_vkCmdWaitEvents2 { + VkCommandBuffer commandBuffer; + uint32_t eventCount; + const VkEvent* pEvents; + const VkDependencyInfo* pDependencyInfos; +}; + +struct vn_command_vkCmdPipelineBarrier2 { + VkCommandBuffer commandBuffer; + const VkDependencyInfo* pDependencyInfo; +}; + +struct vn_command_vkQueueSubmit2 { + VkQueue queue; + uint32_t submitCount; + const VkSubmitInfo2* pSubmits; + VkFence fence; + + VkResult ret; +}; + +struct vn_command_vkCmdWriteTimestamp2 { + VkCommandBuffer commandBuffer; + VkPipelineStageFlags2 stage; + VkQueryPool queryPool; + uint32_t query; +}; + +struct vn_command_vkCmdBeginRendering { + VkCommandBuffer commandBuffer; + const VkRenderingInfo* pRenderingInfo; +}; + +struct vn_command_vkCmdEndRendering { + VkCommandBuffer commandBuffer; +}; + struct vn_command_vkSetReplyCommandStreamMESA { const VkCommandStreamDescriptionMESA* pStream; }; @@ -1955,6 +2266,9 @@ struct vn_dispatch_context { void (*dispatch_vkGetBufferMemoryRequirements2)(struct vn_dispatch_context *ctx, struct vn_command_vkGetBufferMemoryRequirements2 *args); void (*dispatch_vkGetImageMemoryRequirements2)(struct vn_dispatch_context *ctx, struct vn_command_vkGetImageMemoryRequirements2 *args); void (*dispatch_vkGetImageSparseMemoryRequirements2)(struct vn_dispatch_context *ctx, struct vn_command_vkGetImageSparseMemoryRequirements2 *args); + void (*dispatch_vkGetDeviceBufferMemoryRequirements)(struct vn_dispatch_context *ctx, struct vn_command_vkGetDeviceBufferMemoryRequirements *args); + void (*dispatch_vkGetDeviceImageMemoryRequirements)(struct vn_dispatch_context *ctx, struct vn_command_vkGetDeviceImageMemoryRequirements *args); + void (*dispatch_vkGetDeviceImageSparseMemoryRequirements)(struct vn_dispatch_context *ctx, struct vn_command_vkGetDeviceImageSparseMemoryRequirements *args); void (*dispatch_vkCreateSamplerYcbcrConversion)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateSamplerYcbcrConversion *args); void (*dispatch_vkDestroySamplerYcbcrConversion)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroySamplerYcbcrConversion *args); void (*dispatch_vkGetDeviceQueue2)(struct vn_dispatch_context *ctx, struct vn_command_vkGetDeviceQueue2 *args); @@ -1978,6 +2292,42 @@ struct vn_dispatch_context { void (*dispatch_vkGetBufferOpaqueCaptureAddress)(struct vn_dispatch_context *ctx, struct vn_command_vkGetBufferOpaqueCaptureAddress *args); void (*dispatch_vkGetBufferDeviceAddress)(struct vn_dispatch_context *ctx, struct vn_command_vkGetBufferDeviceAddress *args); void (*dispatch_vkGetDeviceMemoryOpaqueCaptureAddress)(struct vn_dispatch_context *ctx, struct vn_command_vkGetDeviceMemoryOpaqueCaptureAddress *args); + void (*dispatch_vkGetPhysicalDeviceToolProperties)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPhysicalDeviceToolProperties *args); + void (*dispatch_vkCmdSetCullMode)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetCullMode *args); + void (*dispatch_vkCmdSetFrontFace)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetFrontFace *args); + void (*dispatch_vkCmdSetPrimitiveTopology)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetPrimitiveTopology *args); + void (*dispatch_vkCmdSetViewportWithCount)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetViewportWithCount *args); + void (*dispatch_vkCmdSetScissorWithCount)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetScissorWithCount *args); + void (*dispatch_vkCmdBindVertexBuffers2)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdBindVertexBuffers2 *args); + void (*dispatch_vkCmdSetDepthTestEnable)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetDepthTestEnable *args); + void (*dispatch_vkCmdSetDepthWriteEnable)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetDepthWriteEnable *args); + void (*dispatch_vkCmdSetDepthCompareOp)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetDepthCompareOp *args); + void (*dispatch_vkCmdSetDepthBoundsTestEnable)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetDepthBoundsTestEnable *args); + void (*dispatch_vkCmdSetStencilTestEnable)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetStencilTestEnable *args); + void (*dispatch_vkCmdSetStencilOp)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetStencilOp *args); + void (*dispatch_vkCmdSetPatchControlPointsEXT)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetPatchControlPointsEXT *args); + void (*dispatch_vkCmdSetRasterizerDiscardEnable)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetRasterizerDiscardEnable *args); + void (*dispatch_vkCmdSetDepthBiasEnable)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetDepthBiasEnable *args); + void (*dispatch_vkCmdSetLogicOpEXT)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetLogicOpEXT *args); + void (*dispatch_vkCmdSetPrimitiveRestartEnable)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetPrimitiveRestartEnable *args); + void (*dispatch_vkCreatePrivateDataSlot)(struct vn_dispatch_context *ctx, struct vn_command_vkCreatePrivateDataSlot *args); + void (*dispatch_vkDestroyPrivateDataSlot)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyPrivateDataSlot *args); + void (*dispatch_vkSetPrivateData)(struct vn_dispatch_context *ctx, struct vn_command_vkSetPrivateData *args); + void (*dispatch_vkGetPrivateData)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPrivateData *args); + void (*dispatch_vkCmdCopyBuffer2)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdCopyBuffer2 *args); + void (*dispatch_vkCmdCopyImage2)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdCopyImage2 *args); + void (*dispatch_vkCmdBlitImage2)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdBlitImage2 *args); + void (*dispatch_vkCmdCopyBufferToImage2)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdCopyBufferToImage2 *args); + void (*dispatch_vkCmdCopyImageToBuffer2)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdCopyImageToBuffer2 *args); + void (*dispatch_vkCmdResolveImage2)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdResolveImage2 *args); + void (*dispatch_vkCmdSetEvent2)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetEvent2 *args); + void (*dispatch_vkCmdResetEvent2)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdResetEvent2 *args); + void (*dispatch_vkCmdWaitEvents2)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdWaitEvents2 *args); + void (*dispatch_vkCmdPipelineBarrier2)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdPipelineBarrier2 *args); + void (*dispatch_vkQueueSubmit2)(struct vn_dispatch_context *ctx, struct vn_command_vkQueueSubmit2 *args); + void (*dispatch_vkCmdWriteTimestamp2)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdWriteTimestamp2 *args); + void (*dispatch_vkCmdBeginRendering)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdBeginRendering *args); + void (*dispatch_vkCmdEndRendering)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdEndRendering *args); void (*dispatch_vkSetReplyCommandStreamMESA)(struct vn_dispatch_context *ctx, struct vn_command_vkSetReplyCommandStreamMESA *args); void (*dispatch_vkSeekReplyCommandStreamMESA)(struct vn_dispatch_context *ctx, struct vn_command_vkSeekReplyCommandStreamMESA *args); void (*dispatch_vkExecuteCommandStreamsMESA)(struct vn_dispatch_context *ctx, struct vn_command_vkExecuteCommandStreamsMESA *args); diff --git a/src/venus/venus-protocol/vn_protocol_renderer_descriptor_pool.h b/src/venus/venus-protocol/vn_protocol_renderer_descriptor_pool.h index f2656bf..73fd4e0 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_descriptor_pool.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_descriptor_pool.h @@ -30,10 +30,10 @@ vn_replace_VkDescriptorPoolSize_handle(VkDescriptorPoolSize *val) /* skip val->descriptorCount */ } -/* struct VkDescriptorPoolCreateInfo chain */ +/* struct VkDescriptorPoolInlineUniformBlockCreateInfo chain */ static inline void * -vn_decode_VkDescriptorPoolCreateInfo_pnext_temp(struct vn_cs_decoder *dec) +vn_decode_VkDescriptorPoolInlineUniformBlockCreateInfo_pnext_temp(struct vn_cs_decoder *dec) { /* no known/supported struct */ if (vn_decode_simple_pointer(dec)) @@ -41,6 +41,83 @@ vn_decode_VkDescriptorPoolCreateInfo_pnext_temp(struct vn_cs_decoder *dec) return NULL; } +static inline void +vn_decode_VkDescriptorPoolInlineUniformBlockCreateInfo_self_temp(struct vn_cs_decoder *dec, VkDescriptorPoolInlineUniformBlockCreateInfo *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_uint32_t(dec, &val->maxInlineUniformBlockBindings); +} + +static inline void +vn_decode_VkDescriptorPoolInlineUniformBlockCreateInfo_temp(struct vn_cs_decoder *dec, VkDescriptorPoolInlineUniformBlockCreateInfo *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkDescriptorPoolInlineUniformBlockCreateInfo_pnext_temp(dec); + vn_decode_VkDescriptorPoolInlineUniformBlockCreateInfo_self_temp(dec, val); +} + +static inline void +vn_replace_VkDescriptorPoolInlineUniformBlockCreateInfo_handle_self(VkDescriptorPoolInlineUniformBlockCreateInfo *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->maxInlineUniformBlockBindings */ +} + +static inline void +vn_replace_VkDescriptorPoolInlineUniformBlockCreateInfo_handle(VkDescriptorPoolInlineUniformBlockCreateInfo *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: + vn_replace_VkDescriptorPoolInlineUniformBlockCreateInfo_handle_self((VkDescriptorPoolInlineUniformBlockCreateInfo *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkDescriptorPoolCreateInfo chain */ + +static inline void * +vn_decode_VkDescriptorPoolCreateInfo_pnext_temp(struct vn_cs_decoder *dec) +{ + VkBaseOutStructure *pnext; + VkStructureType stype; + + if (!vn_decode_simple_pointer(dec)) + return NULL; + + vn_decode_VkStructureType(dec, &stype); + switch ((int32_t)stype) { + case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkDescriptorPoolInlineUniformBlockCreateInfo)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDescriptorPoolCreateInfo_pnext_temp(dec); + vn_decode_VkDescriptorPoolInlineUniformBlockCreateInfo_self_temp(dec, (VkDescriptorPoolInlineUniformBlockCreateInfo *)pnext); + } + break; + default: + /* unexpected struct */ + pnext = NULL; + vn_cs_decoder_set_fatal(dec); + break; + } + + return pnext; +} + static inline void vn_decode_VkDescriptorPoolCreateInfo_self_temp(struct vn_cs_decoder *dec, VkDescriptorPoolCreateInfo *val) { @@ -97,6 +174,9 @@ vn_replace_VkDescriptorPoolCreateInfo_handle(VkDescriptorPoolCreateInfo *val) case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO: vn_replace_VkDescriptorPoolCreateInfo_handle_self((VkDescriptorPoolCreateInfo *)pnext); break; + case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: + vn_replace_VkDescriptorPoolInlineUniformBlockCreateInfo_handle_self((VkDescriptorPoolInlineUniformBlockCreateInfo *)pnext); + break; default: /* ignore unknown/unsupported struct */ break; diff --git a/src/venus/venus-protocol/vn_protocol_renderer_descriptor_set.h b/src/venus/venus-protocol/vn_protocol_renderer_descriptor_set.h index 9b7a164..8630f03 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_descriptor_set.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_descriptor_set.h @@ -219,10 +219,10 @@ vn_replace_VkDescriptorBufferInfo_handle(VkDescriptorBufferInfo *val) /* skip val->range */ } -/* struct VkWriteDescriptorSet chain */ +/* struct VkWriteDescriptorSetInlineUniformBlock chain */ static inline void * -vn_decode_VkWriteDescriptorSet_pnext_temp(struct vn_cs_decoder *dec) +vn_decode_VkWriteDescriptorSetInlineUniformBlock_pnext_temp(struct vn_cs_decoder *dec) { /* no known/supported struct */ if (vn_decode_simple_pointer(dec)) @@ -230,6 +230,93 @@ vn_decode_VkWriteDescriptorSet_pnext_temp(struct vn_cs_decoder *dec) return NULL; } +static inline void +vn_decode_VkWriteDescriptorSetInlineUniformBlock_self_temp(struct vn_cs_decoder *dec, VkWriteDescriptorSetInlineUniformBlock *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_uint32_t(dec, &val->dataSize); + if (vn_peek_array_size(dec)) { + const size_t array_size = vn_decode_array_size(dec, val->dataSize); + val->pData = vn_cs_decoder_alloc_temp(dec, array_size); + if (!val->pData) return; + vn_decode_blob_array(dec, (void *)val->pData, array_size); + } else { + vn_decode_array_size(dec, val->dataSize); + val->pData = NULL; + } +} + +static inline void +vn_decode_VkWriteDescriptorSetInlineUniformBlock_temp(struct vn_cs_decoder *dec, VkWriteDescriptorSetInlineUniformBlock *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkWriteDescriptorSetInlineUniformBlock_pnext_temp(dec); + vn_decode_VkWriteDescriptorSetInlineUniformBlock_self_temp(dec, val); +} + +static inline void +vn_replace_VkWriteDescriptorSetInlineUniformBlock_handle_self(VkWriteDescriptorSetInlineUniformBlock *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->dataSize */ + /* skip val->pData */ +} + +static inline void +vn_replace_VkWriteDescriptorSetInlineUniformBlock_handle(VkWriteDescriptorSetInlineUniformBlock *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: + vn_replace_VkWriteDescriptorSetInlineUniformBlock_handle_self((VkWriteDescriptorSetInlineUniformBlock *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkWriteDescriptorSet chain */ + +static inline void * +vn_decode_VkWriteDescriptorSet_pnext_temp(struct vn_cs_decoder *dec) +{ + VkBaseOutStructure *pnext; + VkStructureType stype; + + if (!vn_decode_simple_pointer(dec)) + return NULL; + + vn_decode_VkStructureType(dec, &stype); + switch ((int32_t)stype) { + case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkWriteDescriptorSetInlineUniformBlock)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkWriteDescriptorSet_pnext_temp(dec); + vn_decode_VkWriteDescriptorSetInlineUniformBlock_self_temp(dec, (VkWriteDescriptorSetInlineUniformBlock *)pnext); + } + break; + default: + /* unexpected struct */ + pnext = NULL; + vn_cs_decoder_set_fatal(dec); + break; + } + + return pnext; +} + static inline void vn_decode_VkWriteDescriptorSet_self_temp(struct vn_cs_decoder *dec, VkWriteDescriptorSet *val) { @@ -318,6 +405,9 @@ vn_replace_VkWriteDescriptorSet_handle(VkWriteDescriptorSet *val) case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET: vn_replace_VkWriteDescriptorSet_handle_self((VkWriteDescriptorSet *)pnext); break; + case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: + vn_replace_VkWriteDescriptorSetInlineUniformBlock_handle_self((VkWriteDescriptorSetInlineUniformBlock *)pnext); + break; default: /* ignore unknown/unsupported struct */ break; diff --git a/src/venus/venus-protocol/vn_protocol_renderer_device.h b/src/venus/venus-protocol/vn_protocol_renderer_device.h index 3601c74..09ad129 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_device.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_device.h @@ -741,6 +741,172 @@ vn_replace_VkDeviceQueueCreateInfo_handle(VkDeviceQueueCreateInfo *val) } while (pnext); } +/* struct VkDevicePrivateDataCreateInfo chain */ + +static inline void * +vn_decode_VkDevicePrivateDataCreateInfo_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkDevicePrivateDataCreateInfo_self_temp(struct vn_cs_decoder *dec, VkDevicePrivateDataCreateInfo *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_uint32_t(dec, &val->privateDataSlotRequestCount); +} + +static inline void +vn_decode_VkDevicePrivateDataCreateInfo_temp(struct vn_cs_decoder *dec, VkDevicePrivateDataCreateInfo *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkDevicePrivateDataCreateInfo_pnext_temp(dec); + vn_decode_VkDevicePrivateDataCreateInfo_self_temp(dec, val); +} + +static inline void +vn_replace_VkDevicePrivateDataCreateInfo_handle_self(VkDevicePrivateDataCreateInfo *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->privateDataSlotRequestCount */ +} + +static inline void +vn_replace_VkDevicePrivateDataCreateInfo_handle(VkDevicePrivateDataCreateInfo *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: + vn_replace_VkDevicePrivateDataCreateInfo_handle_self((VkDevicePrivateDataCreateInfo *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPhysicalDevicePrivateDataFeatures chain */ + +static inline void +vn_encode_VkPhysicalDevicePrivateDataFeatures_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDevicePrivateDataFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDevicePrivateDataFeatures *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->privateData); +} + +static inline void +vn_encode_VkPhysicalDevicePrivateDataFeatures(struct vn_cs_encoder *enc, const VkPhysicalDevicePrivateDataFeatures *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES }); + vn_encode_VkPhysicalDevicePrivateDataFeatures_pnext(enc, val->pNext); + vn_encode_VkPhysicalDevicePrivateDataFeatures_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDevicePrivateDataFeatures_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDevicePrivateDataFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePrivateDataFeatures *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->privateData); +} + +static inline void +vn_decode_VkPhysicalDevicePrivateDataFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePrivateDataFeatures *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDevicePrivateDataFeatures_pnext_temp(dec); + vn_decode_VkPhysicalDevicePrivateDataFeatures_self_temp(dec, val); +} + +static inline void * +vn_decode_VkPhysicalDevicePrivateDataFeatures_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDevicePrivateDataFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePrivateDataFeatures *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->privateData */ +} + +static inline void +vn_decode_VkPhysicalDevicePrivateDataFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePrivateDataFeatures *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDevicePrivateDataFeatures_pnext_partial_temp(dec); + vn_decode_VkPhysicalDevicePrivateDataFeatures_self_partial_temp(dec, val); +} + +static inline void +vn_replace_VkPhysicalDevicePrivateDataFeatures_handle_self(VkPhysicalDevicePrivateDataFeatures *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->privateData */ +} + +static inline void +vn_replace_VkPhysicalDevicePrivateDataFeatures_handle(VkPhysicalDevicePrivateDataFeatures *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: + vn_replace_VkPhysicalDevicePrivateDataFeatures_handle_self((VkPhysicalDevicePrivateDataFeatures *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + /* struct VkPhysicalDeviceVariablePointersFeatures chain */ static inline void @@ -1419,33 +1585,34 @@ vn_replace_VkPhysicalDeviceProtectedMemoryFeatures_handle(VkPhysicalDeviceProtec } while (pnext); } -/* struct VkPhysicalDeviceShaderDrawParametersFeatures chain */ +/* struct VkPhysicalDeviceInlineUniformBlockFeatures chain */ static inline void -vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext(struct vn_cs_encoder *enc, const void *val) +vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext(struct vn_cs_encoder *enc, const void *val) { /* no known/supported struct */ vn_encode_simple_pointer(enc, NULL); } static inline void -vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderDrawParametersFeatures *val) +vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceInlineUniformBlockFeatures *val) { /* skip val->{sType,pNext} */ - vn_encode_VkBool32(enc, &val->shaderDrawParameters); + vn_encode_VkBool32(enc, &val->inlineUniformBlock); + vn_encode_VkBool32(enc, &val->descriptorBindingInlineUniformBlockUpdateAfterBind); } static inline void -vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderDrawParametersFeatures *val) +vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceInlineUniformBlockFeatures *val) { - assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES); - vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES }); - vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext(enc, val->pNext); - vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_self(enc, val); + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES }); + vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_self(enc, val); } static inline void * -vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext_temp(struct vn_cs_decoder *dec) +vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext_temp(struct vn_cs_decoder *dec) { /* no known/supported struct */ if (vn_decode_simple_pointer(dec)) @@ -1454,27 +1621,28 @@ vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext_temp(struct vn_cs_d } static inline void -vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDrawParametersFeatures *val) +vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceInlineUniformBlockFeatures *val) { /* skip val->{sType,pNext} */ - vn_decode_VkBool32(dec, &val->shaderDrawParameters); + vn_decode_VkBool32(dec, &val->inlineUniformBlock); + vn_decode_VkBool32(dec, &val->descriptorBindingInlineUniformBlockUpdateAfterBind); } static inline void -vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDrawParametersFeatures *val) +vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceInlineUniformBlockFeatures *val) { VkStructureType stype; vn_decode_VkStructureType(dec, &stype); - if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES) + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES) vn_cs_decoder_set_fatal(dec); val->sType = stype; - val->pNext = vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext_temp(dec); - vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_self_temp(dec, val); + val->pNext = vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext_temp(dec); + vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_self_temp(dec, val); } static inline void * -vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext_partial_temp(struct vn_cs_decoder *dec) +vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext_partial_temp(struct vn_cs_decoder *dec) { /* no known/supported struct */ if (vn_decode_simple_pointer(dec)) @@ -1483,42 +1651,44 @@ vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext_partial_temp(struct } static inline void -vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDrawParametersFeatures *val) +vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceInlineUniformBlockFeatures *val) { /* skip val->{sType,pNext} */ - /* skip val->shaderDrawParameters */ + /* skip val->inlineUniformBlock */ + /* skip val->descriptorBindingInlineUniformBlockUpdateAfterBind */ } static inline void -vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDrawParametersFeatures *val) +vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceInlineUniformBlockFeatures *val) { VkStructureType stype; vn_decode_VkStructureType(dec, &stype); - if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES) + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES) vn_cs_decoder_set_fatal(dec); val->sType = stype; - val->pNext = vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext_partial_temp(dec); - vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_self_partial_temp(dec, val); + val->pNext = vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_self_partial_temp(dec, val); } static inline void -vn_replace_VkPhysicalDeviceShaderDrawParametersFeatures_handle_self(VkPhysicalDeviceShaderDrawParametersFeatures *val) +vn_replace_VkPhysicalDeviceInlineUniformBlockFeatures_handle_self(VkPhysicalDeviceInlineUniformBlockFeatures *val) { /* skip val->sType */ /* skip val->pNext */ - /* skip val->shaderDrawParameters */ + /* skip val->inlineUniformBlock */ + /* skip val->descriptorBindingInlineUniformBlockUpdateAfterBind */ } static inline void -vn_replace_VkPhysicalDeviceShaderDrawParametersFeatures_handle(VkPhysicalDeviceShaderDrawParametersFeatures *val) +vn_replace_VkPhysicalDeviceInlineUniformBlockFeatures_handle(VkPhysicalDeviceInlineUniformBlockFeatures *val) { struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; do { switch ((int32_t)pnext->sType) { - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: - vn_replace_VkPhysicalDeviceShaderDrawParametersFeatures_handle_self((VkPhysicalDeviceShaderDrawParametersFeatures *)pnext); + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: + vn_replace_VkPhysicalDeviceInlineUniformBlockFeatures_handle_self((VkPhysicalDeviceInlineUniformBlockFeatures *)pnext); break; default: /* ignore unknown/unsupported struct */ @@ -1528,34 +1698,33 @@ vn_replace_VkPhysicalDeviceShaderDrawParametersFeatures_handle(VkPhysicalDeviceS } while (pnext); } -/* struct VkPhysicalDeviceShaderFloat16Int8Features chain */ +/* struct VkPhysicalDeviceMaintenance4Features chain */ static inline void -vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_pnext(struct vn_cs_encoder *enc, const void *val) +vn_encode_VkPhysicalDeviceMaintenance4Features_pnext(struct vn_cs_encoder *enc, const void *val) { /* no known/supported struct */ vn_encode_simple_pointer(enc, NULL); } static inline void -vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderFloat16Int8Features *val) +vn_encode_VkPhysicalDeviceMaintenance4Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceMaintenance4Features *val) { /* skip val->{sType,pNext} */ - vn_encode_VkBool32(enc, &val->shaderFloat16); - vn_encode_VkBool32(enc, &val->shaderInt8); + vn_encode_VkBool32(enc, &val->maintenance4); } static inline void -vn_encode_VkPhysicalDeviceShaderFloat16Int8Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderFloat16Int8Features *val) +vn_encode_VkPhysicalDeviceMaintenance4Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceMaintenance4Features *val) { - assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES); - vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES }); - vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_pnext(enc, val->pNext); - vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_self(enc, val); + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES }); + vn_encode_VkPhysicalDeviceMaintenance4Features_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceMaintenance4Features_self(enc, val); } static inline void * -vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_pnext_temp(struct vn_cs_decoder *dec) +vn_decode_VkPhysicalDeviceMaintenance4Features_pnext_temp(struct vn_cs_decoder *dec) { /* no known/supported struct */ if (vn_decode_simple_pointer(dec)) @@ -1564,28 +1733,27 @@ vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_pnext_temp(struct vn_cs_deco } static inline void -vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderFloat16Int8Features *val) +vn_decode_VkPhysicalDeviceMaintenance4Features_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMaintenance4Features *val) { /* skip val->{sType,pNext} */ - vn_decode_VkBool32(dec, &val->shaderFloat16); - vn_decode_VkBool32(dec, &val->shaderInt8); + vn_decode_VkBool32(dec, &val->maintenance4); } static inline void -vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderFloat16Int8Features *val) +vn_decode_VkPhysicalDeviceMaintenance4Features_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMaintenance4Features *val) { VkStructureType stype; vn_decode_VkStructureType(dec, &stype); - if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES) + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES) vn_cs_decoder_set_fatal(dec); val->sType = stype; - val->pNext = vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_pnext_temp(dec); - vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_self_temp(dec, val); + val->pNext = vn_decode_VkPhysicalDeviceMaintenance4Features_pnext_temp(dec); + vn_decode_VkPhysicalDeviceMaintenance4Features_self_temp(dec, val); } static inline void * -vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_pnext_partial_temp(struct vn_cs_decoder *dec) +vn_decode_VkPhysicalDeviceMaintenance4Features_pnext_partial_temp(struct vn_cs_decoder *dec) { /* no known/supported struct */ if (vn_decode_simple_pointer(dec)) @@ -1594,44 +1762,42 @@ vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_pnext_partial_temp(struct vn } static inline void -vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderFloat16Int8Features *val) +vn_decode_VkPhysicalDeviceMaintenance4Features_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMaintenance4Features *val) { /* skip val->{sType,pNext} */ - /* skip val->shaderFloat16 */ - /* skip val->shaderInt8 */ + /* skip val->maintenance4 */ } static inline void -vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderFloat16Int8Features *val) +vn_decode_VkPhysicalDeviceMaintenance4Features_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMaintenance4Features *val) { VkStructureType stype; vn_decode_VkStructureType(dec, &stype); - if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES) + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES) vn_cs_decoder_set_fatal(dec); val->sType = stype; - val->pNext = vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_pnext_partial_temp(dec); - vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_self_partial_temp(dec, val); + val->pNext = vn_decode_VkPhysicalDeviceMaintenance4Features_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceMaintenance4Features_self_partial_temp(dec, val); } static inline void -vn_replace_VkPhysicalDeviceShaderFloat16Int8Features_handle_self(VkPhysicalDeviceShaderFloat16Int8Features *val) +vn_replace_VkPhysicalDeviceMaintenance4Features_handle_self(VkPhysicalDeviceMaintenance4Features *val) { /* skip val->sType */ /* skip val->pNext */ - /* skip val->shaderFloat16 */ - /* skip val->shaderInt8 */ + /* skip val->maintenance4 */ } static inline void -vn_replace_VkPhysicalDeviceShaderFloat16Int8Features_handle(VkPhysicalDeviceShaderFloat16Int8Features *val) +vn_replace_VkPhysicalDeviceMaintenance4Features_handle(VkPhysicalDeviceMaintenance4Features *val) { struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; do { switch ((int32_t)pnext->sType) { - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: - vn_replace_VkPhysicalDeviceShaderFloat16Int8Features_handle_self((VkPhysicalDeviceShaderFloat16Int8Features *)pnext); + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: + vn_replace_VkPhysicalDeviceMaintenance4Features_handle_self((VkPhysicalDeviceMaintenance4Features *)pnext); break; default: /* ignore unknown/unsupported struct */ @@ -1641,33 +1807,33 @@ vn_replace_VkPhysicalDeviceShaderFloat16Int8Features_handle(VkPhysicalDeviceShad } while (pnext); } -/* struct VkPhysicalDeviceHostQueryResetFeatures chain */ +/* struct VkPhysicalDeviceShaderDrawParametersFeatures chain */ static inline void -vn_encode_VkPhysicalDeviceHostQueryResetFeatures_pnext(struct vn_cs_encoder *enc, const void *val) +vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext(struct vn_cs_encoder *enc, const void *val) { /* no known/supported struct */ vn_encode_simple_pointer(enc, NULL); } static inline void -vn_encode_VkPhysicalDeviceHostQueryResetFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceHostQueryResetFeatures *val) +vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderDrawParametersFeatures *val) { /* skip val->{sType,pNext} */ - vn_encode_VkBool32(enc, &val->hostQueryReset); + vn_encode_VkBool32(enc, &val->shaderDrawParameters); } static inline void -vn_encode_VkPhysicalDeviceHostQueryResetFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceHostQueryResetFeatures *val) +vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderDrawParametersFeatures *val) { - assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES); - vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES }); - vn_encode_VkPhysicalDeviceHostQueryResetFeatures_pnext(enc, val->pNext); - vn_encode_VkPhysicalDeviceHostQueryResetFeatures_self(enc, val); + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES }); + vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceShaderDrawParametersFeatures_self(enc, val); } static inline void * -vn_decode_VkPhysicalDeviceHostQueryResetFeatures_pnext_temp(struct vn_cs_decoder *dec) +vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext_temp(struct vn_cs_decoder *dec) { /* no known/supported struct */ if (vn_decode_simple_pointer(dec)) @@ -1676,27 +1842,27 @@ vn_decode_VkPhysicalDeviceHostQueryResetFeatures_pnext_temp(struct vn_cs_decoder } static inline void -vn_decode_VkPhysicalDeviceHostQueryResetFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceHostQueryResetFeatures *val) +vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDrawParametersFeatures *val) { /* skip val->{sType,pNext} */ - vn_decode_VkBool32(dec, &val->hostQueryReset); + vn_decode_VkBool32(dec, &val->shaderDrawParameters); } static inline void -vn_decode_VkPhysicalDeviceHostQueryResetFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceHostQueryResetFeatures *val) +vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDrawParametersFeatures *val) { VkStructureType stype; vn_decode_VkStructureType(dec, &stype); - if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES) + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES) vn_cs_decoder_set_fatal(dec); val->sType = stype; - val->pNext = vn_decode_VkPhysicalDeviceHostQueryResetFeatures_pnext_temp(dec); - vn_decode_VkPhysicalDeviceHostQueryResetFeatures_self_temp(dec, val); + val->pNext = vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext_temp(dec); + vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_self_temp(dec, val); } static inline void * -vn_decode_VkPhysicalDeviceHostQueryResetFeatures_pnext_partial_temp(struct vn_cs_decoder *dec) +vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext_partial_temp(struct vn_cs_decoder *dec) { /* no known/supported struct */ if (vn_decode_simple_pointer(dec)) @@ -1705,42 +1871,42 @@ vn_decode_VkPhysicalDeviceHostQueryResetFeatures_pnext_partial_temp(struct vn_cs } static inline void -vn_decode_VkPhysicalDeviceHostQueryResetFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceHostQueryResetFeatures *val) +vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDrawParametersFeatures *val) { /* skip val->{sType,pNext} */ - /* skip val->hostQueryReset */ + /* skip val->shaderDrawParameters */ } static inline void -vn_decode_VkPhysicalDeviceHostQueryResetFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceHostQueryResetFeatures *val) +vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDrawParametersFeatures *val) { VkStructureType stype; vn_decode_VkStructureType(dec, &stype); - if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES) + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES) vn_cs_decoder_set_fatal(dec); val->sType = stype; - val->pNext = vn_decode_VkPhysicalDeviceHostQueryResetFeatures_pnext_partial_temp(dec); - vn_decode_VkPhysicalDeviceHostQueryResetFeatures_self_partial_temp(dec, val); + val->pNext = vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceShaderDrawParametersFeatures_self_partial_temp(dec, val); } static inline void -vn_replace_VkPhysicalDeviceHostQueryResetFeatures_handle_self(VkPhysicalDeviceHostQueryResetFeatures *val) +vn_replace_VkPhysicalDeviceShaderDrawParametersFeatures_handle_self(VkPhysicalDeviceShaderDrawParametersFeatures *val) { /* skip val->sType */ /* skip val->pNext */ - /* skip val->hostQueryReset */ + /* skip val->shaderDrawParameters */ } static inline void -vn_replace_VkPhysicalDeviceHostQueryResetFeatures_handle(VkPhysicalDeviceHostQueryResetFeatures *val) +vn_replace_VkPhysicalDeviceShaderDrawParametersFeatures_handle(VkPhysicalDeviceShaderDrawParametersFeatures *val) { struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; do { switch ((int32_t)pnext->sType) { - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: - vn_replace_VkPhysicalDeviceHostQueryResetFeatures_handle_self((VkPhysicalDeviceHostQueryResetFeatures *)pnext); + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: + vn_replace_VkPhysicalDeviceShaderDrawParametersFeatures_handle_self((VkPhysicalDeviceShaderDrawParametersFeatures *)pnext); break; default: /* ignore unknown/unsupported struct */ @@ -1750,28 +1916,250 @@ vn_replace_VkPhysicalDeviceHostQueryResetFeatures_handle(VkPhysicalDeviceHostQue } while (pnext); } -/* struct VkPhysicalDeviceDescriptorIndexingFeatures chain */ +/* struct VkPhysicalDeviceShaderFloat16Int8Features chain */ static inline void -vn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_pnext(struct vn_cs_encoder *enc, const void *val) +vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_pnext(struct vn_cs_encoder *enc, const void *val) { /* no known/supported struct */ vn_encode_simple_pointer(enc, NULL); } static inline void -vn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceDescriptorIndexingFeatures *val) +vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderFloat16Int8Features *val) { /* skip val->{sType,pNext} */ - vn_encode_VkBool32(enc, &val->shaderInputAttachmentArrayDynamicIndexing); - vn_encode_VkBool32(enc, &val->shaderUniformTexelBufferArrayDynamicIndexing); - vn_encode_VkBool32(enc, &val->shaderStorageTexelBufferArrayDynamicIndexing); - vn_encode_VkBool32(enc, &val->shaderUniformBufferArrayNonUniformIndexing); - vn_encode_VkBool32(enc, &val->shaderSampledImageArrayNonUniformIndexing); - vn_encode_VkBool32(enc, &val->shaderStorageBufferArrayNonUniformIndexing); - vn_encode_VkBool32(enc, &val->shaderStorageImageArrayNonUniformIndexing); - vn_encode_VkBool32(enc, &val->shaderInputAttachmentArrayNonUniformIndexing); - vn_encode_VkBool32(enc, &val->shaderUniformTexelBufferArrayNonUniformIndexing); + vn_encode_VkBool32(enc, &val->shaderFloat16); + vn_encode_VkBool32(enc, &val->shaderInt8); +} + +static inline void +vn_encode_VkPhysicalDeviceShaderFloat16Int8Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderFloat16Int8Features *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES }); + vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceShaderFloat16Int8Features_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderFloat16Int8Features *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->shaderFloat16); + vn_decode_VkBool32(dec, &val->shaderInt8); +} + +static inline void +vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderFloat16Int8Features *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_pnext_temp(dec); + vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_self_temp(dec, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderFloat16Int8Features *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->shaderFloat16 */ + /* skip val->shaderInt8 */ +} + +static inline void +vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderFloat16Int8Features *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceShaderFloat16Int8Features_self_partial_temp(dec, val); +} + +static inline void +vn_replace_VkPhysicalDeviceShaderFloat16Int8Features_handle_self(VkPhysicalDeviceShaderFloat16Int8Features *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->shaderFloat16 */ + /* skip val->shaderInt8 */ +} + +static inline void +vn_replace_VkPhysicalDeviceShaderFloat16Int8Features_handle(VkPhysicalDeviceShaderFloat16Int8Features *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: + vn_replace_VkPhysicalDeviceShaderFloat16Int8Features_handle_self((VkPhysicalDeviceShaderFloat16Int8Features *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPhysicalDeviceHostQueryResetFeatures chain */ + +static inline void +vn_encode_VkPhysicalDeviceHostQueryResetFeatures_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceHostQueryResetFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceHostQueryResetFeatures *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->hostQueryReset); +} + +static inline void +vn_encode_VkPhysicalDeviceHostQueryResetFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceHostQueryResetFeatures *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES }); + vn_encode_VkPhysicalDeviceHostQueryResetFeatures_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceHostQueryResetFeatures_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceHostQueryResetFeatures_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceHostQueryResetFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceHostQueryResetFeatures *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->hostQueryReset); +} + +static inline void +vn_decode_VkPhysicalDeviceHostQueryResetFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceHostQueryResetFeatures *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceHostQueryResetFeatures_pnext_temp(dec); + vn_decode_VkPhysicalDeviceHostQueryResetFeatures_self_temp(dec, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceHostQueryResetFeatures_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceHostQueryResetFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceHostQueryResetFeatures *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->hostQueryReset */ +} + +static inline void +vn_decode_VkPhysicalDeviceHostQueryResetFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceHostQueryResetFeatures *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceHostQueryResetFeatures_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceHostQueryResetFeatures_self_partial_temp(dec, val); +} + +static inline void +vn_replace_VkPhysicalDeviceHostQueryResetFeatures_handle_self(VkPhysicalDeviceHostQueryResetFeatures *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->hostQueryReset */ +} + +static inline void +vn_replace_VkPhysicalDeviceHostQueryResetFeatures_handle(VkPhysicalDeviceHostQueryResetFeatures *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: + vn_replace_VkPhysicalDeviceHostQueryResetFeatures_handle_self((VkPhysicalDeviceHostQueryResetFeatures *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPhysicalDeviceDescriptorIndexingFeatures chain */ + +static inline void +vn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceDescriptorIndexingFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceDescriptorIndexingFeatures *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->shaderInputAttachmentArrayDynamicIndexing); + vn_encode_VkBool32(enc, &val->shaderUniformTexelBufferArrayDynamicIndexing); + vn_encode_VkBool32(enc, &val->shaderStorageTexelBufferArrayDynamicIndexing); + vn_encode_VkBool32(enc, &val->shaderUniformBufferArrayNonUniformIndexing); + vn_encode_VkBool32(enc, &val->shaderSampledImageArrayNonUniformIndexing); + vn_encode_VkBool32(enc, &val->shaderStorageBufferArrayNonUniformIndexing); + vn_encode_VkBool32(enc, &val->shaderStorageImageArrayNonUniformIndexing); + vn_encode_VkBool32(enc, &val->shaderInputAttachmentArrayNonUniformIndexing); + vn_encode_VkBool32(enc, &val->shaderUniformTexelBufferArrayNonUniformIndexing); vn_encode_VkBool32(enc, &val->shaderStorageTexelBufferArrayNonUniformIndexing); vn_encode_VkBool32(enc, &val->descriptorBindingUniformBufferUpdateAfterBind); vn_encode_VkBool32(enc, &val->descriptorBindingSampledImageUpdateAfterBind); @@ -2948,33 +3336,33 @@ vn_replace_VkPhysicalDeviceImagelessFramebufferFeatures_handle(VkPhysicalDeviceI } while (pnext); } -/* struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures chain */ +/* struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures chain */ static inline void -vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext(struct vn_cs_encoder *enc, const void *val) +vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext(struct vn_cs_encoder *enc, const void *val) { /* no known/supported struct */ vn_encode_simple_pointer(enc, NULL); } static inline void -vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val) +vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val) { /* skip val->{sType,pNext} */ - vn_encode_VkBool32(enc, &val->separateDepthStencilLayouts); + vn_encode_VkBool32(enc, &val->textureCompressionASTC_HDR); } static inline void -vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val) +vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val) { - assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES); - vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES }); - vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext(enc, val->pNext); - vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self(enc, val); + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES }); + vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self(enc, val); } static inline void * -vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext_temp(struct vn_cs_decoder *dec) +vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext_temp(struct vn_cs_decoder *dec) { /* no known/supported struct */ if (vn_decode_simple_pointer(dec)) @@ -2983,27 +3371,27 @@ vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext_temp(struct } static inline void -vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val) +vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val) { /* skip val->{sType,pNext} */ - vn_decode_VkBool32(dec, &val->separateDepthStencilLayouts); + vn_decode_VkBool32(dec, &val->textureCompressionASTC_HDR); } static inline void -vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val) +vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val) { VkStructureType stype; vn_decode_VkStructureType(dec, &stype); - if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES) + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES) vn_cs_decoder_set_fatal(dec); val->sType = stype; - val->pNext = vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext_temp(dec); - vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_temp(dec, val); + val->pNext = vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext_temp(dec); + vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_temp(dec, val); } static inline void * -vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext_partial_temp(struct vn_cs_decoder *dec) +vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext_partial_temp(struct vn_cs_decoder *dec) { /* no known/supported struct */ if (vn_decode_simple_pointer(dec)) @@ -3012,31 +3400,140 @@ vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext_partial_temp } static inline void -vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val) +vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val) { /* skip val->{sType,pNext} */ - /* skip val->separateDepthStencilLayouts */ + /* skip val->textureCompressionASTC_HDR */ } static inline void -vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val) +vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val) { VkStructureType stype; vn_decode_VkStructureType(dec, &stype); - if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES) + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES) vn_cs_decoder_set_fatal(dec); val->sType = stype; - val->pNext = vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext_partial_temp(dec); - vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_partial_temp(dec, val); + val->pNext = vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_partial_temp(dec, val); } static inline void -vn_replace_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_handle_self(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val) +vn_replace_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_handle_self(VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val) { /* skip val->sType */ /* skip val->pNext */ - /* skip val->separateDepthStencilLayouts */ + /* skip val->textureCompressionASTC_HDR */ +} + +static inline void +vn_replace_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_handle(VkPhysicalDeviceTextureCompressionASTCHDRFeatures *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: + vn_replace_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_handle_self((VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures chain */ + +static inline void +vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->separateDepthStencilLayouts); +} + +static inline void +vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES }); + vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->separateDepthStencilLayouts); +} + +static inline void +vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext_temp(dec); + vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_temp(dec, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->separateDepthStencilLayouts */ +} + +static inline void +vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_partial_temp(dec, val); +} + +static inline void +vn_replace_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_handle_self(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->separateDepthStencilLayouts */ } static inline void @@ -3046,8 +3543,1943 @@ vn_replace_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_handle(VkPhysical do { switch ((int32_t)pnext->sType) { - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: - vn_replace_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_handle_self((VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext); + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: + vn_replace_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_handle_self((VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures chain */ + +static inline void +vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->shaderDemoteToHelperInvocation); +} + +static inline void +vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES }); + vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->shaderDemoteToHelperInvocation); +} + +static inline void +vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext_temp(dec); + vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_temp(dec, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->shaderDemoteToHelperInvocation */ +} + +static inline void +vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_partial_temp(dec, val); +} + +static inline void +vn_replace_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_handle_self(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->shaderDemoteToHelperInvocation */ +} + +static inline void +vn_replace_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_handle(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: + vn_replace_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_handle_self((VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT chain */ + +static inline void +vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->texelBufferAlignment); +} + +static inline void +vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT }); + vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->texelBufferAlignment); +} + +static inline void +vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext_temp(dec); + vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_temp(dec, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->texelBufferAlignment */ +} + +static inline void +vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_partial_temp(dec, val); +} + +static inline void +vn_replace_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_handle_self(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->texelBufferAlignment */ +} + +static inline void +vn_replace_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_handle(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: + vn_replace_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_handle_self((VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPhysicalDeviceSubgroupSizeControlFeatures chain */ + +static inline void +vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceSubgroupSizeControlFeatures *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->subgroupSizeControl); + vn_encode_VkBool32(enc, &val->computeFullSubgroups); +} + +static inline void +vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceSubgroupSizeControlFeatures *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES }); + vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSubgroupSizeControlFeatures *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->subgroupSizeControl); + vn_decode_VkBool32(dec, &val->computeFullSubgroups); +} + +static inline void +vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSubgroupSizeControlFeatures *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext_temp(dec); + vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_temp(dec, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSubgroupSizeControlFeatures *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->subgroupSizeControl */ + /* skip val->computeFullSubgroups */ +} + +static inline void +vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSubgroupSizeControlFeatures *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_partial_temp(dec, val); +} + +static inline void +vn_replace_VkPhysicalDeviceSubgroupSizeControlFeatures_handle_self(VkPhysicalDeviceSubgroupSizeControlFeatures *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->subgroupSizeControl */ + /* skip val->computeFullSubgroups */ +} + +static inline void +vn_replace_VkPhysicalDeviceSubgroupSizeControlFeatures_handle(VkPhysicalDeviceSubgroupSizeControlFeatures *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: + vn_replace_VkPhysicalDeviceSubgroupSizeControlFeatures_handle_self((VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPhysicalDevicePipelineCreationCacheControlFeatures chain */ + +static inline void +vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDevicePipelineCreationCacheControlFeatures *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->pipelineCreationCacheControl); +} + +static inline void +vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures(struct vn_cs_encoder *enc, const VkPhysicalDevicePipelineCreationCacheControlFeatures *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES }); + vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext(enc, val->pNext); + vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePipelineCreationCacheControlFeatures *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->pipelineCreationCacheControl); +} + +static inline void +vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePipelineCreationCacheControlFeatures *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext_temp(dec); + vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_temp(dec, val); +} + +static inline void * +vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePipelineCreationCacheControlFeatures *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->pipelineCreationCacheControl */ +} + +static inline void +vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevicePipelineCreationCacheControlFeatures *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_pnext_partial_temp(dec); + vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_partial_temp(dec, val); +} + +static inline void +vn_replace_VkPhysicalDevicePipelineCreationCacheControlFeatures_handle_self(VkPhysicalDevicePipelineCreationCacheControlFeatures *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->pipelineCreationCacheControl */ +} + +static inline void +vn_replace_VkPhysicalDevicePipelineCreationCacheControlFeatures_handle(VkPhysicalDevicePipelineCreationCacheControlFeatures *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: + vn_replace_VkPhysicalDevicePipelineCreationCacheControlFeatures_handle_self((VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPhysicalDeviceVulkan11Features chain */ + +static inline void +vn_encode_VkPhysicalDeviceVulkan11Features_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceVulkan11Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan11Features *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->storageBuffer16BitAccess); + vn_encode_VkBool32(enc, &val->uniformAndStorageBuffer16BitAccess); + vn_encode_VkBool32(enc, &val->storagePushConstant16); + vn_encode_VkBool32(enc, &val->storageInputOutput16); + vn_encode_VkBool32(enc, &val->multiview); + vn_encode_VkBool32(enc, &val->multiviewGeometryShader); + vn_encode_VkBool32(enc, &val->multiviewTessellationShader); + vn_encode_VkBool32(enc, &val->variablePointersStorageBuffer); + vn_encode_VkBool32(enc, &val->variablePointers); + vn_encode_VkBool32(enc, &val->protectedMemory); + vn_encode_VkBool32(enc, &val->samplerYcbcrConversion); + vn_encode_VkBool32(enc, &val->shaderDrawParameters); +} + +static inline void +vn_encode_VkPhysicalDeviceVulkan11Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan11Features *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES }); + vn_encode_VkPhysicalDeviceVulkan11Features_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceVulkan11Features_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceVulkan11Features_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceVulkan11Features_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan11Features *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->storageBuffer16BitAccess); + vn_decode_VkBool32(dec, &val->uniformAndStorageBuffer16BitAccess); + vn_decode_VkBool32(dec, &val->storagePushConstant16); + vn_decode_VkBool32(dec, &val->storageInputOutput16); + vn_decode_VkBool32(dec, &val->multiview); + vn_decode_VkBool32(dec, &val->multiviewGeometryShader); + vn_decode_VkBool32(dec, &val->multiviewTessellationShader); + vn_decode_VkBool32(dec, &val->variablePointersStorageBuffer); + vn_decode_VkBool32(dec, &val->variablePointers); + vn_decode_VkBool32(dec, &val->protectedMemory); + vn_decode_VkBool32(dec, &val->samplerYcbcrConversion); + vn_decode_VkBool32(dec, &val->shaderDrawParameters); +} + +static inline void +vn_decode_VkPhysicalDeviceVulkan11Features_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan11Features *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceVulkan11Features_pnext_temp(dec); + vn_decode_VkPhysicalDeviceVulkan11Features_self_temp(dec, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceVulkan11Features_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceVulkan11Features_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan11Features *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->storageBuffer16BitAccess */ + /* skip val->uniformAndStorageBuffer16BitAccess */ + /* skip val->storagePushConstant16 */ + /* skip val->storageInputOutput16 */ + /* skip val->multiview */ + /* skip val->multiviewGeometryShader */ + /* skip val->multiviewTessellationShader */ + /* skip val->variablePointersStorageBuffer */ + /* skip val->variablePointers */ + /* skip val->protectedMemory */ + /* skip val->samplerYcbcrConversion */ + /* skip val->shaderDrawParameters */ +} + +static inline void +vn_decode_VkPhysicalDeviceVulkan11Features_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan11Features *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceVulkan11Features_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceVulkan11Features_self_partial_temp(dec, val); +} + +static inline void +vn_replace_VkPhysicalDeviceVulkan11Features_handle_self(VkPhysicalDeviceVulkan11Features *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->storageBuffer16BitAccess */ + /* skip val->uniformAndStorageBuffer16BitAccess */ + /* skip val->storagePushConstant16 */ + /* skip val->storageInputOutput16 */ + /* skip val->multiview */ + /* skip val->multiviewGeometryShader */ + /* skip val->multiviewTessellationShader */ + /* skip val->variablePointersStorageBuffer */ + /* skip val->variablePointers */ + /* skip val->protectedMemory */ + /* skip val->samplerYcbcrConversion */ + /* skip val->shaderDrawParameters */ +} + +static inline void +vn_replace_VkPhysicalDeviceVulkan11Features_handle(VkPhysicalDeviceVulkan11Features *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: + vn_replace_VkPhysicalDeviceVulkan11Features_handle_self((VkPhysicalDeviceVulkan11Features *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPhysicalDeviceVulkan12Features chain */ + +static inline void +vn_encode_VkPhysicalDeviceVulkan12Features_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceVulkan12Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan12Features *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->samplerMirrorClampToEdge); + vn_encode_VkBool32(enc, &val->drawIndirectCount); + vn_encode_VkBool32(enc, &val->storageBuffer8BitAccess); + vn_encode_VkBool32(enc, &val->uniformAndStorageBuffer8BitAccess); + vn_encode_VkBool32(enc, &val->storagePushConstant8); + vn_encode_VkBool32(enc, &val->shaderBufferInt64Atomics); + vn_encode_VkBool32(enc, &val->shaderSharedInt64Atomics); + vn_encode_VkBool32(enc, &val->shaderFloat16); + vn_encode_VkBool32(enc, &val->shaderInt8); + vn_encode_VkBool32(enc, &val->descriptorIndexing); + vn_encode_VkBool32(enc, &val->shaderInputAttachmentArrayDynamicIndexing); + vn_encode_VkBool32(enc, &val->shaderUniformTexelBufferArrayDynamicIndexing); + vn_encode_VkBool32(enc, &val->shaderStorageTexelBufferArrayDynamicIndexing); + vn_encode_VkBool32(enc, &val->shaderUniformBufferArrayNonUniformIndexing); + vn_encode_VkBool32(enc, &val->shaderSampledImageArrayNonUniformIndexing); + vn_encode_VkBool32(enc, &val->shaderStorageBufferArrayNonUniformIndexing); + vn_encode_VkBool32(enc, &val->shaderStorageImageArrayNonUniformIndexing); + vn_encode_VkBool32(enc, &val->shaderInputAttachmentArrayNonUniformIndexing); + vn_encode_VkBool32(enc, &val->shaderUniformTexelBufferArrayNonUniformIndexing); + vn_encode_VkBool32(enc, &val->shaderStorageTexelBufferArrayNonUniformIndexing); + vn_encode_VkBool32(enc, &val->descriptorBindingUniformBufferUpdateAfterBind); + vn_encode_VkBool32(enc, &val->descriptorBindingSampledImageUpdateAfterBind); + vn_encode_VkBool32(enc, &val->descriptorBindingStorageImageUpdateAfterBind); + vn_encode_VkBool32(enc, &val->descriptorBindingStorageBufferUpdateAfterBind); + vn_encode_VkBool32(enc, &val->descriptorBindingUniformTexelBufferUpdateAfterBind); + vn_encode_VkBool32(enc, &val->descriptorBindingStorageTexelBufferUpdateAfterBind); + vn_encode_VkBool32(enc, &val->descriptorBindingUpdateUnusedWhilePending); + vn_encode_VkBool32(enc, &val->descriptorBindingPartiallyBound); + vn_encode_VkBool32(enc, &val->descriptorBindingVariableDescriptorCount); + vn_encode_VkBool32(enc, &val->runtimeDescriptorArray); + vn_encode_VkBool32(enc, &val->samplerFilterMinmax); + vn_encode_VkBool32(enc, &val->scalarBlockLayout); + vn_encode_VkBool32(enc, &val->imagelessFramebuffer); + vn_encode_VkBool32(enc, &val->uniformBufferStandardLayout); + vn_encode_VkBool32(enc, &val->shaderSubgroupExtendedTypes); + vn_encode_VkBool32(enc, &val->separateDepthStencilLayouts); + vn_encode_VkBool32(enc, &val->hostQueryReset); + vn_encode_VkBool32(enc, &val->timelineSemaphore); + vn_encode_VkBool32(enc, &val->bufferDeviceAddress); + vn_encode_VkBool32(enc, &val->bufferDeviceAddressCaptureReplay); + vn_encode_VkBool32(enc, &val->bufferDeviceAddressMultiDevice); + vn_encode_VkBool32(enc, &val->vulkanMemoryModel); + vn_encode_VkBool32(enc, &val->vulkanMemoryModelDeviceScope); + vn_encode_VkBool32(enc, &val->vulkanMemoryModelAvailabilityVisibilityChains); + vn_encode_VkBool32(enc, &val->shaderOutputViewportIndex); + vn_encode_VkBool32(enc, &val->shaderOutputLayer); + vn_encode_VkBool32(enc, &val->subgroupBroadcastDynamicId); +} + +static inline void +vn_encode_VkPhysicalDeviceVulkan12Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan12Features *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES }); + vn_encode_VkPhysicalDeviceVulkan12Features_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceVulkan12Features_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceVulkan12Features_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceVulkan12Features_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan12Features *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->samplerMirrorClampToEdge); + vn_decode_VkBool32(dec, &val->drawIndirectCount); + vn_decode_VkBool32(dec, &val->storageBuffer8BitAccess); + vn_decode_VkBool32(dec, &val->uniformAndStorageBuffer8BitAccess); + vn_decode_VkBool32(dec, &val->storagePushConstant8); + vn_decode_VkBool32(dec, &val->shaderBufferInt64Atomics); + vn_decode_VkBool32(dec, &val->shaderSharedInt64Atomics); + vn_decode_VkBool32(dec, &val->shaderFloat16); + vn_decode_VkBool32(dec, &val->shaderInt8); + vn_decode_VkBool32(dec, &val->descriptorIndexing); + vn_decode_VkBool32(dec, &val->shaderInputAttachmentArrayDynamicIndexing); + vn_decode_VkBool32(dec, &val->shaderUniformTexelBufferArrayDynamicIndexing); + vn_decode_VkBool32(dec, &val->shaderStorageTexelBufferArrayDynamicIndexing); + vn_decode_VkBool32(dec, &val->shaderUniformBufferArrayNonUniformIndexing); + vn_decode_VkBool32(dec, &val->shaderSampledImageArrayNonUniformIndexing); + vn_decode_VkBool32(dec, &val->shaderStorageBufferArrayNonUniformIndexing); + vn_decode_VkBool32(dec, &val->shaderStorageImageArrayNonUniformIndexing); + vn_decode_VkBool32(dec, &val->shaderInputAttachmentArrayNonUniformIndexing); + vn_decode_VkBool32(dec, &val->shaderUniformTexelBufferArrayNonUniformIndexing); + vn_decode_VkBool32(dec, &val->shaderStorageTexelBufferArrayNonUniformIndexing); + vn_decode_VkBool32(dec, &val->descriptorBindingUniformBufferUpdateAfterBind); + vn_decode_VkBool32(dec, &val->descriptorBindingSampledImageUpdateAfterBind); + vn_decode_VkBool32(dec, &val->descriptorBindingStorageImageUpdateAfterBind); + vn_decode_VkBool32(dec, &val->descriptorBindingStorageBufferUpdateAfterBind); + vn_decode_VkBool32(dec, &val->descriptorBindingUniformTexelBufferUpdateAfterBind); + vn_decode_VkBool32(dec, &val->descriptorBindingStorageTexelBufferUpdateAfterBind); + vn_decode_VkBool32(dec, &val->descriptorBindingUpdateUnusedWhilePending); + vn_decode_VkBool32(dec, &val->descriptorBindingPartiallyBound); + vn_decode_VkBool32(dec, &val->descriptorBindingVariableDescriptorCount); + vn_decode_VkBool32(dec, &val->runtimeDescriptorArray); + vn_decode_VkBool32(dec, &val->samplerFilterMinmax); + vn_decode_VkBool32(dec, &val->scalarBlockLayout); + vn_decode_VkBool32(dec, &val->imagelessFramebuffer); + vn_decode_VkBool32(dec, &val->uniformBufferStandardLayout); + vn_decode_VkBool32(dec, &val->shaderSubgroupExtendedTypes); + vn_decode_VkBool32(dec, &val->separateDepthStencilLayouts); + vn_decode_VkBool32(dec, &val->hostQueryReset); + vn_decode_VkBool32(dec, &val->timelineSemaphore); + vn_decode_VkBool32(dec, &val->bufferDeviceAddress); + vn_decode_VkBool32(dec, &val->bufferDeviceAddressCaptureReplay); + vn_decode_VkBool32(dec, &val->bufferDeviceAddressMultiDevice); + vn_decode_VkBool32(dec, &val->vulkanMemoryModel); + vn_decode_VkBool32(dec, &val->vulkanMemoryModelDeviceScope); + vn_decode_VkBool32(dec, &val->vulkanMemoryModelAvailabilityVisibilityChains); + vn_decode_VkBool32(dec, &val->shaderOutputViewportIndex); + vn_decode_VkBool32(dec, &val->shaderOutputLayer); + vn_decode_VkBool32(dec, &val->subgroupBroadcastDynamicId); +} + +static inline void +vn_decode_VkPhysicalDeviceVulkan12Features_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan12Features *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceVulkan12Features_pnext_temp(dec); + vn_decode_VkPhysicalDeviceVulkan12Features_self_temp(dec, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceVulkan12Features_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceVulkan12Features_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan12Features *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->samplerMirrorClampToEdge */ + /* skip val->drawIndirectCount */ + /* skip val->storageBuffer8BitAccess */ + /* skip val->uniformAndStorageBuffer8BitAccess */ + /* skip val->storagePushConstant8 */ + /* skip val->shaderBufferInt64Atomics */ + /* skip val->shaderSharedInt64Atomics */ + /* skip val->shaderFloat16 */ + /* skip val->shaderInt8 */ + /* skip val->descriptorIndexing */ + /* skip val->shaderInputAttachmentArrayDynamicIndexing */ + /* skip val->shaderUniformTexelBufferArrayDynamicIndexing */ + /* skip val->shaderStorageTexelBufferArrayDynamicIndexing */ + /* skip val->shaderUniformBufferArrayNonUniformIndexing */ + /* skip val->shaderSampledImageArrayNonUniformIndexing */ + /* skip val->shaderStorageBufferArrayNonUniformIndexing */ + /* skip val->shaderStorageImageArrayNonUniformIndexing */ + /* skip val->shaderInputAttachmentArrayNonUniformIndexing */ + /* skip val->shaderUniformTexelBufferArrayNonUniformIndexing */ + /* skip val->shaderStorageTexelBufferArrayNonUniformIndexing */ + /* skip val->descriptorBindingUniformBufferUpdateAfterBind */ + /* skip val->descriptorBindingSampledImageUpdateAfterBind */ + /* skip val->descriptorBindingStorageImageUpdateAfterBind */ + /* skip val->descriptorBindingStorageBufferUpdateAfterBind */ + /* skip val->descriptorBindingUniformTexelBufferUpdateAfterBind */ + /* skip val->descriptorBindingStorageTexelBufferUpdateAfterBind */ + /* skip val->descriptorBindingUpdateUnusedWhilePending */ + /* skip val->descriptorBindingPartiallyBound */ + /* skip val->descriptorBindingVariableDescriptorCount */ + /* skip val->runtimeDescriptorArray */ + /* skip val->samplerFilterMinmax */ + /* skip val->scalarBlockLayout */ + /* skip val->imagelessFramebuffer */ + /* skip val->uniformBufferStandardLayout */ + /* skip val->shaderSubgroupExtendedTypes */ + /* skip val->separateDepthStencilLayouts */ + /* skip val->hostQueryReset */ + /* skip val->timelineSemaphore */ + /* skip val->bufferDeviceAddress */ + /* skip val->bufferDeviceAddressCaptureReplay */ + /* skip val->bufferDeviceAddressMultiDevice */ + /* skip val->vulkanMemoryModel */ + /* skip val->vulkanMemoryModelDeviceScope */ + /* skip val->vulkanMemoryModelAvailabilityVisibilityChains */ + /* skip val->shaderOutputViewportIndex */ + /* skip val->shaderOutputLayer */ + /* skip val->subgroupBroadcastDynamicId */ +} + +static inline void +vn_decode_VkPhysicalDeviceVulkan12Features_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan12Features *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceVulkan12Features_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceVulkan12Features_self_partial_temp(dec, val); +} + +static inline void +vn_replace_VkPhysicalDeviceVulkan12Features_handle_self(VkPhysicalDeviceVulkan12Features *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->samplerMirrorClampToEdge */ + /* skip val->drawIndirectCount */ + /* skip val->storageBuffer8BitAccess */ + /* skip val->uniformAndStorageBuffer8BitAccess */ + /* skip val->storagePushConstant8 */ + /* skip val->shaderBufferInt64Atomics */ + /* skip val->shaderSharedInt64Atomics */ + /* skip val->shaderFloat16 */ + /* skip val->shaderInt8 */ + /* skip val->descriptorIndexing */ + /* skip val->shaderInputAttachmentArrayDynamicIndexing */ + /* skip val->shaderUniformTexelBufferArrayDynamicIndexing */ + /* skip val->shaderStorageTexelBufferArrayDynamicIndexing */ + /* skip val->shaderUniformBufferArrayNonUniformIndexing */ + /* skip val->shaderSampledImageArrayNonUniformIndexing */ + /* skip val->shaderStorageBufferArrayNonUniformIndexing */ + /* skip val->shaderStorageImageArrayNonUniformIndexing */ + /* skip val->shaderInputAttachmentArrayNonUniformIndexing */ + /* skip val->shaderUniformTexelBufferArrayNonUniformIndexing */ + /* skip val->shaderStorageTexelBufferArrayNonUniformIndexing */ + /* skip val->descriptorBindingUniformBufferUpdateAfterBind */ + /* skip val->descriptorBindingSampledImageUpdateAfterBind */ + /* skip val->descriptorBindingStorageImageUpdateAfterBind */ + /* skip val->descriptorBindingStorageBufferUpdateAfterBind */ + /* skip val->descriptorBindingUniformTexelBufferUpdateAfterBind */ + /* skip val->descriptorBindingStorageTexelBufferUpdateAfterBind */ + /* skip val->descriptorBindingUpdateUnusedWhilePending */ + /* skip val->descriptorBindingPartiallyBound */ + /* skip val->descriptorBindingVariableDescriptorCount */ + /* skip val->runtimeDescriptorArray */ + /* skip val->samplerFilterMinmax */ + /* skip val->scalarBlockLayout */ + /* skip val->imagelessFramebuffer */ + /* skip val->uniformBufferStandardLayout */ + /* skip val->shaderSubgroupExtendedTypes */ + /* skip val->separateDepthStencilLayouts */ + /* skip val->hostQueryReset */ + /* skip val->timelineSemaphore */ + /* skip val->bufferDeviceAddress */ + /* skip val->bufferDeviceAddressCaptureReplay */ + /* skip val->bufferDeviceAddressMultiDevice */ + /* skip val->vulkanMemoryModel */ + /* skip val->vulkanMemoryModelDeviceScope */ + /* skip val->vulkanMemoryModelAvailabilityVisibilityChains */ + /* skip val->shaderOutputViewportIndex */ + /* skip val->shaderOutputLayer */ + /* skip val->subgroupBroadcastDynamicId */ +} + +static inline void +vn_replace_VkPhysicalDeviceVulkan12Features_handle(VkPhysicalDeviceVulkan12Features *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: + vn_replace_VkPhysicalDeviceVulkan12Features_handle_self((VkPhysicalDeviceVulkan12Features *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPhysicalDeviceVulkan13Features chain */ + +static inline void +vn_encode_VkPhysicalDeviceVulkan13Features_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceVulkan13Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan13Features *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->robustImageAccess); + vn_encode_VkBool32(enc, &val->inlineUniformBlock); + vn_encode_VkBool32(enc, &val->descriptorBindingInlineUniformBlockUpdateAfterBind); + vn_encode_VkBool32(enc, &val->pipelineCreationCacheControl); + vn_encode_VkBool32(enc, &val->privateData); + vn_encode_VkBool32(enc, &val->shaderDemoteToHelperInvocation); + vn_encode_VkBool32(enc, &val->shaderTerminateInvocation); + vn_encode_VkBool32(enc, &val->subgroupSizeControl); + vn_encode_VkBool32(enc, &val->computeFullSubgroups); + vn_encode_VkBool32(enc, &val->synchronization2); + vn_encode_VkBool32(enc, &val->textureCompressionASTC_HDR); + vn_encode_VkBool32(enc, &val->shaderZeroInitializeWorkgroupMemory); + vn_encode_VkBool32(enc, &val->dynamicRendering); + vn_encode_VkBool32(enc, &val->shaderIntegerDotProduct); + vn_encode_VkBool32(enc, &val->maintenance4); +} + +static inline void +vn_encode_VkPhysicalDeviceVulkan13Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan13Features *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES }); + vn_encode_VkPhysicalDeviceVulkan13Features_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceVulkan13Features_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceVulkan13Features_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceVulkan13Features_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan13Features *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->robustImageAccess); + vn_decode_VkBool32(dec, &val->inlineUniformBlock); + vn_decode_VkBool32(dec, &val->descriptorBindingInlineUniformBlockUpdateAfterBind); + vn_decode_VkBool32(dec, &val->pipelineCreationCacheControl); + vn_decode_VkBool32(dec, &val->privateData); + vn_decode_VkBool32(dec, &val->shaderDemoteToHelperInvocation); + vn_decode_VkBool32(dec, &val->shaderTerminateInvocation); + vn_decode_VkBool32(dec, &val->subgroupSizeControl); + vn_decode_VkBool32(dec, &val->computeFullSubgroups); + vn_decode_VkBool32(dec, &val->synchronization2); + vn_decode_VkBool32(dec, &val->textureCompressionASTC_HDR); + vn_decode_VkBool32(dec, &val->shaderZeroInitializeWorkgroupMemory); + vn_decode_VkBool32(dec, &val->dynamicRendering); + vn_decode_VkBool32(dec, &val->shaderIntegerDotProduct); + vn_decode_VkBool32(dec, &val->maintenance4); +} + +static inline void +vn_decode_VkPhysicalDeviceVulkan13Features_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan13Features *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceVulkan13Features_pnext_temp(dec); + vn_decode_VkPhysicalDeviceVulkan13Features_self_temp(dec, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceVulkan13Features_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceVulkan13Features_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan13Features *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->robustImageAccess */ + /* skip val->inlineUniformBlock */ + /* skip val->descriptorBindingInlineUniformBlockUpdateAfterBind */ + /* skip val->pipelineCreationCacheControl */ + /* skip val->privateData */ + /* skip val->shaderDemoteToHelperInvocation */ + /* skip val->shaderTerminateInvocation */ + /* skip val->subgroupSizeControl */ + /* skip val->computeFullSubgroups */ + /* skip val->synchronization2 */ + /* skip val->textureCompressionASTC_HDR */ + /* skip val->shaderZeroInitializeWorkgroupMemory */ + /* skip val->dynamicRendering */ + /* skip val->shaderIntegerDotProduct */ + /* skip val->maintenance4 */ +} + +static inline void +vn_decode_VkPhysicalDeviceVulkan13Features_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan13Features *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceVulkan13Features_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceVulkan13Features_self_partial_temp(dec, val); +} + +static inline void +vn_replace_VkPhysicalDeviceVulkan13Features_handle_self(VkPhysicalDeviceVulkan13Features *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->robustImageAccess */ + /* skip val->inlineUniformBlock */ + /* skip val->descriptorBindingInlineUniformBlockUpdateAfterBind */ + /* skip val->pipelineCreationCacheControl */ + /* skip val->privateData */ + /* skip val->shaderDemoteToHelperInvocation */ + /* skip val->shaderTerminateInvocation */ + /* skip val->subgroupSizeControl */ + /* skip val->computeFullSubgroups */ + /* skip val->synchronization2 */ + /* skip val->textureCompressionASTC_HDR */ + /* skip val->shaderZeroInitializeWorkgroupMemory */ + /* skip val->dynamicRendering */ + /* skip val->shaderIntegerDotProduct */ + /* skip val->maintenance4 */ +} + +static inline void +vn_replace_VkPhysicalDeviceVulkan13Features_handle(VkPhysicalDeviceVulkan13Features *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: + vn_replace_VkPhysicalDeviceVulkan13Features_handle_self((VkPhysicalDeviceVulkan13Features *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT chain */ + +static inline void +vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->extendedDynamicState); +} + +static inline void +vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT }); + vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->extendedDynamicState); +} + +static inline void +vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext_temp(dec); + vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_temp(dec, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->extendedDynamicState */ +} + +static inline void +vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_partial_temp(dec, val); +} + +static inline void +vn_replace_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_handle_self(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->extendedDynamicState */ +} + +static inline void +vn_replace_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_handle(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: + vn_replace_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_handle_self((VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT chain */ + +static inline void +vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->extendedDynamicState2); + vn_encode_VkBool32(enc, &val->extendedDynamicState2LogicOp); + vn_encode_VkBool32(enc, &val->extendedDynamicState2PatchControlPoints); +} + +static inline void +vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT }); + vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->extendedDynamicState2); + vn_decode_VkBool32(dec, &val->extendedDynamicState2LogicOp); + vn_decode_VkBool32(dec, &val->extendedDynamicState2PatchControlPoints); +} + +static inline void +vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext_temp(dec); + vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_temp(dec, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->extendedDynamicState2 */ + /* skip val->extendedDynamicState2LogicOp */ + /* skip val->extendedDynamicState2PatchControlPoints */ +} + +static inline void +vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_partial_temp(dec, val); +} + +static inline void +vn_replace_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_handle_self(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->extendedDynamicState2 */ + /* skip val->extendedDynamicState2LogicOp */ + /* skip val->extendedDynamicState2PatchControlPoints */ +} + +static inline void +vn_replace_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_handle(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: + vn_replace_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_handle_self((VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures chain */ + +static inline void +vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->shaderZeroInitializeWorkgroupMemory); +} + +static inline void +vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES }); + vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->shaderZeroInitializeWorkgroupMemory); +} + +static inline void +vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext_temp(dec); + vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_temp(dec, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->shaderZeroInitializeWorkgroupMemory */ +} + +static inline void +vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_partial_temp(dec, val); +} + +static inline void +vn_replace_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_handle_self(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->shaderZeroInitializeWorkgroupMemory */ +} + +static inline void +vn_replace_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_handle(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: + vn_replace_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_handle_self((VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPhysicalDeviceImageRobustnessFeatures chain */ + +static inline void +vn_encode_VkPhysicalDeviceImageRobustnessFeatures_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceImageRobustnessFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceImageRobustnessFeatures *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->robustImageAccess); +} + +static inline void +vn_encode_VkPhysicalDeviceImageRobustnessFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceImageRobustnessFeatures *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES }); + vn_encode_VkPhysicalDeviceImageRobustnessFeatures_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceImageRobustnessFeatures_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceImageRobustnessFeatures_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceImageRobustnessFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceImageRobustnessFeatures *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->robustImageAccess); +} + +static inline void +vn_decode_VkPhysicalDeviceImageRobustnessFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceImageRobustnessFeatures *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceImageRobustnessFeatures_pnext_temp(dec); + vn_decode_VkPhysicalDeviceImageRobustnessFeatures_self_temp(dec, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceImageRobustnessFeatures_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceImageRobustnessFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceImageRobustnessFeatures *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->robustImageAccess */ +} + +static inline void +vn_decode_VkPhysicalDeviceImageRobustnessFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceImageRobustnessFeatures *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceImageRobustnessFeatures_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceImageRobustnessFeatures_self_partial_temp(dec, val); +} + +static inline void +vn_replace_VkPhysicalDeviceImageRobustnessFeatures_handle_self(VkPhysicalDeviceImageRobustnessFeatures *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->robustImageAccess */ +} + +static inline void +vn_replace_VkPhysicalDeviceImageRobustnessFeatures_handle(VkPhysicalDeviceImageRobustnessFeatures *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: + vn_replace_VkPhysicalDeviceImageRobustnessFeatures_handle_self((VkPhysicalDeviceImageRobustnessFeatures *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPhysicalDevice4444FormatsFeaturesEXT chain */ + +static inline void +vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDevice4444FormatsFeaturesEXT *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->formatA4R4G4B4); + vn_encode_VkBool32(enc, &val->formatA4B4G4R4); +} + +static inline void +vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDevice4444FormatsFeaturesEXT *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT }); + vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext(enc, val->pNext); + vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDevice4444FormatsFeaturesEXT *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->formatA4R4G4B4); + vn_decode_VkBool32(dec, &val->formatA4B4G4R4); +} + +static inline void +vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDevice4444FormatsFeaturesEXT *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext_temp(dec); + vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_self_temp(dec, val); +} + +static inline void * +vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevice4444FormatsFeaturesEXT *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->formatA4R4G4B4 */ + /* skip val->formatA4B4G4R4 */ +} + +static inline void +vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDevice4444FormatsFeaturesEXT *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_pnext_partial_temp(dec); + vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_self_partial_temp(dec, val); +} + +static inline void +vn_replace_VkPhysicalDevice4444FormatsFeaturesEXT_handle_self(VkPhysicalDevice4444FormatsFeaturesEXT *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->formatA4R4G4B4 */ + /* skip val->formatA4B4G4R4 */ +} + +static inline void +vn_replace_VkPhysicalDevice4444FormatsFeaturesEXT_handle(VkPhysicalDevice4444FormatsFeaturesEXT *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: + vn_replace_VkPhysicalDevice4444FormatsFeaturesEXT_handle_self((VkPhysicalDevice4444FormatsFeaturesEXT *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPhysicalDeviceShaderTerminateInvocationFeatures chain */ + +static inline void +vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderTerminateInvocationFeatures *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->shaderTerminateInvocation); +} + +static inline void +vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderTerminateInvocationFeatures *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES }); + vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderTerminateInvocationFeatures *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->shaderTerminateInvocation); +} + +static inline void +vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderTerminateInvocationFeatures *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext_temp(dec); + vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_temp(dec, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderTerminateInvocationFeatures *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->shaderTerminateInvocation */ +} + +static inline void +vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderTerminateInvocationFeatures *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_partial_temp(dec, val); +} + +static inline void +vn_replace_VkPhysicalDeviceShaderTerminateInvocationFeatures_handle_self(VkPhysicalDeviceShaderTerminateInvocationFeatures *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->shaderTerminateInvocation */ +} + +static inline void +vn_replace_VkPhysicalDeviceShaderTerminateInvocationFeatures_handle(VkPhysicalDeviceShaderTerminateInvocationFeatures *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: + vn_replace_VkPhysicalDeviceShaderTerminateInvocationFeatures_handle_self((VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPhysicalDeviceSynchronization2Features chain */ + +static inline void +vn_encode_VkPhysicalDeviceSynchronization2Features_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceSynchronization2Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceSynchronization2Features *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->synchronization2); +} + +static inline void +vn_encode_VkPhysicalDeviceSynchronization2Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceSynchronization2Features *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES }); + vn_encode_VkPhysicalDeviceSynchronization2Features_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceSynchronization2Features_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceSynchronization2Features_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceSynchronization2Features_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSynchronization2Features *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->synchronization2); +} + +static inline void +vn_decode_VkPhysicalDeviceSynchronization2Features_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSynchronization2Features *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceSynchronization2Features_pnext_temp(dec); + vn_decode_VkPhysicalDeviceSynchronization2Features_self_temp(dec, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceSynchronization2Features_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceSynchronization2Features_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSynchronization2Features *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->synchronization2 */ +} + +static inline void +vn_decode_VkPhysicalDeviceSynchronization2Features_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSynchronization2Features *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceSynchronization2Features_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceSynchronization2Features_self_partial_temp(dec, val); +} + +static inline void +vn_replace_VkPhysicalDeviceSynchronization2Features_handle_self(VkPhysicalDeviceSynchronization2Features *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->synchronization2 */ +} + +static inline void +vn_replace_VkPhysicalDeviceSynchronization2Features_handle(VkPhysicalDeviceSynchronization2Features *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: + vn_replace_VkPhysicalDeviceSynchronization2Features_handle_self((VkPhysicalDeviceSynchronization2Features *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT chain */ + +static inline void +vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->ycbcr2plane444Formats); +} + +static inline void +vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT }); + vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->ycbcr2plane444Formats); +} + +static inline void +vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext_temp(dec); + vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_temp(dec, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->ycbcr2plane444Formats */ +} + +static inline void +vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_partial_temp(dec, val); +} + +static inline void +vn_replace_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_handle_self(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->ycbcr2plane444Formats */ +} + +static inline void +vn_replace_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_handle(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: + vn_replace_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_handle_self((VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext); break; default: /* ignore unknown/unsupported struct */ @@ -3057,44 +5489,33 @@ vn_replace_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_handle(VkPhysical } while (pnext); } -/* struct VkPhysicalDeviceVulkan11Features chain */ +/* struct VkPhysicalDeviceShaderIntegerDotProductFeatures chain */ static inline void -vn_encode_VkPhysicalDeviceVulkan11Features_pnext(struct vn_cs_encoder *enc, const void *val) +vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext(struct vn_cs_encoder *enc, const void *val) { /* no known/supported struct */ vn_encode_simple_pointer(enc, NULL); } static inline void -vn_encode_VkPhysicalDeviceVulkan11Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan11Features *val) +vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderIntegerDotProductFeatures *val) { /* skip val->{sType,pNext} */ - vn_encode_VkBool32(enc, &val->storageBuffer16BitAccess); - vn_encode_VkBool32(enc, &val->uniformAndStorageBuffer16BitAccess); - vn_encode_VkBool32(enc, &val->storagePushConstant16); - vn_encode_VkBool32(enc, &val->storageInputOutput16); - vn_encode_VkBool32(enc, &val->multiview); - vn_encode_VkBool32(enc, &val->multiviewGeometryShader); - vn_encode_VkBool32(enc, &val->multiviewTessellationShader); - vn_encode_VkBool32(enc, &val->variablePointersStorageBuffer); - vn_encode_VkBool32(enc, &val->variablePointers); - vn_encode_VkBool32(enc, &val->protectedMemory); - vn_encode_VkBool32(enc, &val->samplerYcbcrConversion); - vn_encode_VkBool32(enc, &val->shaderDrawParameters); + vn_encode_VkBool32(enc, &val->shaderIntegerDotProduct); } static inline void -vn_encode_VkPhysicalDeviceVulkan11Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan11Features *val) +vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderIntegerDotProductFeatures *val) { - assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES); - vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES }); - vn_encode_VkPhysicalDeviceVulkan11Features_pnext(enc, val->pNext); - vn_encode_VkPhysicalDeviceVulkan11Features_self(enc, val); + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES }); + vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self(enc, val); } static inline void * -vn_decode_VkPhysicalDeviceVulkan11Features_pnext_temp(struct vn_cs_decoder *dec) +vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext_temp(struct vn_cs_decoder *dec) { /* no known/supported struct */ if (vn_decode_simple_pointer(dec)) @@ -3103,38 +5524,27 @@ vn_decode_VkPhysicalDeviceVulkan11Features_pnext_temp(struct vn_cs_decoder *dec) } static inline void -vn_decode_VkPhysicalDeviceVulkan11Features_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan11Features *val) +vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderIntegerDotProductFeatures *val) { /* skip val->{sType,pNext} */ - vn_decode_VkBool32(dec, &val->storageBuffer16BitAccess); - vn_decode_VkBool32(dec, &val->uniformAndStorageBuffer16BitAccess); - vn_decode_VkBool32(dec, &val->storagePushConstant16); - vn_decode_VkBool32(dec, &val->storageInputOutput16); - vn_decode_VkBool32(dec, &val->multiview); - vn_decode_VkBool32(dec, &val->multiviewGeometryShader); - vn_decode_VkBool32(dec, &val->multiviewTessellationShader); - vn_decode_VkBool32(dec, &val->variablePointersStorageBuffer); - vn_decode_VkBool32(dec, &val->variablePointers); - vn_decode_VkBool32(dec, &val->protectedMemory); - vn_decode_VkBool32(dec, &val->samplerYcbcrConversion); - vn_decode_VkBool32(dec, &val->shaderDrawParameters); + vn_decode_VkBool32(dec, &val->shaderIntegerDotProduct); } static inline void -vn_decode_VkPhysicalDeviceVulkan11Features_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan11Features *val) +vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderIntegerDotProductFeatures *val) { VkStructureType stype; vn_decode_VkStructureType(dec, &stype); - if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES) + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES) vn_cs_decoder_set_fatal(dec); val->sType = stype; - val->pNext = vn_decode_VkPhysicalDeviceVulkan11Features_pnext_temp(dec); - vn_decode_VkPhysicalDeviceVulkan11Features_self_temp(dec, val); + val->pNext = vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext_temp(dec); + vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_temp(dec, val); } static inline void * -vn_decode_VkPhysicalDeviceVulkan11Features_pnext_partial_temp(struct vn_cs_decoder *dec) +vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext_partial_temp(struct vn_cs_decoder *dec) { /* no known/supported struct */ if (vn_decode_simple_pointer(dec)) @@ -3143,64 +5553,42 @@ vn_decode_VkPhysicalDeviceVulkan11Features_pnext_partial_temp(struct vn_cs_decod } static inline void -vn_decode_VkPhysicalDeviceVulkan11Features_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan11Features *val) +vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderIntegerDotProductFeatures *val) { /* skip val->{sType,pNext} */ - /* skip val->storageBuffer16BitAccess */ - /* skip val->uniformAndStorageBuffer16BitAccess */ - /* skip val->storagePushConstant16 */ - /* skip val->storageInputOutput16 */ - /* skip val->multiview */ - /* skip val->multiviewGeometryShader */ - /* skip val->multiviewTessellationShader */ - /* skip val->variablePointersStorageBuffer */ - /* skip val->variablePointers */ - /* skip val->protectedMemory */ - /* skip val->samplerYcbcrConversion */ - /* skip val->shaderDrawParameters */ + /* skip val->shaderIntegerDotProduct */ } static inline void -vn_decode_VkPhysicalDeviceVulkan11Features_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan11Features *val) +vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderIntegerDotProductFeatures *val) { VkStructureType stype; vn_decode_VkStructureType(dec, &stype); - if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES) + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES) vn_cs_decoder_set_fatal(dec); val->sType = stype; - val->pNext = vn_decode_VkPhysicalDeviceVulkan11Features_pnext_partial_temp(dec); - vn_decode_VkPhysicalDeviceVulkan11Features_self_partial_temp(dec, val); + val->pNext = vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_partial_temp(dec, val); } static inline void -vn_replace_VkPhysicalDeviceVulkan11Features_handle_self(VkPhysicalDeviceVulkan11Features *val) +vn_replace_VkPhysicalDeviceShaderIntegerDotProductFeatures_handle_self(VkPhysicalDeviceShaderIntegerDotProductFeatures *val) { /* skip val->sType */ /* skip val->pNext */ - /* skip val->storageBuffer16BitAccess */ - /* skip val->uniformAndStorageBuffer16BitAccess */ - /* skip val->storagePushConstant16 */ - /* skip val->storageInputOutput16 */ - /* skip val->multiview */ - /* skip val->multiviewGeometryShader */ - /* skip val->multiviewTessellationShader */ - /* skip val->variablePointersStorageBuffer */ - /* skip val->variablePointers */ - /* skip val->protectedMemory */ - /* skip val->samplerYcbcrConversion */ - /* skip val->shaderDrawParameters */ + /* skip val->shaderIntegerDotProduct */ } static inline void -vn_replace_VkPhysicalDeviceVulkan11Features_handle(VkPhysicalDeviceVulkan11Features *val) +vn_replace_VkPhysicalDeviceShaderIntegerDotProductFeatures_handle(VkPhysicalDeviceShaderIntegerDotProductFeatures *val) { struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; do { switch ((int32_t)pnext->sType) { - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: - vn_replace_VkPhysicalDeviceVulkan11Features_handle_self((VkPhysicalDeviceVulkan11Features *)pnext); + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: + vn_replace_VkPhysicalDeviceShaderIntegerDotProductFeatures_handle_self((VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext); break; default: /* ignore unknown/unsupported struct */ @@ -3210,79 +5598,33 @@ vn_replace_VkPhysicalDeviceVulkan11Features_handle(VkPhysicalDeviceVulkan11Featu } while (pnext); } -/* struct VkPhysicalDeviceVulkan12Features chain */ +/* struct VkPhysicalDeviceDynamicRenderingFeatures chain */ static inline void -vn_encode_VkPhysicalDeviceVulkan12Features_pnext(struct vn_cs_encoder *enc, const void *val) +vn_encode_VkPhysicalDeviceDynamicRenderingFeatures_pnext(struct vn_cs_encoder *enc, const void *val) { /* no known/supported struct */ vn_encode_simple_pointer(enc, NULL); } static inline void -vn_encode_VkPhysicalDeviceVulkan12Features_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan12Features *val) +vn_encode_VkPhysicalDeviceDynamicRenderingFeatures_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceDynamicRenderingFeatures *val) { /* skip val->{sType,pNext} */ - vn_encode_VkBool32(enc, &val->samplerMirrorClampToEdge); - vn_encode_VkBool32(enc, &val->drawIndirectCount); - vn_encode_VkBool32(enc, &val->storageBuffer8BitAccess); - vn_encode_VkBool32(enc, &val->uniformAndStorageBuffer8BitAccess); - vn_encode_VkBool32(enc, &val->storagePushConstant8); - vn_encode_VkBool32(enc, &val->shaderBufferInt64Atomics); - vn_encode_VkBool32(enc, &val->shaderSharedInt64Atomics); - vn_encode_VkBool32(enc, &val->shaderFloat16); - vn_encode_VkBool32(enc, &val->shaderInt8); - vn_encode_VkBool32(enc, &val->descriptorIndexing); - vn_encode_VkBool32(enc, &val->shaderInputAttachmentArrayDynamicIndexing); - vn_encode_VkBool32(enc, &val->shaderUniformTexelBufferArrayDynamicIndexing); - vn_encode_VkBool32(enc, &val->shaderStorageTexelBufferArrayDynamicIndexing); - vn_encode_VkBool32(enc, &val->shaderUniformBufferArrayNonUniformIndexing); - vn_encode_VkBool32(enc, &val->shaderSampledImageArrayNonUniformIndexing); - vn_encode_VkBool32(enc, &val->shaderStorageBufferArrayNonUniformIndexing); - vn_encode_VkBool32(enc, &val->shaderStorageImageArrayNonUniformIndexing); - vn_encode_VkBool32(enc, &val->shaderInputAttachmentArrayNonUniformIndexing); - vn_encode_VkBool32(enc, &val->shaderUniformTexelBufferArrayNonUniformIndexing); - vn_encode_VkBool32(enc, &val->shaderStorageTexelBufferArrayNonUniformIndexing); - vn_encode_VkBool32(enc, &val->descriptorBindingUniformBufferUpdateAfterBind); - vn_encode_VkBool32(enc, &val->descriptorBindingSampledImageUpdateAfterBind); - vn_encode_VkBool32(enc, &val->descriptorBindingStorageImageUpdateAfterBind); - vn_encode_VkBool32(enc, &val->descriptorBindingStorageBufferUpdateAfterBind); - vn_encode_VkBool32(enc, &val->descriptorBindingUniformTexelBufferUpdateAfterBind); - vn_encode_VkBool32(enc, &val->descriptorBindingStorageTexelBufferUpdateAfterBind); - vn_encode_VkBool32(enc, &val->descriptorBindingUpdateUnusedWhilePending); - vn_encode_VkBool32(enc, &val->descriptorBindingPartiallyBound); - vn_encode_VkBool32(enc, &val->descriptorBindingVariableDescriptorCount); - vn_encode_VkBool32(enc, &val->runtimeDescriptorArray); - vn_encode_VkBool32(enc, &val->samplerFilterMinmax); - vn_encode_VkBool32(enc, &val->scalarBlockLayout); - vn_encode_VkBool32(enc, &val->imagelessFramebuffer); - vn_encode_VkBool32(enc, &val->uniformBufferStandardLayout); - vn_encode_VkBool32(enc, &val->shaderSubgroupExtendedTypes); - vn_encode_VkBool32(enc, &val->separateDepthStencilLayouts); - vn_encode_VkBool32(enc, &val->hostQueryReset); - vn_encode_VkBool32(enc, &val->timelineSemaphore); - vn_encode_VkBool32(enc, &val->bufferDeviceAddress); - vn_encode_VkBool32(enc, &val->bufferDeviceAddressCaptureReplay); - vn_encode_VkBool32(enc, &val->bufferDeviceAddressMultiDevice); - vn_encode_VkBool32(enc, &val->vulkanMemoryModel); - vn_encode_VkBool32(enc, &val->vulkanMemoryModelDeviceScope); - vn_encode_VkBool32(enc, &val->vulkanMemoryModelAvailabilityVisibilityChains); - vn_encode_VkBool32(enc, &val->shaderOutputViewportIndex); - vn_encode_VkBool32(enc, &val->shaderOutputLayer); - vn_encode_VkBool32(enc, &val->subgroupBroadcastDynamicId); + vn_encode_VkBool32(enc, &val->dynamicRendering); } static inline void -vn_encode_VkPhysicalDeviceVulkan12Features(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan12Features *val) +vn_encode_VkPhysicalDeviceDynamicRenderingFeatures(struct vn_cs_encoder *enc, const VkPhysicalDeviceDynamicRenderingFeatures *val) { - assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES); - vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES }); - vn_encode_VkPhysicalDeviceVulkan12Features_pnext(enc, val->pNext); - vn_encode_VkPhysicalDeviceVulkan12Features_self(enc, val); + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES }); + vn_encode_VkPhysicalDeviceDynamicRenderingFeatures_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceDynamicRenderingFeatures_self(enc, val); } static inline void * -vn_decode_VkPhysicalDeviceVulkan12Features_pnext_temp(struct vn_cs_decoder *dec) +vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_pnext_temp(struct vn_cs_decoder *dec) { /* no known/supported struct */ if (vn_decode_simple_pointer(dec)) @@ -3291,73 +5633,27 @@ vn_decode_VkPhysicalDeviceVulkan12Features_pnext_temp(struct vn_cs_decoder *dec) } static inline void -vn_decode_VkPhysicalDeviceVulkan12Features_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan12Features *val) +vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDynamicRenderingFeatures *val) { /* skip val->{sType,pNext} */ - vn_decode_VkBool32(dec, &val->samplerMirrorClampToEdge); - vn_decode_VkBool32(dec, &val->drawIndirectCount); - vn_decode_VkBool32(dec, &val->storageBuffer8BitAccess); - vn_decode_VkBool32(dec, &val->uniformAndStorageBuffer8BitAccess); - vn_decode_VkBool32(dec, &val->storagePushConstant8); - vn_decode_VkBool32(dec, &val->shaderBufferInt64Atomics); - vn_decode_VkBool32(dec, &val->shaderSharedInt64Atomics); - vn_decode_VkBool32(dec, &val->shaderFloat16); - vn_decode_VkBool32(dec, &val->shaderInt8); - vn_decode_VkBool32(dec, &val->descriptorIndexing); - vn_decode_VkBool32(dec, &val->shaderInputAttachmentArrayDynamicIndexing); - vn_decode_VkBool32(dec, &val->shaderUniformTexelBufferArrayDynamicIndexing); - vn_decode_VkBool32(dec, &val->shaderStorageTexelBufferArrayDynamicIndexing); - vn_decode_VkBool32(dec, &val->shaderUniformBufferArrayNonUniformIndexing); - vn_decode_VkBool32(dec, &val->shaderSampledImageArrayNonUniformIndexing); - vn_decode_VkBool32(dec, &val->shaderStorageBufferArrayNonUniformIndexing); - vn_decode_VkBool32(dec, &val->shaderStorageImageArrayNonUniformIndexing); - vn_decode_VkBool32(dec, &val->shaderInputAttachmentArrayNonUniformIndexing); - vn_decode_VkBool32(dec, &val->shaderUniformTexelBufferArrayNonUniformIndexing); - vn_decode_VkBool32(dec, &val->shaderStorageTexelBufferArrayNonUniformIndexing); - vn_decode_VkBool32(dec, &val->descriptorBindingUniformBufferUpdateAfterBind); - vn_decode_VkBool32(dec, &val->descriptorBindingSampledImageUpdateAfterBind); - vn_decode_VkBool32(dec, &val->descriptorBindingStorageImageUpdateAfterBind); - vn_decode_VkBool32(dec, &val->descriptorBindingStorageBufferUpdateAfterBind); - vn_decode_VkBool32(dec, &val->descriptorBindingUniformTexelBufferUpdateAfterBind); - vn_decode_VkBool32(dec, &val->descriptorBindingStorageTexelBufferUpdateAfterBind); - vn_decode_VkBool32(dec, &val->descriptorBindingUpdateUnusedWhilePending); - vn_decode_VkBool32(dec, &val->descriptorBindingPartiallyBound); - vn_decode_VkBool32(dec, &val->descriptorBindingVariableDescriptorCount); - vn_decode_VkBool32(dec, &val->runtimeDescriptorArray); - vn_decode_VkBool32(dec, &val->samplerFilterMinmax); - vn_decode_VkBool32(dec, &val->scalarBlockLayout); - vn_decode_VkBool32(dec, &val->imagelessFramebuffer); - vn_decode_VkBool32(dec, &val->uniformBufferStandardLayout); - vn_decode_VkBool32(dec, &val->shaderSubgroupExtendedTypes); - vn_decode_VkBool32(dec, &val->separateDepthStencilLayouts); - vn_decode_VkBool32(dec, &val->hostQueryReset); - vn_decode_VkBool32(dec, &val->timelineSemaphore); - vn_decode_VkBool32(dec, &val->bufferDeviceAddress); - vn_decode_VkBool32(dec, &val->bufferDeviceAddressCaptureReplay); - vn_decode_VkBool32(dec, &val->bufferDeviceAddressMultiDevice); - vn_decode_VkBool32(dec, &val->vulkanMemoryModel); - vn_decode_VkBool32(dec, &val->vulkanMemoryModelDeviceScope); - vn_decode_VkBool32(dec, &val->vulkanMemoryModelAvailabilityVisibilityChains); - vn_decode_VkBool32(dec, &val->shaderOutputViewportIndex); - vn_decode_VkBool32(dec, &val->shaderOutputLayer); - vn_decode_VkBool32(dec, &val->subgroupBroadcastDynamicId); + vn_decode_VkBool32(dec, &val->dynamicRendering); } static inline void -vn_decode_VkPhysicalDeviceVulkan12Features_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan12Features *val) +vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDynamicRenderingFeatures *val) { VkStructureType stype; vn_decode_VkStructureType(dec, &stype); - if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES) + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES) vn_cs_decoder_set_fatal(dec); val->sType = stype; - val->pNext = vn_decode_VkPhysicalDeviceVulkan12Features_pnext_temp(dec); - vn_decode_VkPhysicalDeviceVulkan12Features_self_temp(dec, val); + val->pNext = vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_pnext_temp(dec); + vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_self_temp(dec, val); } static inline void * -vn_decode_VkPhysicalDeviceVulkan12Features_pnext_partial_temp(struct vn_cs_decoder *dec) +vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_pnext_partial_temp(struct vn_cs_decoder *dec) { /* no known/supported struct */ if (vn_decode_simple_pointer(dec)) @@ -3366,134 +5662,42 @@ vn_decode_VkPhysicalDeviceVulkan12Features_pnext_partial_temp(struct vn_cs_decod } static inline void -vn_decode_VkPhysicalDeviceVulkan12Features_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan12Features *val) +vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDynamicRenderingFeatures *val) { /* skip val->{sType,pNext} */ - /* skip val->samplerMirrorClampToEdge */ - /* skip val->drawIndirectCount */ - /* skip val->storageBuffer8BitAccess */ - /* skip val->uniformAndStorageBuffer8BitAccess */ - /* skip val->storagePushConstant8 */ - /* skip val->shaderBufferInt64Atomics */ - /* skip val->shaderSharedInt64Atomics */ - /* skip val->shaderFloat16 */ - /* skip val->shaderInt8 */ - /* skip val->descriptorIndexing */ - /* skip val->shaderInputAttachmentArrayDynamicIndexing */ - /* skip val->shaderUniformTexelBufferArrayDynamicIndexing */ - /* skip val->shaderStorageTexelBufferArrayDynamicIndexing */ - /* skip val->shaderUniformBufferArrayNonUniformIndexing */ - /* skip val->shaderSampledImageArrayNonUniformIndexing */ - /* skip val->shaderStorageBufferArrayNonUniformIndexing */ - /* skip val->shaderStorageImageArrayNonUniformIndexing */ - /* skip val->shaderInputAttachmentArrayNonUniformIndexing */ - /* skip val->shaderUniformTexelBufferArrayNonUniformIndexing */ - /* skip val->shaderStorageTexelBufferArrayNonUniformIndexing */ - /* skip val->descriptorBindingUniformBufferUpdateAfterBind */ - /* skip val->descriptorBindingSampledImageUpdateAfterBind */ - /* skip val->descriptorBindingStorageImageUpdateAfterBind */ - /* skip val->descriptorBindingStorageBufferUpdateAfterBind */ - /* skip val->descriptorBindingUniformTexelBufferUpdateAfterBind */ - /* skip val->descriptorBindingStorageTexelBufferUpdateAfterBind */ - /* skip val->descriptorBindingUpdateUnusedWhilePending */ - /* skip val->descriptorBindingPartiallyBound */ - /* skip val->descriptorBindingVariableDescriptorCount */ - /* skip val->runtimeDescriptorArray */ - /* skip val->samplerFilterMinmax */ - /* skip val->scalarBlockLayout */ - /* skip val->imagelessFramebuffer */ - /* skip val->uniformBufferStandardLayout */ - /* skip val->shaderSubgroupExtendedTypes */ - /* skip val->separateDepthStencilLayouts */ - /* skip val->hostQueryReset */ - /* skip val->timelineSemaphore */ - /* skip val->bufferDeviceAddress */ - /* skip val->bufferDeviceAddressCaptureReplay */ - /* skip val->bufferDeviceAddressMultiDevice */ - /* skip val->vulkanMemoryModel */ - /* skip val->vulkanMemoryModelDeviceScope */ - /* skip val->vulkanMemoryModelAvailabilityVisibilityChains */ - /* skip val->shaderOutputViewportIndex */ - /* skip val->shaderOutputLayer */ - /* skip val->subgroupBroadcastDynamicId */ + /* skip val->dynamicRendering */ } static inline void -vn_decode_VkPhysicalDeviceVulkan12Features_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan12Features *val) +vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceDynamicRenderingFeatures *val) { VkStructureType stype; vn_decode_VkStructureType(dec, &stype); - if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES) + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES) vn_cs_decoder_set_fatal(dec); val->sType = stype; - val->pNext = vn_decode_VkPhysicalDeviceVulkan12Features_pnext_partial_temp(dec); - vn_decode_VkPhysicalDeviceVulkan12Features_self_partial_temp(dec, val); + val->pNext = vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_self_partial_temp(dec, val); } static inline void -vn_replace_VkPhysicalDeviceVulkan12Features_handle_self(VkPhysicalDeviceVulkan12Features *val) +vn_replace_VkPhysicalDeviceDynamicRenderingFeatures_handle_self(VkPhysicalDeviceDynamicRenderingFeatures *val) { /* skip val->sType */ /* skip val->pNext */ - /* skip val->samplerMirrorClampToEdge */ - /* skip val->drawIndirectCount */ - /* skip val->storageBuffer8BitAccess */ - /* skip val->uniformAndStorageBuffer8BitAccess */ - /* skip val->storagePushConstant8 */ - /* skip val->shaderBufferInt64Atomics */ - /* skip val->shaderSharedInt64Atomics */ - /* skip val->shaderFloat16 */ - /* skip val->shaderInt8 */ - /* skip val->descriptorIndexing */ - /* skip val->shaderInputAttachmentArrayDynamicIndexing */ - /* skip val->shaderUniformTexelBufferArrayDynamicIndexing */ - /* skip val->shaderStorageTexelBufferArrayDynamicIndexing */ - /* skip val->shaderUniformBufferArrayNonUniformIndexing */ - /* skip val->shaderSampledImageArrayNonUniformIndexing */ - /* skip val->shaderStorageBufferArrayNonUniformIndexing */ - /* skip val->shaderStorageImageArrayNonUniformIndexing */ - /* skip val->shaderInputAttachmentArrayNonUniformIndexing */ - /* skip val->shaderUniformTexelBufferArrayNonUniformIndexing */ - /* skip val->shaderStorageTexelBufferArrayNonUniformIndexing */ - /* skip val->descriptorBindingUniformBufferUpdateAfterBind */ - /* skip val->descriptorBindingSampledImageUpdateAfterBind */ - /* skip val->descriptorBindingStorageImageUpdateAfterBind */ - /* skip val->descriptorBindingStorageBufferUpdateAfterBind */ - /* skip val->descriptorBindingUniformTexelBufferUpdateAfterBind */ - /* skip val->descriptorBindingStorageTexelBufferUpdateAfterBind */ - /* skip val->descriptorBindingUpdateUnusedWhilePending */ - /* skip val->descriptorBindingPartiallyBound */ - /* skip val->descriptorBindingVariableDescriptorCount */ - /* skip val->runtimeDescriptorArray */ - /* skip val->samplerFilterMinmax */ - /* skip val->scalarBlockLayout */ - /* skip val->imagelessFramebuffer */ - /* skip val->uniformBufferStandardLayout */ - /* skip val->shaderSubgroupExtendedTypes */ - /* skip val->separateDepthStencilLayouts */ - /* skip val->hostQueryReset */ - /* skip val->timelineSemaphore */ - /* skip val->bufferDeviceAddress */ - /* skip val->bufferDeviceAddressCaptureReplay */ - /* skip val->bufferDeviceAddressMultiDevice */ - /* skip val->vulkanMemoryModel */ - /* skip val->vulkanMemoryModelDeviceScope */ - /* skip val->vulkanMemoryModelAvailabilityVisibilityChains */ - /* skip val->shaderOutputViewportIndex */ - /* skip val->shaderOutputLayer */ - /* skip val->subgroupBroadcastDynamicId */ + /* skip val->dynamicRendering */ } static inline void -vn_replace_VkPhysicalDeviceVulkan12Features_handle(VkPhysicalDeviceVulkan12Features *val) +vn_replace_VkPhysicalDeviceDynamicRenderingFeatures_handle(VkPhysicalDeviceDynamicRenderingFeatures *val) { struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; do { switch ((int32_t)pnext->sType) { - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: - vn_replace_VkPhysicalDeviceVulkan12Features_handle_self((VkPhysicalDeviceVulkan12Features *)pnext); + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: + vn_replace_VkPhysicalDeviceDynamicRenderingFeatures_handle_self((VkPhysicalDeviceDynamicRenderingFeatures *)pnext); break; default: /* ignore unknown/unsupported struct */ @@ -3512,6 +5716,12 @@ vn_encode_VkPhysicalDeviceFeatures2_pnext(struct vn_cs_encoder *enc, const void while (pnext) { switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDevicePrivateDataFeatures_self(enc, (const VkPhysicalDevicePrivateDataFeatures *)pnext); + return; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: vn_encode_simple_pointer(enc, pnext); vn_encode_VkStructureType(enc, &pnext->sType); @@ -3548,6 +5758,18 @@ vn_encode_VkPhysicalDeviceFeatures2_pnext(struct vn_cs_encoder *enc, const void vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); vn_encode_VkPhysicalDeviceProtectedMemoryFeatures_self(enc, (const VkPhysicalDeviceProtectedMemoryFeatures *)pnext); return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceInlineUniformBlockFeatures_self(enc, (const VkPhysicalDeviceInlineUniformBlockFeatures *)pnext); + return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceMaintenance4Features_self(enc, (const VkPhysicalDeviceMaintenance4Features *)pnext); + return; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: vn_encode_simple_pointer(enc, pnext); vn_encode_VkStructureType(enc, &pnext->sType); @@ -3626,12 +5848,42 @@ vn_encode_VkPhysicalDeviceFeatures2_pnext(struct vn_cs_encoder *enc, const void vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); vn_encode_VkPhysicalDeviceImagelessFramebufferFeatures_self(enc, (const VkPhysicalDeviceImagelessFramebufferFeatures *)pnext); return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self(enc, (const VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext); + return; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: vn_encode_simple_pointer(enc, pnext); vn_encode_VkStructureType(enc, &pnext->sType); vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); vn_encode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self(enc, (const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext); return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self(enc, (const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext); + return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self(enc, (const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext); + return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_self(enc, (const VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext); + return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self(enc, (const VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext); + return; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: vn_encode_simple_pointer(enc, pnext); vn_encode_VkStructureType(enc, &pnext->sType); @@ -3644,6 +5896,72 @@ vn_encode_VkPhysicalDeviceFeatures2_pnext(struct vn_cs_encoder *enc, const void vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); vn_encode_VkPhysicalDeviceVulkan12Features_self(enc, (const VkPhysicalDeviceVulkan12Features *)pnext); return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceVulkan13Features_self(enc, (const VkPhysicalDeviceVulkan13Features *)pnext); + return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self(enc, (const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext); + return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self(enc, (const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext); + return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self(enc, (const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext); + return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceImageRobustnessFeatures_self(enc, (const VkPhysicalDeviceImageRobustnessFeatures *)pnext); + return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDevice4444FormatsFeaturesEXT_self(enc, (const VkPhysicalDevice4444FormatsFeaturesEXT *)pnext); + return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self(enc, (const VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext); + return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceSynchronization2Features_self(enc, (const VkPhysicalDeviceSynchronization2Features *)pnext); + return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self(enc, (const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext); + return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self(enc, (const VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext); + return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceDynamicRenderingFeatures_self(enc, (const VkPhysicalDeviceDynamicRenderingFeatures *)pnext); + return; default: /* ignore unknown/unsupported struct */ break; @@ -3681,6 +5999,14 @@ vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(struct vn_cs_decoder *dec) vn_decode_VkStructureType(dec, &stype); switch ((int32_t)stype) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePrivateDataFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); + vn_decode_VkPhysicalDevicePrivateDataFeatures_self_temp(dec, (VkPhysicalDevicePrivateDataFeatures *)pnext); + } + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVariablePointersFeatures)); if (pnext) { @@ -3729,6 +6055,22 @@ vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(struct vn_cs_decoder *dec) vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_self_temp(dec, (VkPhysicalDeviceProtectedMemoryFeatures *)pnext); } break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceInlineUniformBlockFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); + vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_self_temp(dec, (VkPhysicalDeviceInlineUniformBlockFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMaintenance4Features)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); + vn_decode_VkPhysicalDeviceMaintenance4Features_self_temp(dec, (VkPhysicalDeviceMaintenance4Features *)pnext); + } + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderDrawParametersFeatures)); if (pnext) { @@ -3766,95 +6108,223 @@ vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(struct vn_cs_decoder *dec) if (pnext) { pnext->sType = stype; pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); - vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_self_temp(dec, (VkPhysicalDeviceTimelineSemaphoreFeatures *)pnext); + vn_decode_VkPhysicalDeviceTimelineSemaphoreFeatures_self_temp(dec, (VkPhysicalDeviceTimelineSemaphoreFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevice8BitStorageFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); + vn_decode_VkPhysicalDevice8BitStorageFeatures_self_temp(dec, (VkPhysicalDevice8BitStorageFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); + vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_self_temp(dec, (VkPhysicalDeviceVulkanMemoryModelFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderAtomicInt64Features)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); + vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_self_temp(dec, (VkPhysicalDeviceShaderAtomicInt64Features *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); + vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self_temp(dec, (VkPhysicalDeviceTransformFeedbackFeaturesEXT *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); + vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_self_temp(dec, (VkPhysicalDeviceScalarBlockLayoutFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); + vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self_temp(dec, (VkPhysicalDeviceUniformBufferStandardLayoutFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); + vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_self_temp(dec, (VkPhysicalDeviceBufferDeviceAddressFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceImagelessFramebufferFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); + vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_self_temp(dec, (VkPhysicalDeviceImagelessFramebufferFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); + vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_temp(dec, (VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); + vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_temp(dec, (VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); + vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_temp(dec, (VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); + vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_temp(dec, (VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSubgroupSizeControlFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); + vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_temp(dec, (VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); + vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_temp(dec, (VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan11Features)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); + vn_decode_VkPhysicalDeviceVulkan11Features_self_temp(dec, (VkPhysicalDeviceVulkan11Features *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan12Features)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); + vn_decode_VkPhysicalDeviceVulkan12Features_self_temp(dec, (VkPhysicalDeviceVulkan12Features *)pnext); } break; - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: - pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevice8BitStorageFeatures)); + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan13Features)); if (pnext) { pnext->sType = stype; pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); - vn_decode_VkPhysicalDevice8BitStorageFeatures_self_temp(dec, (VkPhysicalDevice8BitStorageFeatures *)pnext); + vn_decode_VkPhysicalDeviceVulkan13Features_self_temp(dec, (VkPhysicalDeviceVulkan13Features *)pnext); } break; - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: - pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures)); + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT)); if (pnext) { pnext->sType = stype; pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); - vn_decode_VkPhysicalDeviceVulkanMemoryModelFeatures_self_temp(dec, (VkPhysicalDeviceVulkanMemoryModelFeatures *)pnext); + vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_temp(dec, (VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext); } break; - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: - pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderAtomicInt64Features)); + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT)); if (pnext) { pnext->sType = stype; pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); - vn_decode_VkPhysicalDeviceShaderAtomicInt64Features_self_temp(dec, (VkPhysicalDeviceShaderAtomicInt64Features *)pnext); + vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_temp(dec, (VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext); } break; - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: - pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT)); + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures)); if (pnext) { pnext->sType = stype; pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); - vn_decode_VkPhysicalDeviceTransformFeedbackFeaturesEXT_self_temp(dec, (VkPhysicalDeviceTransformFeedbackFeaturesEXT *)pnext); + vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_temp(dec, (VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext); } break; - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: - pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures)); + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceImageRobustnessFeatures)); if (pnext) { pnext->sType = stype; pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); - vn_decode_VkPhysicalDeviceScalarBlockLayoutFeatures_self_temp(dec, (VkPhysicalDeviceScalarBlockLayoutFeatures *)pnext); + vn_decode_VkPhysicalDeviceImageRobustnessFeatures_self_temp(dec, (VkPhysicalDeviceImageRobustnessFeatures *)pnext); } break; - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: - pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures)); + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevice4444FormatsFeaturesEXT)); if (pnext) { pnext->sType = stype; pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); - vn_decode_VkPhysicalDeviceUniformBufferStandardLayoutFeatures_self_temp(dec, (VkPhysicalDeviceUniformBufferStandardLayoutFeatures *)pnext); + vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_self_temp(dec, (VkPhysicalDevice4444FormatsFeaturesEXT *)pnext); } break; - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: - pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures)); + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderTerminateInvocationFeatures)); if (pnext) { pnext->sType = stype; pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); - vn_decode_VkPhysicalDeviceBufferDeviceAddressFeatures_self_temp(dec, (VkPhysicalDeviceBufferDeviceAddressFeatures *)pnext); + vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_temp(dec, (VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext); } break; - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: - pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceImagelessFramebufferFeatures)); + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSynchronization2Features)); if (pnext) { pnext->sType = stype; pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); - vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_self_temp(dec, (VkPhysicalDeviceImagelessFramebufferFeatures *)pnext); + vn_decode_VkPhysicalDeviceSynchronization2Features_self_temp(dec, (VkPhysicalDeviceSynchronization2Features *)pnext); } break; - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: - pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures)); + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT)); if (pnext) { pnext->sType = stype; pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); - vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_temp(dec, (VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext); + vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_temp(dec, (VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext); } break; - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: - pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan11Features)); + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures)); if (pnext) { pnext->sType = stype; pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); - vn_decode_VkPhysicalDeviceVulkan11Features_self_temp(dec, (VkPhysicalDeviceVulkan11Features *)pnext); + vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_temp(dec, (VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext); } break; - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: - pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan12Features)); + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceDynamicRenderingFeatures)); if (pnext) { pnext->sType = stype; pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec); - vn_decode_VkPhysicalDeviceVulkan12Features_self_temp(dec, (VkPhysicalDeviceVulkan12Features *)pnext); + vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_self_temp(dec, (VkPhysicalDeviceDynamicRenderingFeatures *)pnext); } break; default: @@ -3898,6 +6368,14 @@ vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(struct vn_cs_decoder *dec vn_decode_VkStructureType(dec, &stype); switch ((int32_t)stype) { + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePrivateDataFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDevicePrivateDataFeatures_self_partial_temp(dec, (VkPhysicalDevicePrivateDataFeatures *)pnext); + } + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVariablePointersFeatures)); if (pnext) { @@ -3946,6 +6424,22 @@ vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(struct vn_cs_decoder *dec vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_self_partial_temp(dec, (VkPhysicalDeviceProtectedMemoryFeatures *)pnext); } break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceInlineUniformBlockFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_self_partial_temp(dec, (VkPhysicalDeviceInlineUniformBlockFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMaintenance4Features)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceMaintenance4Features_self_partial_temp(dec, (VkPhysicalDeviceMaintenance4Features *)pnext); + } + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderDrawParametersFeatures)); if (pnext) { @@ -4050,6 +6544,14 @@ vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(struct vn_cs_decoder *dec vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_self_partial_temp(dec, (VkPhysicalDeviceImagelessFramebufferFeatures *)pnext); } break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_partial_temp(dec, (VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext); + } + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures)); if (pnext) { @@ -4058,6 +6560,38 @@ vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(struct vn_cs_decoder *dec vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_partial_temp(dec, (VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext); } break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_partial_temp(dec, (VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSubgroupSizeControlFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_partial_temp(dec, (VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_partial_temp(dec, (VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext); + } + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan11Features)); if (pnext) { @@ -4074,6 +6608,94 @@ vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(struct vn_cs_decoder *dec vn_decode_VkPhysicalDeviceVulkan12Features_self_partial_temp(dec, (VkPhysicalDeviceVulkan12Features *)pnext); } break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan13Features)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceVulkan13Features_self_partial_temp(dec, (VkPhysicalDeviceVulkan13Features *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_partial_temp(dec, (VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceImageRobustnessFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceImageRobustnessFeatures_self_partial_temp(dec, (VkPhysicalDeviceImageRobustnessFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevice4444FormatsFeaturesEXT)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_self_partial_temp(dec, (VkPhysicalDevice4444FormatsFeaturesEXT *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderTerminateInvocationFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_partial_temp(dec, (VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSynchronization2Features)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceSynchronization2Features_self_partial_temp(dec, (VkPhysicalDeviceSynchronization2Features *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_partial_temp(dec, (VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceDynamicRenderingFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_self_partial_temp(dec, (VkPhysicalDeviceDynamicRenderingFeatures *)pnext); + } + break; default: /* unexpected struct */ pnext = NULL; @@ -4122,6 +6744,9 @@ vn_replace_VkPhysicalDeviceFeatures2_handle(VkPhysicalDeviceFeatures2 *val) case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: vn_replace_VkPhysicalDeviceFeatures2_handle_self((VkPhysicalDeviceFeatures2 *)pnext); break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: + vn_replace_VkPhysicalDevicePrivateDataFeatures_handle_self((VkPhysicalDevicePrivateDataFeatures *)pnext); + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: vn_replace_VkPhysicalDeviceVariablePointersFeatures_handle_self((VkPhysicalDeviceVariablePointersFeatures *)pnext); break; @@ -4140,6 +6765,12 @@ vn_replace_VkPhysicalDeviceFeatures2_handle(VkPhysicalDeviceFeatures2 *val) case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: vn_replace_VkPhysicalDeviceProtectedMemoryFeatures_handle_self((VkPhysicalDeviceProtectedMemoryFeatures *)pnext); break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: + vn_replace_VkPhysicalDeviceInlineUniformBlockFeatures_handle_self((VkPhysicalDeviceInlineUniformBlockFeatures *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: + vn_replace_VkPhysicalDeviceMaintenance4Features_handle_self((VkPhysicalDeviceMaintenance4Features *)pnext); + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: vn_replace_VkPhysicalDeviceShaderDrawParametersFeatures_handle_self((VkPhysicalDeviceShaderDrawParametersFeatures *)pnext); break; @@ -4179,15 +6810,63 @@ vn_replace_VkPhysicalDeviceFeatures2_handle(VkPhysicalDeviceFeatures2 *val) case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: vn_replace_VkPhysicalDeviceImagelessFramebufferFeatures_handle_self((VkPhysicalDeviceImagelessFramebufferFeatures *)pnext); break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: + vn_replace_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_handle_self((VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext); + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: vn_replace_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_handle_self((VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext); break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: + vn_replace_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_handle_self((VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: + vn_replace_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_handle_self((VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: + vn_replace_VkPhysicalDeviceSubgroupSizeControlFeatures_handle_self((VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: + vn_replace_VkPhysicalDevicePipelineCreationCacheControlFeatures_handle_self((VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext); + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: vn_replace_VkPhysicalDeviceVulkan11Features_handle_self((VkPhysicalDeviceVulkan11Features *)pnext); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: vn_replace_VkPhysicalDeviceVulkan12Features_handle_self((VkPhysicalDeviceVulkan12Features *)pnext); break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: + vn_replace_VkPhysicalDeviceVulkan13Features_handle_self((VkPhysicalDeviceVulkan13Features *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: + vn_replace_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_handle_self((VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: + vn_replace_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_handle_self((VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: + vn_replace_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_handle_self((VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: + vn_replace_VkPhysicalDeviceImageRobustnessFeatures_handle_self((VkPhysicalDeviceImageRobustnessFeatures *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: + vn_replace_VkPhysicalDevice4444FormatsFeaturesEXT_handle_self((VkPhysicalDevice4444FormatsFeaturesEXT *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: + vn_replace_VkPhysicalDeviceShaderTerminateInvocationFeatures_handle_self((VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: + vn_replace_VkPhysicalDeviceSynchronization2Features_handle_self((VkPhysicalDeviceSynchronization2Features *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: + vn_replace_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_handle_self((VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: + vn_replace_VkPhysicalDeviceShaderIntegerDotProductFeatures_handle_self((VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: + vn_replace_VkPhysicalDeviceDynamicRenderingFeatures_handle_self((VkPhysicalDeviceDynamicRenderingFeatures *)pnext); + break; default: /* ignore unknown/unsupported struct */ break; @@ -4280,6 +6959,22 @@ vn_decode_VkDeviceCreateInfo_pnext_temp(struct vn_cs_decoder *dec) vn_decode_VkStructureType(dec, &stype); switch ((int32_t)stype) { + case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkDevicePrivateDataCreateInfo)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); + vn_decode_VkDevicePrivateDataCreateInfo_self_temp(dec, (VkDevicePrivateDataCreateInfo *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePrivateDataFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); + vn_decode_VkPhysicalDevicePrivateDataFeatures_self_temp(dec, (VkPhysicalDevicePrivateDataFeatures *)pnext); + } + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceFeatures2)); if (pnext) { @@ -4344,6 +7039,22 @@ vn_decode_VkDeviceCreateInfo_pnext_temp(struct vn_cs_decoder *dec) vn_decode_VkPhysicalDeviceProtectedMemoryFeatures_self_temp(dec, (VkPhysicalDeviceProtectedMemoryFeatures *)pnext); } break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceInlineUniformBlockFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); + vn_decode_VkPhysicalDeviceInlineUniformBlockFeatures_self_temp(dec, (VkPhysicalDeviceInlineUniformBlockFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMaintenance4Features)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); + vn_decode_VkPhysicalDeviceMaintenance4Features_self_temp(dec, (VkPhysicalDeviceMaintenance4Features *)pnext); + } + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderDrawParametersFeatures)); if (pnext) { @@ -4448,6 +7159,14 @@ vn_decode_VkDeviceCreateInfo_pnext_temp(struct vn_cs_decoder *dec) vn_decode_VkPhysicalDeviceImagelessFramebufferFeatures_self_temp(dec, (VkPhysicalDeviceImagelessFramebufferFeatures *)pnext); } break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); + vn_decode_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_self_temp(dec, (VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext); + } + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures)); if (pnext) { @@ -4456,20 +7175,140 @@ vn_decode_VkDeviceCreateInfo_pnext_temp(struct vn_cs_decoder *dec) vn_decode_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_self_temp(dec, (VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext); } break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); + vn_decode_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_self_temp(dec, (VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); + vn_decode_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_self_temp(dec, (VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSubgroupSizeControlFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); + vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_temp(dec, (VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); + vn_decode_VkPhysicalDevicePipelineCreationCacheControlFeatures_self_temp(dec, (VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext); + } + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan11Features)); if (pnext) { pnext->sType = stype; pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); - vn_decode_VkPhysicalDeviceVulkan11Features_self_temp(dec, (VkPhysicalDeviceVulkan11Features *)pnext); + vn_decode_VkPhysicalDeviceVulkan11Features_self_temp(dec, (VkPhysicalDeviceVulkan11Features *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan12Features)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); + vn_decode_VkPhysicalDeviceVulkan12Features_self_temp(dec, (VkPhysicalDeviceVulkan12Features *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan13Features)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); + vn_decode_VkPhysicalDeviceVulkan13Features_self_temp(dec, (VkPhysicalDeviceVulkan13Features *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); + vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self_temp(dec, (VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); + vn_decode_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_self_temp(dec, (VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); + vn_decode_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_self_temp(dec, (VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceImageRobustnessFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); + vn_decode_VkPhysicalDeviceImageRobustnessFeatures_self_temp(dec, (VkPhysicalDeviceImageRobustnessFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevice4444FormatsFeaturesEXT)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); + vn_decode_VkPhysicalDevice4444FormatsFeaturesEXT_self_temp(dec, (VkPhysicalDevice4444FormatsFeaturesEXT *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderTerminateInvocationFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); + vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_temp(dec, (VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSynchronization2Features)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); + vn_decode_VkPhysicalDeviceSynchronization2Features_self_temp(dec, (VkPhysicalDeviceSynchronization2Features *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); + vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_temp(dec, (VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); + vn_decode_VkPhysicalDeviceShaderIntegerDotProductFeatures_self_temp(dec, (VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext); } break; - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: - pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan12Features)); + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceDynamicRenderingFeatures)); if (pnext) { pnext->sType = stype; pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec); - vn_decode_VkPhysicalDeviceVulkan12Features_self_temp(dec, (VkPhysicalDeviceVulkan12Features *)pnext); + vn_decode_VkPhysicalDeviceDynamicRenderingFeatures_self_temp(dec, (VkPhysicalDeviceDynamicRenderingFeatures *)pnext); } break; default: @@ -4579,6 +7418,12 @@ vn_replace_VkDeviceCreateInfo_handle(VkDeviceCreateInfo *val) case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: vn_replace_VkDeviceCreateInfo_handle_self((VkDeviceCreateInfo *)pnext); break; + case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: + vn_replace_VkDevicePrivateDataCreateInfo_handle_self((VkDevicePrivateDataCreateInfo *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: + vn_replace_VkPhysicalDevicePrivateDataFeatures_handle_self((VkPhysicalDevicePrivateDataFeatures *)pnext); + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: vn_replace_VkPhysicalDeviceFeatures2_handle_self((VkPhysicalDeviceFeatures2 *)pnext); break; @@ -4603,6 +7448,12 @@ vn_replace_VkDeviceCreateInfo_handle(VkDeviceCreateInfo *val) case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: vn_replace_VkPhysicalDeviceProtectedMemoryFeatures_handle_self((VkPhysicalDeviceProtectedMemoryFeatures *)pnext); break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: + vn_replace_VkPhysicalDeviceInlineUniformBlockFeatures_handle_self((VkPhysicalDeviceInlineUniformBlockFeatures *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: + vn_replace_VkPhysicalDeviceMaintenance4Features_handle_self((VkPhysicalDeviceMaintenance4Features *)pnext); + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: vn_replace_VkPhysicalDeviceShaderDrawParametersFeatures_handle_self((VkPhysicalDeviceShaderDrawParametersFeatures *)pnext); break; @@ -4642,15 +7493,63 @@ vn_replace_VkDeviceCreateInfo_handle(VkDeviceCreateInfo *val) case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: vn_replace_VkPhysicalDeviceImagelessFramebufferFeatures_handle_self((VkPhysicalDeviceImagelessFramebufferFeatures *)pnext); break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: + vn_replace_VkPhysicalDeviceTextureCompressionASTCHDRFeatures_handle_self((VkPhysicalDeviceTextureCompressionASTCHDRFeatures *)pnext); + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: vn_replace_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures_handle_self((VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures *)pnext); break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: + vn_replace_VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures_handle_self((VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: + vn_replace_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT_handle_self((VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: + vn_replace_VkPhysicalDeviceSubgroupSizeControlFeatures_handle_self((VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: + vn_replace_VkPhysicalDevicePipelineCreationCacheControlFeatures_handle_self((VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext); + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: vn_replace_VkPhysicalDeviceVulkan11Features_handle_self((VkPhysicalDeviceVulkan11Features *)pnext); break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: vn_replace_VkPhysicalDeviceVulkan12Features_handle_self((VkPhysicalDeviceVulkan12Features *)pnext); break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: + vn_replace_VkPhysicalDeviceVulkan13Features_handle_self((VkPhysicalDeviceVulkan13Features *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: + vn_replace_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_handle_self((VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: + vn_replace_VkPhysicalDeviceExtendedDynamicState2FeaturesEXT_handle_self((VkPhysicalDeviceExtendedDynamicState2FeaturesEXT *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: + vn_replace_VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures_handle_self((VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: + vn_replace_VkPhysicalDeviceImageRobustnessFeatures_handle_self((VkPhysicalDeviceImageRobustnessFeatures *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: + vn_replace_VkPhysicalDevice4444FormatsFeaturesEXT_handle_self((VkPhysicalDevice4444FormatsFeaturesEXT *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: + vn_replace_VkPhysicalDeviceShaderTerminateInvocationFeatures_handle_self((VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: + vn_replace_VkPhysicalDeviceSynchronization2Features_handle_self((VkPhysicalDeviceSynchronization2Features *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: + vn_replace_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_handle_self((VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: + vn_replace_VkPhysicalDeviceShaderIntegerDotProductFeatures_handle_self((VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext); + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: + vn_replace_VkPhysicalDeviceDynamicRenderingFeatures_handle_self((VkPhysicalDeviceDynamicRenderingFeatures *)pnext); + break; default: /* ignore unknown/unsupported struct */ break; @@ -5086,6 +7985,68 @@ vn_decode_VkPhysicalDeviceSamplerFilterMinmaxProperties_partial_temp(struct vn_c vn_decode_VkPhysicalDeviceSamplerFilterMinmaxProperties_self_partial_temp(dec, val); } +/* struct VkPhysicalDeviceInlineUniformBlockProperties chain */ + +static inline void +vn_encode_VkPhysicalDeviceInlineUniformBlockProperties_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceInlineUniformBlockProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceInlineUniformBlockProperties *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_uint32_t(enc, &val->maxInlineUniformBlockSize); + vn_encode_uint32_t(enc, &val->maxPerStageDescriptorInlineUniformBlocks); + vn_encode_uint32_t(enc, &val->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks); + vn_encode_uint32_t(enc, &val->maxDescriptorSetInlineUniformBlocks); + vn_encode_uint32_t(enc, &val->maxDescriptorSetUpdateAfterBindInlineUniformBlocks); +} + +static inline void +vn_encode_VkPhysicalDeviceInlineUniformBlockProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceInlineUniformBlockProperties *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES }); + vn_encode_VkPhysicalDeviceInlineUniformBlockProperties_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceInlineUniformBlockProperties_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceInlineUniformBlockProperties_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceInlineUniformBlockProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceInlineUniformBlockProperties *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->maxInlineUniformBlockSize */ + /* skip val->maxPerStageDescriptorInlineUniformBlocks */ + /* skip val->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks */ + /* skip val->maxDescriptorSetInlineUniformBlocks */ + /* skip val->maxDescriptorSetUpdateAfterBindInlineUniformBlocks */ +} + +static inline void +vn_decode_VkPhysicalDeviceInlineUniformBlockProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceInlineUniformBlockProperties *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceInlineUniformBlockProperties_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceInlineUniformBlockProperties_self_partial_temp(dec, val); +} + /* struct VkPhysicalDeviceMaintenance3Properties chain */ static inline void @@ -5142,6 +8103,60 @@ vn_decode_VkPhysicalDeviceMaintenance3Properties_partial_temp(struct vn_cs_decod vn_decode_VkPhysicalDeviceMaintenance3Properties_self_partial_temp(dec, val); } +/* struct VkPhysicalDeviceMaintenance4Properties chain */ + +static inline void +vn_encode_VkPhysicalDeviceMaintenance4Properties_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceMaintenance4Properties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceMaintenance4Properties *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkDeviceSize(enc, &val->maxBufferSize); +} + +static inline void +vn_encode_VkPhysicalDeviceMaintenance4Properties(struct vn_cs_encoder *enc, const VkPhysicalDeviceMaintenance4Properties *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES }); + vn_encode_VkPhysicalDeviceMaintenance4Properties_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceMaintenance4Properties_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceMaintenance4Properties_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceMaintenance4Properties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMaintenance4Properties *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->maxBufferSize */ +} + +static inline void +vn_decode_VkPhysicalDeviceMaintenance4Properties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceMaintenance4Properties *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceMaintenance4Properties_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceMaintenance4Properties_self_partial_temp(dec, val); +} + /* struct VkPhysicalDeviceFloatControlsProperties chain */ static inline void @@ -5512,6 +8527,126 @@ vn_decode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_partial_temp(struct vn_ vn_decode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self_partial_temp(dec, val); } +/* struct VkPhysicalDeviceTexelBufferAlignmentProperties chain */ + +static inline void +vn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceTexelBufferAlignmentProperties *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkDeviceSize(enc, &val->storageTexelBufferOffsetAlignmentBytes); + vn_encode_VkBool32(enc, &val->storageTexelBufferOffsetSingleTexelAlignment); + vn_encode_VkDeviceSize(enc, &val->uniformTexelBufferOffsetAlignmentBytes); + vn_encode_VkBool32(enc, &val->uniformTexelBufferOffsetSingleTexelAlignment); +} + +static inline void +vn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceTexelBufferAlignmentProperties *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES }); + vn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTexelBufferAlignmentProperties *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->storageTexelBufferOffsetAlignmentBytes */ + /* skip val->storageTexelBufferOffsetSingleTexelAlignment */ + /* skip val->uniformTexelBufferOffsetAlignmentBytes */ + /* skip val->uniformTexelBufferOffsetSingleTexelAlignment */ +} + +static inline void +vn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceTexelBufferAlignmentProperties *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties_self_partial_temp(dec, val); +} + +/* struct VkPhysicalDeviceSubgroupSizeControlProperties chain */ + +static inline void +vn_encode_VkPhysicalDeviceSubgroupSizeControlProperties_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceSubgroupSizeControlProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceSubgroupSizeControlProperties *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_uint32_t(enc, &val->minSubgroupSize); + vn_encode_uint32_t(enc, &val->maxSubgroupSize); + vn_encode_uint32_t(enc, &val->maxComputeWorkgroupSubgroups); + vn_encode_VkFlags(enc, &val->requiredSubgroupSizeStages); +} + +static inline void +vn_encode_VkPhysicalDeviceSubgroupSizeControlProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceSubgroupSizeControlProperties *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES }); + vn_encode_VkPhysicalDeviceSubgroupSizeControlProperties_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceSubgroupSizeControlProperties_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSubgroupSizeControlProperties *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->minSubgroupSize */ + /* skip val->maxSubgroupSize */ + /* skip val->maxComputeWorkgroupSubgroups */ + /* skip val->requiredSubgroupSizeStages */ +} + +static inline void +vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceSubgroupSizeControlProperties *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_self_partial_temp(dec, val); +} + /* struct VkPhysicalDeviceVulkan11Properties chain */ static inline void @@ -5755,6 +8890,260 @@ vn_decode_VkPhysicalDeviceVulkan12Properties_partial_temp(struct vn_cs_decoder * vn_decode_VkPhysicalDeviceVulkan12Properties_self_partial_temp(dec, val); } +/* struct VkPhysicalDeviceVulkan13Properties chain */ + +static inline void +vn_encode_VkPhysicalDeviceVulkan13Properties_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceVulkan13Properties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan13Properties *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_uint32_t(enc, &val->minSubgroupSize); + vn_encode_uint32_t(enc, &val->maxSubgroupSize); + vn_encode_uint32_t(enc, &val->maxComputeWorkgroupSubgroups); + vn_encode_VkFlags(enc, &val->requiredSubgroupSizeStages); + vn_encode_uint32_t(enc, &val->maxInlineUniformBlockSize); + vn_encode_uint32_t(enc, &val->maxPerStageDescriptorInlineUniformBlocks); + vn_encode_uint32_t(enc, &val->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks); + vn_encode_uint32_t(enc, &val->maxDescriptorSetInlineUniformBlocks); + vn_encode_uint32_t(enc, &val->maxDescriptorSetUpdateAfterBindInlineUniformBlocks); + vn_encode_uint32_t(enc, &val->maxInlineUniformTotalSize); + vn_encode_VkBool32(enc, &val->integerDotProduct8BitUnsignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct8BitSignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct8BitMixedSignednessAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct4x8BitPackedUnsignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct4x8BitPackedSignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct4x8BitPackedMixedSignednessAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct16BitUnsignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct16BitSignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct16BitMixedSignednessAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct32BitUnsignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct32BitSignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct32BitMixedSignednessAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct64BitUnsignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct64BitSignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct64BitMixedSignednessAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating8BitSignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating16BitSignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating32BitSignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating64BitSignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated); + vn_encode_VkDeviceSize(enc, &val->storageTexelBufferOffsetAlignmentBytes); + vn_encode_VkBool32(enc, &val->storageTexelBufferOffsetSingleTexelAlignment); + vn_encode_VkDeviceSize(enc, &val->uniformTexelBufferOffsetAlignmentBytes); + vn_encode_VkBool32(enc, &val->uniformTexelBufferOffsetSingleTexelAlignment); + vn_encode_VkDeviceSize(enc, &val->maxBufferSize); +} + +static inline void +vn_encode_VkPhysicalDeviceVulkan13Properties(struct vn_cs_encoder *enc, const VkPhysicalDeviceVulkan13Properties *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES }); + vn_encode_VkPhysicalDeviceVulkan13Properties_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceVulkan13Properties_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceVulkan13Properties_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceVulkan13Properties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan13Properties *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->minSubgroupSize */ + /* skip val->maxSubgroupSize */ + /* skip val->maxComputeWorkgroupSubgroups */ + /* skip val->requiredSubgroupSizeStages */ + /* skip val->maxInlineUniformBlockSize */ + /* skip val->maxPerStageDescriptorInlineUniformBlocks */ + /* skip val->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks */ + /* skip val->maxDescriptorSetInlineUniformBlocks */ + /* skip val->maxDescriptorSetUpdateAfterBindInlineUniformBlocks */ + /* skip val->maxInlineUniformTotalSize */ + /* skip val->integerDotProduct8BitUnsignedAccelerated */ + /* skip val->integerDotProduct8BitSignedAccelerated */ + /* skip val->integerDotProduct8BitMixedSignednessAccelerated */ + /* skip val->integerDotProduct4x8BitPackedUnsignedAccelerated */ + /* skip val->integerDotProduct4x8BitPackedSignedAccelerated */ + /* skip val->integerDotProduct4x8BitPackedMixedSignednessAccelerated */ + /* skip val->integerDotProduct16BitUnsignedAccelerated */ + /* skip val->integerDotProduct16BitSignedAccelerated */ + /* skip val->integerDotProduct16BitMixedSignednessAccelerated */ + /* skip val->integerDotProduct32BitUnsignedAccelerated */ + /* skip val->integerDotProduct32BitSignedAccelerated */ + /* skip val->integerDotProduct32BitMixedSignednessAccelerated */ + /* skip val->integerDotProduct64BitUnsignedAccelerated */ + /* skip val->integerDotProduct64BitSignedAccelerated */ + /* skip val->integerDotProduct64BitMixedSignednessAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating8BitSignedAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating16BitSignedAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating32BitSignedAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating64BitSignedAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated */ + /* skip val->storageTexelBufferOffsetAlignmentBytes */ + /* skip val->storageTexelBufferOffsetSingleTexelAlignment */ + /* skip val->uniformTexelBufferOffsetAlignmentBytes */ + /* skip val->uniformTexelBufferOffsetSingleTexelAlignment */ + /* skip val->maxBufferSize */ +} + +static inline void +vn_decode_VkPhysicalDeviceVulkan13Properties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceVulkan13Properties *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceVulkan13Properties_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceVulkan13Properties_self_partial_temp(dec, val); +} + +/* struct VkPhysicalDeviceShaderIntegerDotProductProperties chain */ + +static inline void +vn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderIntegerDotProductProperties *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->integerDotProduct8BitUnsignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct8BitSignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct8BitMixedSignednessAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct4x8BitPackedUnsignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct4x8BitPackedSignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct4x8BitPackedMixedSignednessAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct16BitUnsignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct16BitSignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct16BitMixedSignednessAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct32BitUnsignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct32BitSignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct32BitMixedSignednessAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct64BitUnsignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct64BitSignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProduct64BitMixedSignednessAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating8BitSignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating16BitSignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating32BitSignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating64BitSignedAccelerated); + vn_encode_VkBool32(enc, &val->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated); +} + +static inline void +vn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceShaderIntegerDotProductProperties *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES }); + vn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderIntegerDotProductProperties *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->integerDotProduct8BitUnsignedAccelerated */ + /* skip val->integerDotProduct8BitSignedAccelerated */ + /* skip val->integerDotProduct8BitMixedSignednessAccelerated */ + /* skip val->integerDotProduct4x8BitPackedUnsignedAccelerated */ + /* skip val->integerDotProduct4x8BitPackedSignedAccelerated */ + /* skip val->integerDotProduct4x8BitPackedMixedSignednessAccelerated */ + /* skip val->integerDotProduct16BitUnsignedAccelerated */ + /* skip val->integerDotProduct16BitSignedAccelerated */ + /* skip val->integerDotProduct16BitMixedSignednessAccelerated */ + /* skip val->integerDotProduct32BitUnsignedAccelerated */ + /* skip val->integerDotProduct32BitSignedAccelerated */ + /* skip val->integerDotProduct32BitMixedSignednessAccelerated */ + /* skip val->integerDotProduct64BitUnsignedAccelerated */ + /* skip val->integerDotProduct64BitSignedAccelerated */ + /* skip val->integerDotProduct64BitMixedSignednessAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating8BitSignedAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating16BitSignedAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating32BitSignedAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating64BitSignedAccelerated */ + /* skip val->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated */ +} + +static inline void +vn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceShaderIntegerDotProductProperties *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_self_partial_temp(dec, val); +} + /* struct VkPhysicalDeviceProperties2 chain */ static inline void @@ -5806,12 +9195,24 @@ vn_encode_VkPhysicalDeviceProperties2_pnext(struct vn_cs_encoder *enc, const voi vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext); vn_encode_VkPhysicalDeviceSamplerFilterMinmaxProperties_self(enc, (const VkPhysicalDeviceSamplerFilterMinmaxProperties *)pnext); return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceInlineUniformBlockProperties_self(enc, (const VkPhysicalDeviceInlineUniformBlockProperties *)pnext); + return; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: vn_encode_simple_pointer(enc, pnext); vn_encode_VkStructureType(enc, &pnext->sType); vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext); vn_encode_VkPhysicalDeviceMaintenance3Properties_self(enc, (const VkPhysicalDeviceMaintenance3Properties *)pnext); return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceMaintenance4Properties_self(enc, (const VkPhysicalDeviceMaintenance4Properties *)pnext); + return; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: vn_encode_simple_pointer(enc, pnext); vn_encode_VkStructureType(enc, &pnext->sType); @@ -5830,17 +9231,29 @@ vn_encode_VkPhysicalDeviceProperties2_pnext(struct vn_cs_encoder *enc, const voi vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext); vn_encode_VkPhysicalDeviceTimelineSemaphoreProperties_self(enc, (const VkPhysicalDeviceTimelineSemaphoreProperties *)pnext); return; - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceDepthStencilResolveProperties_self(enc, (const VkPhysicalDeviceDepthStencilResolveProperties *)pnext); + return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self(enc, (const VkPhysicalDeviceTransformFeedbackPropertiesEXT *)pnext); + return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: vn_encode_simple_pointer(enc, pnext); vn_encode_VkStructureType(enc, &pnext->sType); vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext); - vn_encode_VkPhysicalDeviceDepthStencilResolveProperties_self(enc, (const VkPhysicalDeviceDepthStencilResolveProperties *)pnext); + vn_encode_VkPhysicalDeviceTexelBufferAlignmentProperties_self(enc, (const VkPhysicalDeviceTexelBufferAlignmentProperties *)pnext); return; - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: vn_encode_simple_pointer(enc, pnext); vn_encode_VkStructureType(enc, &pnext->sType); vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext); - vn_encode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self(enc, (const VkPhysicalDeviceTransformFeedbackPropertiesEXT *)pnext); + vn_encode_VkPhysicalDeviceSubgroupSizeControlProperties_self(enc, (const VkPhysicalDeviceSubgroupSizeControlProperties *)pnext); return; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: vn_encode_simple_pointer(enc, pnext); @@ -5854,6 +9267,18 @@ vn_encode_VkPhysicalDeviceProperties2_pnext(struct vn_cs_encoder *enc, const voi vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext); vn_encode_VkPhysicalDeviceVulkan12Properties_self(enc, (const VkPhysicalDeviceVulkan12Properties *)pnext); return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceVulkan13Properties_self(enc, (const VkPhysicalDeviceVulkan13Properties *)pnext); + return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceShaderIntegerDotProductProperties_self(enc, (const VkPhysicalDeviceShaderIntegerDotProductProperties *)pnext); + return; default: /* ignore unknown/unsupported struct */ break; @@ -5947,6 +9372,14 @@ vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(struct vn_cs_decoder *d vn_decode_VkPhysicalDeviceSamplerFilterMinmaxProperties_self_partial_temp(dec, (VkPhysicalDeviceSamplerFilterMinmaxProperties *)pnext); } break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceInlineUniformBlockProperties)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceInlineUniformBlockProperties_self_partial_temp(dec, (VkPhysicalDeviceInlineUniformBlockProperties *)pnext); + } + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMaintenance3Properties)); if (pnext) { @@ -5955,6 +9388,14 @@ vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(struct vn_cs_decoder *d vn_decode_VkPhysicalDeviceMaintenance3Properties_self_partial_temp(dec, (VkPhysicalDeviceMaintenance3Properties *)pnext); } break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceMaintenance4Properties)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceMaintenance4Properties_self_partial_temp(dec, (VkPhysicalDeviceMaintenance4Properties *)pnext); + } + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceFloatControlsProperties)); if (pnext) { @@ -5995,6 +9436,22 @@ vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(struct vn_cs_decoder *d vn_decode_VkPhysicalDeviceTransformFeedbackPropertiesEXT_self_partial_temp(dec, (VkPhysicalDeviceTransformFeedbackPropertiesEXT *)pnext); } break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceTexelBufferAlignmentProperties)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceTexelBufferAlignmentProperties_self_partial_temp(dec, (VkPhysicalDeviceTexelBufferAlignmentProperties *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceSubgroupSizeControlProperties)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_self_partial_temp(dec, (VkPhysicalDeviceSubgroupSizeControlProperties *)pnext); + } + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan11Properties)); if (pnext) { @@ -6011,6 +9468,22 @@ vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(struct vn_cs_decoder *d vn_decode_VkPhysicalDeviceVulkan12Properties_self_partial_temp(dec, (VkPhysicalDeviceVulkan12Properties *)pnext); } break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan13Properties)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceVulkan13Properties_self_partial_temp(dec, (VkPhysicalDeviceVulkan13Properties *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderIntegerDotProductProperties)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_self_partial_temp(dec, (VkPhysicalDeviceShaderIntegerDotProductProperties *)pnext); + } + break; default: /* unexpected struct */ pnext = NULL; @@ -6130,6 +9603,153 @@ vn_decode_VkDrmFormatModifierPropertiesListEXT_partial_temp(struct vn_cs_decoder vn_decode_VkDrmFormatModifierPropertiesListEXT_self_partial_temp(dec, val); } +/* struct VkFormatProperties3 chain */ + +static inline void +vn_encode_VkFormatProperties3_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkFormatProperties3_self(struct vn_cs_encoder *enc, const VkFormatProperties3 *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkFlags64(enc, &val->linearTilingFeatures); + vn_encode_VkFlags64(enc, &val->optimalTilingFeatures); + vn_encode_VkFlags64(enc, &val->bufferFeatures); +} + +static inline void +vn_encode_VkFormatProperties3(struct vn_cs_encoder *enc, const VkFormatProperties3 *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 }); + vn_encode_VkFormatProperties3_pnext(enc, val->pNext); + vn_encode_VkFormatProperties3_self(enc, val); +} + +static inline void * +vn_decode_VkFormatProperties3_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkFormatProperties3_self_partial_temp(struct vn_cs_decoder *dec, VkFormatProperties3 *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->linearTilingFeatures */ + /* skip val->optimalTilingFeatures */ + /* skip val->bufferFeatures */ +} + +static inline void +vn_decode_VkFormatProperties3_partial_temp(struct vn_cs_decoder *dec, VkFormatProperties3 *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkFormatProperties3_pnext_partial_temp(dec); + vn_decode_VkFormatProperties3_self_partial_temp(dec, val); +} + +/* struct VkDrmFormatModifierProperties2EXT */ + +static inline void +vn_encode_VkDrmFormatModifierProperties2EXT(struct vn_cs_encoder *enc, const VkDrmFormatModifierProperties2EXT *val) +{ + vn_encode_uint64_t(enc, &val->drmFormatModifier); + vn_encode_uint32_t(enc, &val->drmFormatModifierPlaneCount); + vn_encode_VkFlags64(enc, &val->drmFormatModifierTilingFeatures); +} + +static inline void +vn_decode_VkDrmFormatModifierProperties2EXT_partial_temp(struct vn_cs_decoder *dec, VkDrmFormatModifierProperties2EXT *val) +{ + /* skip val->drmFormatModifier */ + /* skip val->drmFormatModifierPlaneCount */ + /* skip val->drmFormatModifierTilingFeatures */ +} + +/* struct VkDrmFormatModifierPropertiesList2EXT chain */ + +static inline void +vn_encode_VkDrmFormatModifierPropertiesList2EXT_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkDrmFormatModifierPropertiesList2EXT_self(struct vn_cs_encoder *enc, const VkDrmFormatModifierPropertiesList2EXT *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_uint32_t(enc, &val->drmFormatModifierCount); + if (val->pDrmFormatModifierProperties) { + vn_encode_array_size(enc, val->drmFormatModifierCount); + for (uint32_t i = 0; i < val->drmFormatModifierCount; i++) + vn_encode_VkDrmFormatModifierProperties2EXT(enc, &val->pDrmFormatModifierProperties[i]); + } else { + vn_encode_array_size(enc, 0); + } +} + +static inline void +vn_encode_VkDrmFormatModifierPropertiesList2EXT(struct vn_cs_encoder *enc, const VkDrmFormatModifierPropertiesList2EXT *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT }); + vn_encode_VkDrmFormatModifierPropertiesList2EXT_pnext(enc, val->pNext); + vn_encode_VkDrmFormatModifierPropertiesList2EXT_self(enc, val); +} + +static inline void * +vn_decode_VkDrmFormatModifierPropertiesList2EXT_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkDrmFormatModifierPropertiesList2EXT_self_partial_temp(struct vn_cs_decoder *dec, VkDrmFormatModifierPropertiesList2EXT *val) +{ + /* skip val->{sType,pNext} */ + /* WA1 */ val->drmFormatModifierCount = vn_peek_array_size(dec); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, val->drmFormatModifierCount); + val->pDrmFormatModifierProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pDrmFormatModifierProperties) * iter_count); + if (!val->pDrmFormatModifierProperties) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkDrmFormatModifierProperties2EXT_partial_temp(dec, &val->pDrmFormatModifierProperties[i]); + } else { + vn_decode_array_size_unchecked(dec); + val->pDrmFormatModifierProperties = NULL; + } +} + +static inline void +vn_decode_VkDrmFormatModifierPropertiesList2EXT_partial_temp(struct vn_cs_decoder *dec, VkDrmFormatModifierPropertiesList2EXT *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkDrmFormatModifierPropertiesList2EXT_pnext_partial_temp(dec); + vn_decode_VkDrmFormatModifierPropertiesList2EXT_self_partial_temp(dec, val); +} + /* struct VkFormatProperties2 chain */ static inline void @@ -6145,6 +9765,18 @@ vn_encode_VkFormatProperties2_pnext(struct vn_cs_encoder *enc, const void *val) vn_encode_VkFormatProperties2_pnext(enc, pnext->pNext); vn_encode_VkDrmFormatModifierPropertiesListEXT_self(enc, (const VkDrmFormatModifierPropertiesListEXT *)pnext); return; + case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkFormatProperties2_pnext(enc, pnext->pNext); + vn_encode_VkFormatProperties3_self(enc, (const VkFormatProperties3 *)pnext); + return; + case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkFormatProperties2_pnext(enc, pnext->pNext); + vn_encode_VkDrmFormatModifierPropertiesList2EXT_self(enc, (const VkDrmFormatModifierPropertiesList2EXT *)pnext); + return; default: /* ignore unknown/unsupported struct */ break; @@ -6190,6 +9822,22 @@ vn_decode_VkFormatProperties2_pnext_partial_temp(struct vn_cs_decoder *dec) vn_decode_VkDrmFormatModifierPropertiesListEXT_self_partial_temp(dec, (VkDrmFormatModifierPropertiesListEXT *)pnext); } break; + case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkFormatProperties3)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkFormatProperties2_pnext_partial_temp(dec); + vn_decode_VkFormatProperties3_self_partial_temp(dec, (VkFormatProperties3 *)pnext); + } + break; + case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkDrmFormatModifierPropertiesList2EXT)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkFormatProperties2_pnext_partial_temp(dec); + vn_decode_VkDrmFormatModifierPropertiesList2EXT_self_partial_temp(dec, (VkDrmFormatModifierPropertiesList2EXT *)pnext); + } + break; default: /* unexpected struct */ pnext = NULL; @@ -7419,6 +11067,72 @@ vn_replace_VkDeviceQueueInfo2_handle(VkDeviceQueueInfo2 *val) } while (pnext); } +/* struct VkPhysicalDeviceToolProperties chain */ + +static inline void +vn_encode_VkPhysicalDeviceToolProperties_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceToolProperties_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceToolProperties *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_array_size(enc, VK_MAX_EXTENSION_NAME_SIZE); + vn_encode_char_array(enc, val->name, VK_MAX_EXTENSION_NAME_SIZE); + vn_encode_array_size(enc, VK_MAX_EXTENSION_NAME_SIZE); + vn_encode_char_array(enc, val->version, VK_MAX_EXTENSION_NAME_SIZE); + vn_encode_VkFlags(enc, &val->purposes); + vn_encode_array_size(enc, VK_MAX_DESCRIPTION_SIZE); + vn_encode_char_array(enc, val->description, VK_MAX_DESCRIPTION_SIZE); + vn_encode_array_size(enc, VK_MAX_EXTENSION_NAME_SIZE); + vn_encode_char_array(enc, val->layer, VK_MAX_EXTENSION_NAME_SIZE); +} + +static inline void +vn_encode_VkPhysicalDeviceToolProperties(struct vn_cs_encoder *enc, const VkPhysicalDeviceToolProperties *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES }); + vn_encode_VkPhysicalDeviceToolProperties_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceToolProperties_self(enc, val); +} + +static inline void * +vn_decode_VkPhysicalDeviceToolProperties_pnext_partial_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPhysicalDeviceToolProperties_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceToolProperties *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->name */ + /* skip val->version */ + /* skip val->purposes */ + /* skip val->description */ + /* skip val->layer */ +} + +static inline void +vn_decode_VkPhysicalDeviceToolProperties_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceToolProperties *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPhysicalDeviceToolProperties_pnext_partial_temp(dec); + vn_decode_VkPhysicalDeviceToolProperties_self_partial_temp(dec, val); +} + static inline void vn_decode_vkEnumeratePhysicalDevices_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkEnumeratePhysicalDevices *args) { vn_decode_VkInstance_lookup(dec, &args->instance); @@ -8457,6 +12171,53 @@ static inline void vn_encode_vkGetDeviceQueue2_reply(struct vn_cs_encoder *enc, vn_encode_VkQueue(enc, args->pQueue); } +static inline void vn_decode_vkGetPhysicalDeviceToolProperties_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceToolProperties *args) +{ + vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice); + if (vn_decode_simple_pointer(dec)) { + args->pToolCount = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pToolCount)); + if (!args->pToolCount) return; + vn_decode_uint32_t(dec, args->pToolCount); + } else { + args->pToolCount = NULL; + vn_cs_decoder_set_fatal(dec); + } + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, (args->pToolCount ? *args->pToolCount : 0)); + args->pToolProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pToolProperties) * iter_count); + if (!args->pToolProperties) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkPhysicalDeviceToolProperties_partial_temp(dec, &args->pToolProperties[i]); + } else { + vn_decode_array_size_unchecked(dec); + args->pToolProperties = NULL; + } +} + +static inline void vn_replace_vkGetPhysicalDeviceToolProperties_args_handle(struct vn_command_vkGetPhysicalDeviceToolProperties *args) +{ + vn_replace_VkPhysicalDevice_handle(&args->physicalDevice); + /* skip args->pToolCount */ + /* skip args->pToolProperties */ +} + +static inline void vn_encode_vkGetPhysicalDeviceToolProperties_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceToolProperties *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceToolProperties_EXT}); + + vn_encode_VkResult(enc, &args->ret); + /* skip args->physicalDevice */ + if (vn_encode_simple_pointer(enc, args->pToolCount)) + vn_encode_uint32_t(enc, args->pToolCount); + if (args->pToolProperties) { + vn_encode_array_size(enc, (args->pToolCount ? *args->pToolCount : 0)); + for (uint32_t i = 0; i < (args->pToolCount ? *args->pToolCount : 0); i++) + vn_encode_VkPhysicalDeviceToolProperties(enc, &args->pToolProperties[i]); + } else { + vn_encode_array_size(enc, 0); + } +} + static inline void vn_dispatch_vkEnumeratePhysicalDevices(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { struct vn_command_vkEnumeratePhysicalDevices args; @@ -9164,6 +12925,35 @@ static inline void vn_dispatch_vkGetDeviceQueue2(struct vn_dispatch_context *ctx vn_cs_decoder_reset_temp_pool(ctx->decoder); } +static inline void vn_dispatch_vkGetPhysicalDeviceToolProperties(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkGetPhysicalDeviceToolProperties args; + + if (!ctx->dispatch_vkGetPhysicalDeviceToolProperties) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkGetPhysicalDeviceToolProperties_args_temp(ctx->decoder, &args); + if (!args.physicalDevice) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkGetPhysicalDeviceToolProperties(ctx, &args); + +#ifdef DEBUG + if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret)) + vn_dispatch_debug_log(ctx, "vkGetPhysicalDeviceToolProperties returned %d", args.ret); +#endif + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkGetPhysicalDeviceToolProperties_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + #pragma GCC diagnostic pop #endif /* VN_PROTOCOL_RENDERER_DEVICE_H */ diff --git a/src/venus/venus-protocol/vn_protocol_renderer_dispatches.h b/src/venus/venus-protocol/vn_protocol_renderer_dispatches.h index d45fdc4..b15d780 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_dispatches.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_dispatches.h @@ -38,6 +38,7 @@ #include "vn_protocol_renderer_pipeline_cache.h" #include "vn_protocol_renderer_command_pool.h" #include "vn_protocol_renderer_command_buffer.h" +#include "vn_protocol_renderer_private_data_slot.h" static inline const char *vn_dispatch_command_name(VkCommandTypeEXT type) { @@ -200,6 +201,9 @@ static inline const char *vn_dispatch_command_name(VkCommandTypeEXT type) case VK_COMMAND_TYPE_vkGetBufferMemoryRequirements2_EXT: return "vkGetBufferMemoryRequirements2"; case VK_COMMAND_TYPE_vkGetImageMemoryRequirements2_EXT: return "vkGetImageMemoryRequirements2"; case VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements2_EXT: return "vkGetImageSparseMemoryRequirements2"; + case VK_COMMAND_TYPE_vkGetDeviceBufferMemoryRequirements_EXT: return "vkGetDeviceBufferMemoryRequirements"; + case VK_COMMAND_TYPE_vkGetDeviceImageMemoryRequirements_EXT: return "vkGetDeviceImageMemoryRequirements"; + case VK_COMMAND_TYPE_vkGetDeviceImageSparseMemoryRequirements_EXT: return "vkGetDeviceImageSparseMemoryRequirements"; case VK_COMMAND_TYPE_vkCreateSamplerYcbcrConversion_EXT: return "vkCreateSamplerYcbcrConversion"; case VK_COMMAND_TYPE_vkDestroySamplerYcbcrConversion_EXT: return "vkDestroySamplerYcbcrConversion"; case VK_COMMAND_TYPE_vkGetDeviceQueue2_EXT: return "vkGetDeviceQueue2"; @@ -223,6 +227,42 @@ static inline const char *vn_dispatch_command_name(VkCommandTypeEXT type) case VK_COMMAND_TYPE_vkGetBufferOpaqueCaptureAddress_EXT: return "vkGetBufferOpaqueCaptureAddress"; case VK_COMMAND_TYPE_vkGetBufferDeviceAddress_EXT: return "vkGetBufferDeviceAddress"; case VK_COMMAND_TYPE_vkGetDeviceMemoryOpaqueCaptureAddress_EXT: return "vkGetDeviceMemoryOpaqueCaptureAddress"; + case VK_COMMAND_TYPE_vkGetPhysicalDeviceToolProperties_EXT: return "vkGetPhysicalDeviceToolProperties"; + case VK_COMMAND_TYPE_vkCmdSetCullMode_EXT: return "vkCmdSetCullMode"; + case VK_COMMAND_TYPE_vkCmdSetFrontFace_EXT: return "vkCmdSetFrontFace"; + case VK_COMMAND_TYPE_vkCmdSetPrimitiveTopology_EXT: return "vkCmdSetPrimitiveTopology"; + case VK_COMMAND_TYPE_vkCmdSetViewportWithCount_EXT: return "vkCmdSetViewportWithCount"; + case VK_COMMAND_TYPE_vkCmdSetScissorWithCount_EXT: return "vkCmdSetScissorWithCount"; + case VK_COMMAND_TYPE_vkCmdBindVertexBuffers2_EXT: return "vkCmdBindVertexBuffers2"; + case VK_COMMAND_TYPE_vkCmdSetDepthTestEnable_EXT: return "vkCmdSetDepthTestEnable"; + case VK_COMMAND_TYPE_vkCmdSetDepthWriteEnable_EXT: return "vkCmdSetDepthWriteEnable"; + case VK_COMMAND_TYPE_vkCmdSetDepthCompareOp_EXT: return "vkCmdSetDepthCompareOp"; + case VK_COMMAND_TYPE_vkCmdSetDepthBoundsTestEnable_EXT: return "vkCmdSetDepthBoundsTestEnable"; + case VK_COMMAND_TYPE_vkCmdSetStencilTestEnable_EXT: return "vkCmdSetStencilTestEnable"; + case VK_COMMAND_TYPE_vkCmdSetStencilOp_EXT: return "vkCmdSetStencilOp"; + case VK_COMMAND_TYPE_vkCmdSetPatchControlPointsEXT_EXT: return "vkCmdSetPatchControlPointsEXT"; + case VK_COMMAND_TYPE_vkCmdSetRasterizerDiscardEnable_EXT: return "vkCmdSetRasterizerDiscardEnable"; + case VK_COMMAND_TYPE_vkCmdSetDepthBiasEnable_EXT: return "vkCmdSetDepthBiasEnable"; + case VK_COMMAND_TYPE_vkCmdSetLogicOpEXT_EXT: return "vkCmdSetLogicOpEXT"; + case VK_COMMAND_TYPE_vkCmdSetPrimitiveRestartEnable_EXT: return "vkCmdSetPrimitiveRestartEnable"; + case VK_COMMAND_TYPE_vkCreatePrivateDataSlot_EXT: return "vkCreatePrivateDataSlot"; + case VK_COMMAND_TYPE_vkDestroyPrivateDataSlot_EXT: return "vkDestroyPrivateDataSlot"; + case VK_COMMAND_TYPE_vkSetPrivateData_EXT: return "vkSetPrivateData"; + case VK_COMMAND_TYPE_vkGetPrivateData_EXT: return "vkGetPrivateData"; + case VK_COMMAND_TYPE_vkCmdCopyBuffer2_EXT: return "vkCmdCopyBuffer2"; + case VK_COMMAND_TYPE_vkCmdCopyImage2_EXT: return "vkCmdCopyImage2"; + case VK_COMMAND_TYPE_vkCmdBlitImage2_EXT: return "vkCmdBlitImage2"; + case VK_COMMAND_TYPE_vkCmdCopyBufferToImage2_EXT: return "vkCmdCopyBufferToImage2"; + case VK_COMMAND_TYPE_vkCmdCopyImageToBuffer2_EXT: return "vkCmdCopyImageToBuffer2"; + case VK_COMMAND_TYPE_vkCmdResolveImage2_EXT: return "vkCmdResolveImage2"; + case VK_COMMAND_TYPE_vkCmdSetEvent2_EXT: return "vkCmdSetEvent2"; + case VK_COMMAND_TYPE_vkCmdResetEvent2_EXT: return "vkCmdResetEvent2"; + case VK_COMMAND_TYPE_vkCmdWaitEvents2_EXT: return "vkCmdWaitEvents2"; + case VK_COMMAND_TYPE_vkCmdPipelineBarrier2_EXT: return "vkCmdPipelineBarrier2"; + case VK_COMMAND_TYPE_vkQueueSubmit2_EXT: return "vkQueueSubmit2"; + case VK_COMMAND_TYPE_vkCmdWriteTimestamp2_EXT: return "vkCmdWriteTimestamp2"; + case VK_COMMAND_TYPE_vkCmdBeginRendering_EXT: return "vkCmdBeginRendering"; + case VK_COMMAND_TYPE_vkCmdEndRendering_EXT: return "vkCmdEndRendering"; case VK_COMMAND_TYPE_vkSetReplyCommandStreamMESA_EXT: return "vkSetReplyCommandStreamMESA"; case VK_COMMAND_TYPE_vkSeekReplyCommandStreamMESA_EXT: return "vkSeekReplyCommandStreamMESA"; case VK_COMMAND_TYPE_vkExecuteCommandStreamsMESA_EXT: return "vkExecuteCommandStreamsMESA"; @@ -242,7 +282,7 @@ static inline const char *vn_dispatch_command_name(VkCommandTypeEXT type) } } -static void (*const vn_dispatch_table[196])(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) = { +static void (*const vn_dispatch_table[235])(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) = { [VK_COMMAND_TYPE_vkCreateInstance_EXT] = vn_dispatch_vkCreateInstance, [VK_COMMAND_TYPE_vkDestroyInstance_EXT] = vn_dispatch_vkDestroyInstance, [VK_COMMAND_TYPE_vkEnumeratePhysicalDevices_EXT] = vn_dispatch_vkEnumeratePhysicalDevices, @@ -401,6 +441,9 @@ static void (*const vn_dispatch_table[196])(struct vn_dispatch_context *ctx, VkC [VK_COMMAND_TYPE_vkGetBufferMemoryRequirements2_EXT] = vn_dispatch_vkGetBufferMemoryRequirements2, [VK_COMMAND_TYPE_vkGetImageMemoryRequirements2_EXT] = vn_dispatch_vkGetImageMemoryRequirements2, [VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements2_EXT] = vn_dispatch_vkGetImageSparseMemoryRequirements2, + [VK_COMMAND_TYPE_vkGetDeviceBufferMemoryRequirements_EXT] = vn_dispatch_vkGetDeviceBufferMemoryRequirements, + [VK_COMMAND_TYPE_vkGetDeviceImageMemoryRequirements_EXT] = vn_dispatch_vkGetDeviceImageMemoryRequirements, + [VK_COMMAND_TYPE_vkGetDeviceImageSparseMemoryRequirements_EXT] = vn_dispatch_vkGetDeviceImageSparseMemoryRequirements, [VK_COMMAND_TYPE_vkCreateSamplerYcbcrConversion_EXT] = vn_dispatch_vkCreateSamplerYcbcrConversion, [VK_COMMAND_TYPE_vkDestroySamplerYcbcrConversion_EXT] = vn_dispatch_vkDestroySamplerYcbcrConversion, [VK_COMMAND_TYPE_vkGetDeviceQueue2_EXT] = vn_dispatch_vkGetDeviceQueue2, @@ -424,6 +467,42 @@ static void (*const vn_dispatch_table[196])(struct vn_dispatch_context *ctx, VkC [VK_COMMAND_TYPE_vkGetBufferOpaqueCaptureAddress_EXT] = vn_dispatch_vkGetBufferOpaqueCaptureAddress, [VK_COMMAND_TYPE_vkGetBufferDeviceAddress_EXT] = vn_dispatch_vkGetBufferDeviceAddress, [VK_COMMAND_TYPE_vkGetDeviceMemoryOpaqueCaptureAddress_EXT] = vn_dispatch_vkGetDeviceMemoryOpaqueCaptureAddress, + [VK_COMMAND_TYPE_vkGetPhysicalDeviceToolProperties_EXT] = vn_dispatch_vkGetPhysicalDeviceToolProperties, + [VK_COMMAND_TYPE_vkCmdSetCullMode_EXT] = vn_dispatch_vkCmdSetCullMode, + [VK_COMMAND_TYPE_vkCmdSetFrontFace_EXT] = vn_dispatch_vkCmdSetFrontFace, + [VK_COMMAND_TYPE_vkCmdSetPrimitiveTopology_EXT] = vn_dispatch_vkCmdSetPrimitiveTopology, + [VK_COMMAND_TYPE_vkCmdSetViewportWithCount_EXT] = vn_dispatch_vkCmdSetViewportWithCount, + [VK_COMMAND_TYPE_vkCmdSetScissorWithCount_EXT] = vn_dispatch_vkCmdSetScissorWithCount, + [VK_COMMAND_TYPE_vkCmdBindVertexBuffers2_EXT] = vn_dispatch_vkCmdBindVertexBuffers2, + [VK_COMMAND_TYPE_vkCmdSetDepthTestEnable_EXT] = vn_dispatch_vkCmdSetDepthTestEnable, + [VK_COMMAND_TYPE_vkCmdSetDepthWriteEnable_EXT] = vn_dispatch_vkCmdSetDepthWriteEnable, + [VK_COMMAND_TYPE_vkCmdSetDepthCompareOp_EXT] = vn_dispatch_vkCmdSetDepthCompareOp, + [VK_COMMAND_TYPE_vkCmdSetDepthBoundsTestEnable_EXT] = vn_dispatch_vkCmdSetDepthBoundsTestEnable, + [VK_COMMAND_TYPE_vkCmdSetStencilTestEnable_EXT] = vn_dispatch_vkCmdSetStencilTestEnable, + [VK_COMMAND_TYPE_vkCmdSetStencilOp_EXT] = vn_dispatch_vkCmdSetStencilOp, + [VK_COMMAND_TYPE_vkCmdSetPatchControlPointsEXT_EXT] = vn_dispatch_vkCmdSetPatchControlPointsEXT, + [VK_COMMAND_TYPE_vkCmdSetRasterizerDiscardEnable_EXT] = vn_dispatch_vkCmdSetRasterizerDiscardEnable, + [VK_COMMAND_TYPE_vkCmdSetDepthBiasEnable_EXT] = vn_dispatch_vkCmdSetDepthBiasEnable, + [VK_COMMAND_TYPE_vkCmdSetLogicOpEXT_EXT] = vn_dispatch_vkCmdSetLogicOpEXT, + [VK_COMMAND_TYPE_vkCmdSetPrimitiveRestartEnable_EXT] = vn_dispatch_vkCmdSetPrimitiveRestartEnable, + [VK_COMMAND_TYPE_vkCreatePrivateDataSlot_EXT] = vn_dispatch_vkCreatePrivateDataSlot, + [VK_COMMAND_TYPE_vkDestroyPrivateDataSlot_EXT] = vn_dispatch_vkDestroyPrivateDataSlot, + [VK_COMMAND_TYPE_vkSetPrivateData_EXT] = vn_dispatch_vkSetPrivateData, + [VK_COMMAND_TYPE_vkGetPrivateData_EXT] = vn_dispatch_vkGetPrivateData, + [VK_COMMAND_TYPE_vkCmdCopyBuffer2_EXT] = vn_dispatch_vkCmdCopyBuffer2, + [VK_COMMAND_TYPE_vkCmdCopyImage2_EXT] = vn_dispatch_vkCmdCopyImage2, + [VK_COMMAND_TYPE_vkCmdBlitImage2_EXT] = vn_dispatch_vkCmdBlitImage2, + [VK_COMMAND_TYPE_vkCmdCopyBufferToImage2_EXT] = vn_dispatch_vkCmdCopyBufferToImage2, + [VK_COMMAND_TYPE_vkCmdCopyImageToBuffer2_EXT] = vn_dispatch_vkCmdCopyImageToBuffer2, + [VK_COMMAND_TYPE_vkCmdResolveImage2_EXT] = vn_dispatch_vkCmdResolveImage2, + [VK_COMMAND_TYPE_vkCmdSetEvent2_EXT] = vn_dispatch_vkCmdSetEvent2, + [VK_COMMAND_TYPE_vkCmdResetEvent2_EXT] = vn_dispatch_vkCmdResetEvent2, + [VK_COMMAND_TYPE_vkCmdWaitEvents2_EXT] = vn_dispatch_vkCmdWaitEvents2, + [VK_COMMAND_TYPE_vkCmdPipelineBarrier2_EXT] = vn_dispatch_vkCmdPipelineBarrier2, + [VK_COMMAND_TYPE_vkQueueSubmit2_EXT] = vn_dispatch_vkQueueSubmit2, + [VK_COMMAND_TYPE_vkCmdWriteTimestamp2_EXT] = vn_dispatch_vkCmdWriteTimestamp2, + [VK_COMMAND_TYPE_vkCmdBeginRendering_EXT] = vn_dispatch_vkCmdBeginRendering, + [VK_COMMAND_TYPE_vkCmdEndRendering_EXT] = vn_dispatch_vkCmdEndRendering, [VK_COMMAND_TYPE_vkSetReplyCommandStreamMESA_EXT] = vn_dispatch_vkSetReplyCommandStreamMESA, [VK_COMMAND_TYPE_vkSeekReplyCommandStreamMESA_EXT] = vn_dispatch_vkSeekReplyCommandStreamMESA, [VK_COMMAND_TYPE_vkExecuteCommandStreamsMESA_EXT] = vn_dispatch_vkExecuteCommandStreamsMESA, @@ -447,7 +526,7 @@ static inline void vn_dispatch_command(struct vn_dispatch_context *ctx) #ifdef DEBUG TRACE_SCOPE_SLOW(vn_dispatch_command_name(cmd_type)); #endif - if (cmd_type < 196 && vn_dispatch_table[cmd_type]) + if (cmd_type < 235 && vn_dispatch_table[cmd_type]) vn_dispatch_table[cmd_type](ctx, cmd_flags); else vn_cs_decoder_set_fatal(ctx->decoder); diff --git a/src/venus/venus-protocol/vn_protocol_renderer_handles.h b/src/venus/venus-protocol/vn_protocol_renderer_handles.h index f956389..f0b9b31 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_handles.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_handles.h @@ -872,4 +872,35 @@ vn_replace_VkSamplerYcbcrConversion_handle(VkSamplerYcbcrConversion *val) *val = (VkSamplerYcbcrConversion)vn_cs_get_object_handle((const void **)val, VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION); } +/* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot) */ + +static inline void +vn_encode_VkPrivateDataSlot(struct vn_cs_encoder *enc, const VkPrivateDataSlot *val) +{ + const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_PRIVATE_DATA_SLOT); + vn_encode_uint64_t(enc, &id); +} + +static inline void +vn_decode_VkPrivateDataSlot(struct vn_cs_decoder *dec, VkPrivateDataSlot *val) +{ + uint64_t id; + vn_decode_uint64_t(dec, &id); + vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_PRIVATE_DATA_SLOT); +} + +static inline void +vn_decode_VkPrivateDataSlot_lookup(struct vn_cs_decoder *dec, VkPrivateDataSlot *val) +{ + uint64_t id; + vn_decode_uint64_t(dec, &id); + *val = (VkPrivateDataSlot)(uintptr_t)vn_cs_decoder_lookup_object(dec, id, VK_OBJECT_TYPE_PRIVATE_DATA_SLOT); +} + +static inline void +vn_replace_VkPrivateDataSlot_handle(VkPrivateDataSlot *val) +{ + *val = (VkPrivateDataSlot)vn_cs_get_object_handle((const void **)val, VK_OBJECT_TYPE_PRIVATE_DATA_SLOT); +} + #endif /* VN_PROTOCOL_RENDERER_HANDLES_H */ diff --git a/src/venus/venus-protocol/vn_protocol_renderer_image.h b/src/venus/venus-protocol/vn_protocol_renderer_image.h index 9b57ecb..a26fe85 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_image.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_image.h @@ -38,6 +38,29 @@ vn_decode_VkSparseImageMemoryRequirements_partial_temp(struct vn_cs_decoder *dec /* struct VkExternalMemoryImageCreateInfo chain */ +static inline void +vn_encode_VkExternalMemoryImageCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkExternalMemoryImageCreateInfo_self(struct vn_cs_encoder *enc, const VkExternalMemoryImageCreateInfo *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkFlags(enc, &val->handleTypes); +} + +static inline void +vn_encode_VkExternalMemoryImageCreateInfo(struct vn_cs_encoder *enc, const VkExternalMemoryImageCreateInfo *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO }); + vn_encode_VkExternalMemoryImageCreateInfo_pnext(enc, val->pNext); + vn_encode_VkExternalMemoryImageCreateInfo_self(enc, val); +} + static inline void * vn_decode_VkExternalMemoryImageCreateInfo_pnext_temp(struct vn_cs_decoder *dec) { @@ -95,6 +118,35 @@ vn_replace_VkExternalMemoryImageCreateInfo_handle(VkExternalMemoryImageCreateInf /* struct VkImageDrmFormatModifierListCreateInfoEXT chain */ +static inline void +vn_encode_VkImageDrmFormatModifierListCreateInfoEXT_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkImageDrmFormatModifierListCreateInfoEXT_self(struct vn_cs_encoder *enc, const VkImageDrmFormatModifierListCreateInfoEXT *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_uint32_t(enc, &val->drmFormatModifierCount); + if (val->pDrmFormatModifiers) { + vn_encode_array_size(enc, val->drmFormatModifierCount); + vn_encode_uint64_t_array(enc, val->pDrmFormatModifiers, val->drmFormatModifierCount); + } else { + vn_encode_array_size(enc, 0); + } +} + +static inline void +vn_encode_VkImageDrmFormatModifierListCreateInfoEXT(struct vn_cs_encoder *enc, const VkImageDrmFormatModifierListCreateInfoEXT *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT }); + vn_encode_VkImageDrmFormatModifierListCreateInfoEXT_pnext(enc, val->pNext); + vn_encode_VkImageDrmFormatModifierListCreateInfoEXT_self(enc, val); +} + static inline void * vn_decode_VkImageDrmFormatModifierListCreateInfoEXT_pnext_temp(struct vn_cs_decoder *dec) { @@ -204,6 +256,37 @@ vn_replace_VkSubresourceLayout_handle(VkSubresourceLayout *val) /* struct VkImageDrmFormatModifierExplicitCreateInfoEXT chain */ +static inline void +vn_encode_VkImageDrmFormatModifierExplicitCreateInfoEXT_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkImageDrmFormatModifierExplicitCreateInfoEXT_self(struct vn_cs_encoder *enc, const VkImageDrmFormatModifierExplicitCreateInfoEXT *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_uint64_t(enc, &val->drmFormatModifier); + vn_encode_uint32_t(enc, &val->drmFormatModifierPlaneCount); + if (val->pPlaneLayouts) { + vn_encode_array_size(enc, val->drmFormatModifierPlaneCount); + for (uint32_t i = 0; i < val->drmFormatModifierPlaneCount; i++) + vn_encode_VkSubresourceLayout(enc, &val->pPlaneLayouts[i]); + } else { + vn_encode_array_size(enc, 0); + } +} + +static inline void +vn_encode_VkImageDrmFormatModifierExplicitCreateInfoEXT(struct vn_cs_encoder *enc, const VkImageDrmFormatModifierExplicitCreateInfoEXT *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT }); + vn_encode_VkImageDrmFormatModifierExplicitCreateInfoEXT_pnext(enc, val->pNext); + vn_encode_VkImageDrmFormatModifierExplicitCreateInfoEXT_self(enc, val); +} + static inline void * vn_decode_VkImageDrmFormatModifierExplicitCreateInfoEXT_pnext_temp(struct vn_cs_decoder *dec) { @@ -277,6 +360,86 @@ vn_replace_VkImageDrmFormatModifierExplicitCreateInfoEXT_handle(VkImageDrmFormat /* struct VkImageCreateInfo chain */ +static inline void +vn_encode_VkImageCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val) +{ + const VkBaseInStructure *pnext = val; + + while (pnext) { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkImageCreateInfo_pnext(enc, pnext->pNext); + vn_encode_VkExternalMemoryImageCreateInfo_self(enc, (const VkExternalMemoryImageCreateInfo *)pnext); + return; + case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkImageCreateInfo_pnext(enc, pnext->pNext); + vn_encode_VkImageFormatListCreateInfo_self(enc, (const VkImageFormatListCreateInfo *)pnext); + return; + case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkImageCreateInfo_pnext(enc, pnext->pNext); + vn_encode_VkImageDrmFormatModifierListCreateInfoEXT_self(enc, (const VkImageDrmFormatModifierListCreateInfoEXT *)pnext); + return; + case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkImageCreateInfo_pnext(enc, pnext->pNext); + vn_encode_VkImageDrmFormatModifierExplicitCreateInfoEXT_self(enc, (const VkImageDrmFormatModifierExplicitCreateInfoEXT *)pnext); + return; + case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkImageCreateInfo_pnext(enc, pnext->pNext); + vn_encode_VkImageStencilUsageCreateInfo_self(enc, (const VkImageStencilUsageCreateInfo *)pnext); + return; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } + + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkImageCreateInfo_self(struct vn_cs_encoder *enc, const VkImageCreateInfo *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkFlags(enc, &val->flags); + vn_encode_VkImageType(enc, &val->imageType); + vn_encode_VkFormat(enc, &val->format); + vn_encode_VkExtent3D(enc, &val->extent); + vn_encode_uint32_t(enc, &val->mipLevels); + vn_encode_uint32_t(enc, &val->arrayLayers); + vn_encode_VkSampleCountFlagBits(enc, &val->samples); + vn_encode_VkImageTiling(enc, &val->tiling); + vn_encode_VkFlags(enc, &val->usage); + vn_encode_VkSharingMode(enc, &val->sharingMode); + vn_encode_uint32_t(enc, &val->queueFamilyIndexCount); + if (val->pQueueFamilyIndices) { + vn_encode_array_size(enc, val->queueFamilyIndexCount); + vn_encode_uint32_t_array(enc, val->pQueueFamilyIndices, val->queueFamilyIndexCount); + } else { + vn_encode_array_size(enc, 0); + } + vn_encode_VkImageLayout(enc, &val->initialLayout); +} + +static inline void +vn_encode_VkImageCreateInfo(struct vn_cs_encoder *enc, const VkImageCreateInfo *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO }); + vn_encode_VkImageCreateInfo_pnext(enc, val->pNext); + vn_encode_VkImageCreateInfo_self(enc, val); +} + static inline void * vn_decode_VkImageCreateInfo_pnext_temp(struct vn_cs_decoder *dec) { @@ -1021,6 +1184,73 @@ vn_decode_VkSparseImageMemoryRequirements2_partial_temp(struct vn_cs_decoder *de vn_decode_VkSparseImageMemoryRequirements2_self_partial_temp(dec, val); } +/* struct VkDeviceImageMemoryRequirements chain */ + +static inline void * +vn_decode_VkDeviceImageMemoryRequirements_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkDeviceImageMemoryRequirements_self_temp(struct vn_cs_decoder *dec, VkDeviceImageMemoryRequirements *val) +{ + /* skip val->{sType,pNext} */ + if (vn_decode_simple_pointer(dec)) { + val->pCreateInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pCreateInfo)); + if (!val->pCreateInfo) return; + vn_decode_VkImageCreateInfo_temp(dec, (VkImageCreateInfo *)val->pCreateInfo); + } else { + val->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } + vn_decode_VkImageAspectFlagBits(dec, &val->planeAspect); +} + +static inline void +vn_decode_VkDeviceImageMemoryRequirements_temp(struct vn_cs_decoder *dec, VkDeviceImageMemoryRequirements *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkDeviceImageMemoryRequirements_pnext_temp(dec); + vn_decode_VkDeviceImageMemoryRequirements_self_temp(dec, val); +} + +static inline void +vn_replace_VkDeviceImageMemoryRequirements_handle_self(VkDeviceImageMemoryRequirements *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + if (val->pCreateInfo) + vn_replace_VkImageCreateInfo_handle((VkImageCreateInfo *)val->pCreateInfo); + /* skip val->planeAspect */ +} + +static inline void +vn_replace_VkDeviceImageMemoryRequirements_handle(VkDeviceImageMemoryRequirements *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS: + vn_replace_VkDeviceImageMemoryRequirements_handle_self((VkDeviceImageMemoryRequirements *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + /* struct VkImageDrmFormatModifierPropertiesEXT chain */ static inline void @@ -1430,6 +1660,102 @@ static inline void vn_encode_vkGetImageSparseMemoryRequirements2_reply(struct vn } } +static inline void vn_decode_vkGetDeviceImageMemoryRequirements_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetDeviceImageMemoryRequirements *args) +{ + vn_decode_VkDevice_lookup(dec, &args->device); + if (vn_decode_simple_pointer(dec)) { + args->pInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pInfo)); + if (!args->pInfo) return; + vn_decode_VkDeviceImageMemoryRequirements_temp(dec, (VkDeviceImageMemoryRequirements *)args->pInfo); + } else { + args->pInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } + if (vn_decode_simple_pointer(dec)) { + args->pMemoryRequirements = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pMemoryRequirements)); + if (!args->pMemoryRequirements) return; + vn_decode_VkMemoryRequirements2_partial_temp(dec, args->pMemoryRequirements); + } else { + args->pMemoryRequirements = NULL; + vn_cs_decoder_set_fatal(dec); + } +} + +static inline void vn_replace_vkGetDeviceImageMemoryRequirements_args_handle(struct vn_command_vkGetDeviceImageMemoryRequirements *args) +{ + vn_replace_VkDevice_handle(&args->device); + if (args->pInfo) + vn_replace_VkDeviceImageMemoryRequirements_handle((VkDeviceImageMemoryRequirements *)args->pInfo); + /* skip args->pMemoryRequirements */ +} + +static inline void vn_encode_vkGetDeviceImageMemoryRequirements_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetDeviceImageMemoryRequirements *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetDeviceImageMemoryRequirements_EXT}); + + /* skip args->device */ + /* skip args->pInfo */ + if (vn_encode_simple_pointer(enc, args->pMemoryRequirements)) + vn_encode_VkMemoryRequirements2(enc, args->pMemoryRequirements); +} + +static inline void vn_decode_vkGetDeviceImageSparseMemoryRequirements_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetDeviceImageSparseMemoryRequirements *args) +{ + vn_decode_VkDevice_lookup(dec, &args->device); + if (vn_decode_simple_pointer(dec)) { + args->pInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pInfo)); + if (!args->pInfo) return; + vn_decode_VkDeviceImageMemoryRequirements_temp(dec, (VkDeviceImageMemoryRequirements *)args->pInfo); + } else { + args->pInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } + if (vn_decode_simple_pointer(dec)) { + args->pSparseMemoryRequirementCount = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSparseMemoryRequirementCount)); + if (!args->pSparseMemoryRequirementCount) return; + vn_decode_uint32_t(dec, args->pSparseMemoryRequirementCount); + } else { + args->pSparseMemoryRequirementCount = NULL; + vn_cs_decoder_set_fatal(dec); + } + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, (args->pSparseMemoryRequirementCount ? *args->pSparseMemoryRequirementCount : 0)); + args->pSparseMemoryRequirements = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSparseMemoryRequirements) * iter_count); + if (!args->pSparseMemoryRequirements) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkSparseImageMemoryRequirements2_partial_temp(dec, &args->pSparseMemoryRequirements[i]); + } else { + vn_decode_array_size_unchecked(dec); + args->pSparseMemoryRequirements = NULL; + } +} + +static inline void vn_replace_vkGetDeviceImageSparseMemoryRequirements_args_handle(struct vn_command_vkGetDeviceImageSparseMemoryRequirements *args) +{ + vn_replace_VkDevice_handle(&args->device); + if (args->pInfo) + vn_replace_VkDeviceImageMemoryRequirements_handle((VkDeviceImageMemoryRequirements *)args->pInfo); + /* skip args->pSparseMemoryRequirementCount */ + /* skip args->pSparseMemoryRequirements */ +} + +static inline void vn_encode_vkGetDeviceImageSparseMemoryRequirements_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetDeviceImageSparseMemoryRequirements *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetDeviceImageSparseMemoryRequirements_EXT}); + + /* skip args->device */ + /* skip args->pInfo */ + if (vn_encode_simple_pointer(enc, args->pSparseMemoryRequirementCount)) + vn_encode_uint32_t(enc, args->pSparseMemoryRequirementCount); + if (args->pSparseMemoryRequirements) { + vn_encode_array_size(enc, (args->pSparseMemoryRequirementCount ? *args->pSparseMemoryRequirementCount : 0)); + for (uint32_t i = 0; i < (args->pSparseMemoryRequirementCount ? *args->pSparseMemoryRequirementCount : 0); i++) + vn_encode_VkSparseImageMemoryRequirements2(enc, &args->pSparseMemoryRequirements[i]); + } else { + vn_encode_array_size(enc, 0); + } +} + static inline void vn_decode_vkGetImageDrmFormatModifierPropertiesEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetImageDrmFormatModifierPropertiesEXT *args) { vn_decode_VkDevice_lookup(dec, &args->device); @@ -1699,6 +2025,56 @@ static inline void vn_dispatch_vkGetImageSparseMemoryRequirements2(struct vn_dis vn_cs_decoder_reset_temp_pool(ctx->decoder); } +static inline void vn_dispatch_vkGetDeviceImageMemoryRequirements(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkGetDeviceImageMemoryRequirements args; + + if (!ctx->dispatch_vkGetDeviceImageMemoryRequirements) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkGetDeviceImageMemoryRequirements_args_temp(ctx->decoder, &args); + if (!args.device) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkGetDeviceImageMemoryRequirements(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkGetDeviceImageMemoryRequirements_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkGetDeviceImageSparseMemoryRequirements(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkGetDeviceImageSparseMemoryRequirements args; + + if (!ctx->dispatch_vkGetDeviceImageSparseMemoryRequirements) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkGetDeviceImageSparseMemoryRequirements_args_temp(ctx->decoder, &args); + if (!args.device) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkGetDeviceImageSparseMemoryRequirements(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkGetDeviceImageSparseMemoryRequirements_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + static inline void vn_dispatch_vkGetImageDrmFormatModifierPropertiesEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { struct vn_command_vkGetImageDrmFormatModifierPropertiesEXT args; diff --git a/src/venus/venus-protocol/vn_protocol_renderer_info.h b/src/venus/venus-protocol/vn_protocol_renderer_info.h index 10281ea..63340fd 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_info.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_info.h @@ -12,23 +12,38 @@ struct vn_info_extension_table { union { - bool enabled[54]; + bool enabled[77]; struct { + bool EXT_4444_formats; bool EXT_command_serialization; bool EXT_descriptor_indexing; + bool EXT_extended_dynamic_state; + bool EXT_extended_dynamic_state2; bool EXT_external_memory_dma_buf; bool EXT_host_query_reset; bool EXT_image_drm_format_modifier; + bool EXT_image_robustness; + bool EXT_inline_uniform_block; + bool EXT_pipeline_creation_cache_control; + bool EXT_pipeline_creation_feedback; + bool EXT_private_data; bool EXT_queue_family_foreign; bool EXT_sampler_filter_minmax; bool EXT_scalar_block_layout; bool EXT_separate_stencil_usage; + bool EXT_shader_demote_to_helper_invocation; bool EXT_shader_viewport_index_layer; + bool EXT_subgroup_size_control; + bool EXT_texel_buffer_alignment; + bool EXT_texture_compression_astc_hdr; + bool EXT_tooling_info; bool EXT_transform_feedback; + bool EXT_ycbcr_2plane_444_formats; bool KHR_16bit_storage; bool KHR_8bit_storage; bool KHR_bind_memory2; bool KHR_buffer_device_address; + bool KHR_copy_commands2; bool KHR_create_renderpass2; bool KHR_dedicated_allocation; bool KHR_depth_stencil_resolve; @@ -37,6 +52,7 @@ struct vn_info_extension_table { bool KHR_device_group_creation; bool KHR_draw_indirect_count; bool KHR_driver_properties; + bool KHR_dynamic_rendering; bool KHR_external_fence; bool KHR_external_fence_capabilities; bool KHR_external_memory; @@ -44,6 +60,7 @@ struct vn_info_extension_table { bool KHR_external_memory_fd; bool KHR_external_semaphore; bool KHR_external_semaphore_capabilities; + bool KHR_format_feature_flags2; bool KHR_get_memory_requirements2; bool KHR_get_physical_device_properties2; bool KHR_image_format_list; @@ -51,6 +68,7 @@ struct vn_info_extension_table { bool KHR_maintenance1; bool KHR_maintenance2; bool KHR_maintenance3; + bool KHR_maintenance4; bool KHR_multiview; bool KHR_relaxed_block_layout; bool KHR_sampler_mirror_clamp_to_edge; @@ -60,13 +78,18 @@ struct vn_info_extension_table { bool KHR_shader_draw_parameters; bool KHR_shader_float16_int8; bool KHR_shader_float_controls; + bool KHR_shader_integer_dot_product; + bool KHR_shader_non_semantic_info; bool KHR_shader_subgroup_extended_types; + bool KHR_shader_terminate_invocation; bool KHR_spirv_1_4; bool KHR_storage_buffer_storage_class; + bool KHR_synchronization2; bool KHR_timeline_semaphore; bool KHR_uniform_buffer_standard_layout; bool KHR_variable_pointers; bool KHR_vulkan_memory_model; + bool KHR_zero_initialize_workgroup_memory; bool MESA_venus_protocol; }; }; @@ -88,7 +111,7 @@ vn_info_wire_format_version(void) static inline uint32_t vn_info_vk_xml_version(void) { - return VK_MAKE_API_VERSION(0, 1, 2, 182); + return VK_MAKE_API_VERSION(0, 1, 3, 204); } static inline int @@ -100,64 +123,87 @@ vn_info_extension_compare(const void *name, const void *ext) static inline const struct vn_info_extension * vn_info_extension_get(const char *name) { - static const struct vn_info_extension vn_info_extensions[54] = { - { 0, "VK_EXT_command_serialization", 0 }, - { 1, "VK_EXT_descriptor_indexing", 2 }, - { 2, "VK_EXT_external_memory_dma_buf", 1 }, - { 3, "VK_EXT_host_query_reset", 1 }, - { 4, "VK_EXT_image_drm_format_modifier", 1 }, - { 5, "VK_EXT_queue_family_foreign", 1 }, - { 6, "VK_EXT_sampler_filter_minmax", 2 }, - { 7, "VK_EXT_scalar_block_layout", 1 }, - { 8, "VK_EXT_separate_stencil_usage", 1 }, - { 9, "VK_EXT_shader_viewport_index_layer", 1 }, - { 10, "VK_EXT_transform_feedback", 1 }, - { 11, "VK_KHR_16bit_storage", 1 }, - { 12, "VK_KHR_8bit_storage", 1 }, - { 13, "VK_KHR_bind_memory2", 1 }, - { 14, "VK_KHR_buffer_device_address", 1 }, - { 15, "VK_KHR_create_renderpass2", 1 }, - { 16, "VK_KHR_dedicated_allocation", 3 }, - { 17, "VK_KHR_depth_stencil_resolve", 1 }, - { 18, "VK_KHR_descriptor_update_template", 1 }, - { 19, "VK_KHR_device_group", 4 }, - { 20, "VK_KHR_device_group_creation", 1 }, - { 21, "VK_KHR_draw_indirect_count", 1 }, - { 22, "VK_KHR_driver_properties", 1 }, - { 23, "VK_KHR_external_fence", 1 }, - { 24, "VK_KHR_external_fence_capabilities", 1 }, - { 25, "VK_KHR_external_memory", 1 }, - { 26, "VK_KHR_external_memory_capabilities", 1 }, - { 27, "VK_KHR_external_memory_fd", 1 }, - { 28, "VK_KHR_external_semaphore", 1 }, - { 29, "VK_KHR_external_semaphore_capabilities", 1 }, - { 30, "VK_KHR_get_memory_requirements2", 1 }, - { 31, "VK_KHR_get_physical_device_properties2", 2 }, - { 32, "VK_KHR_image_format_list", 1 }, - { 33, "VK_KHR_imageless_framebuffer", 1 }, - { 34, "VK_KHR_maintenance1", 2 }, - { 35, "VK_KHR_maintenance2", 1 }, - { 36, "VK_KHR_maintenance3", 1 }, - { 37, "VK_KHR_multiview", 1 }, - { 38, "VK_KHR_relaxed_block_layout", 1 }, - { 39, "VK_KHR_sampler_mirror_clamp_to_edge", 3 }, - { 40, "VK_KHR_sampler_ycbcr_conversion", 14 }, - { 41, "VK_KHR_separate_depth_stencil_layouts", 1 }, - { 42, "VK_KHR_shader_atomic_int64", 1 }, - { 43, "VK_KHR_shader_draw_parameters", 1 }, - { 44, "VK_KHR_shader_float16_int8", 1 }, - { 45, "VK_KHR_shader_float_controls", 4 }, - { 46, "VK_KHR_shader_subgroup_extended_types", 1 }, - { 47, "VK_KHR_spirv_1_4", 1 }, - { 48, "VK_KHR_storage_buffer_storage_class", 1 }, - { 49, "VK_KHR_timeline_semaphore", 2 }, - { 50, "VK_KHR_uniform_buffer_standard_layout", 1 }, - { 51, "VK_KHR_variable_pointers", 1 }, - { 52, "VK_KHR_vulkan_memory_model", 3 }, - { 53, "VK_MESA_venus_protocol", 100000 }, + static const struct vn_info_extension vn_info_extensions[77] = { + { 0, "VK_EXT_4444_formats", 1 }, + { 1, "VK_EXT_command_serialization", 0 }, + { 2, "VK_EXT_descriptor_indexing", 2 }, + { 3, "VK_EXT_extended_dynamic_state", 1 }, + { 4, "VK_EXT_extended_dynamic_state2", 1 }, + { 5, "VK_EXT_external_memory_dma_buf", 1 }, + { 6, "VK_EXT_host_query_reset", 1 }, + { 7, "VK_EXT_image_drm_format_modifier", 2 }, + { 8, "VK_EXT_image_robustness", 1 }, + { 9, "VK_EXT_inline_uniform_block", 1 }, + { 10, "VK_EXT_pipeline_creation_cache_control", 3 }, + { 11, "VK_EXT_pipeline_creation_feedback", 1 }, + { 12, "VK_EXT_private_data", 1 }, + { 13, "VK_EXT_queue_family_foreign", 1 }, + { 14, "VK_EXT_sampler_filter_minmax", 2 }, + { 15, "VK_EXT_scalar_block_layout", 1 }, + { 16, "VK_EXT_separate_stencil_usage", 1 }, + { 17, "VK_EXT_shader_demote_to_helper_invocation", 1 }, + { 18, "VK_EXT_shader_viewport_index_layer", 1 }, + { 19, "VK_EXT_subgroup_size_control", 2 }, + { 20, "VK_EXT_texel_buffer_alignment", 1 }, + { 21, "VK_EXT_texture_compression_astc_hdr", 1 }, + { 22, "VK_EXT_tooling_info", 1 }, + { 23, "VK_EXT_transform_feedback", 1 }, + { 24, "VK_EXT_ycbcr_2plane_444_formats", 1 }, + { 25, "VK_KHR_16bit_storage", 1 }, + { 26, "VK_KHR_8bit_storage", 1 }, + { 27, "VK_KHR_bind_memory2", 1 }, + { 28, "VK_KHR_buffer_device_address", 1 }, + { 29, "VK_KHR_copy_commands2", 1 }, + { 30, "VK_KHR_create_renderpass2", 1 }, + { 31, "VK_KHR_dedicated_allocation", 3 }, + { 32, "VK_KHR_depth_stencil_resolve", 1 }, + { 33, "VK_KHR_descriptor_update_template", 1 }, + { 34, "VK_KHR_device_group", 4 }, + { 35, "VK_KHR_device_group_creation", 1 }, + { 36, "VK_KHR_draw_indirect_count", 1 }, + { 37, "VK_KHR_driver_properties", 1 }, + { 38, "VK_KHR_dynamic_rendering", 1 }, + { 39, "VK_KHR_external_fence", 1 }, + { 40, "VK_KHR_external_fence_capabilities", 1 }, + { 41, "VK_KHR_external_memory", 1 }, + { 42, "VK_KHR_external_memory_capabilities", 1 }, + { 43, "VK_KHR_external_memory_fd", 1 }, + { 44, "VK_KHR_external_semaphore", 1 }, + { 45, "VK_KHR_external_semaphore_capabilities", 1 }, + { 46, "VK_KHR_format_feature_flags2", 1 }, + { 47, "VK_KHR_get_memory_requirements2", 1 }, + { 48, "VK_KHR_get_physical_device_properties2", 2 }, + { 49, "VK_KHR_image_format_list", 1 }, + { 50, "VK_KHR_imageless_framebuffer", 1 }, + { 51, "VK_KHR_maintenance1", 2 }, + { 52, "VK_KHR_maintenance2", 1 }, + { 53, "VK_KHR_maintenance3", 1 }, + { 54, "VK_KHR_maintenance4", 2 }, + { 55, "VK_KHR_multiview", 1 }, + { 56, "VK_KHR_relaxed_block_layout", 1 }, + { 57, "VK_KHR_sampler_mirror_clamp_to_edge", 3 }, + { 58, "VK_KHR_sampler_ycbcr_conversion", 14 }, + { 59, "VK_KHR_separate_depth_stencil_layouts", 1 }, + { 60, "VK_KHR_shader_atomic_int64", 1 }, + { 61, "VK_KHR_shader_draw_parameters", 1 }, + { 62, "VK_KHR_shader_float16_int8", 1 }, + { 63, "VK_KHR_shader_float_controls", 4 }, + { 64, "VK_KHR_shader_integer_dot_product", 1 }, + { 65, "VK_KHR_shader_non_semantic_info", 1 }, + { 66, "VK_KHR_shader_subgroup_extended_types", 1 }, + { 67, "VK_KHR_shader_terminate_invocation", 1 }, + { 68, "VK_KHR_spirv_1_4", 1 }, + { 69, "VK_KHR_storage_buffer_storage_class", 1 }, + { 70, "VK_KHR_synchronization2", 1 }, + { 71, "VK_KHR_timeline_semaphore", 2 }, + { 72, "VK_KHR_uniform_buffer_standard_layout", 1 }, + { 73, "VK_KHR_variable_pointers", 1 }, + { 74, "VK_KHR_vulkan_memory_model", 3 }, + { 75, "VK_KHR_zero_initialize_workgroup_memory", 1 }, + { 76, "VK_MESA_venus_protocol", 100000 }, }; - return bsearch(name, vn_info_extensions, 54, + return bsearch(name, vn_info_extensions, 77, sizeof(*vn_info_extensions), vn_info_extension_compare); } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_pipeline.h b/src/venus/venus-protocol/vn_protocol_renderer_pipeline.h index 4946f0b..344e841 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_pipeline.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_pipeline.h @@ -72,10 +72,10 @@ vn_replace_VkSpecializationInfo_handle(VkSpecializationInfo *val) /* skip val->pData */ } -/* struct VkPipelineShaderStageCreateInfo chain */ +/* struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo chain */ static inline void * -vn_decode_VkPipelineShaderStageCreateInfo_pnext_temp(struct vn_cs_decoder *dec) +vn_decode_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo_pnext_temp(struct vn_cs_decoder *dec) { /* no known/supported struct */ if (vn_decode_simple_pointer(dec)) @@ -83,6 +83,83 @@ vn_decode_VkPipelineShaderStageCreateInfo_pnext_temp(struct vn_cs_decoder *dec) return NULL; } +static inline void +vn_decode_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo_self_temp(struct vn_cs_decoder *dec, VkPipelineShaderStageRequiredSubgroupSizeCreateInfo *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_uint32_t(dec, &val->requiredSubgroupSize); +} + +static inline void +vn_decode_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo_temp(struct vn_cs_decoder *dec, VkPipelineShaderStageRequiredSubgroupSizeCreateInfo *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo_pnext_temp(dec); + vn_decode_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo_self_temp(dec, val); +} + +static inline void +vn_replace_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo_handle_self(VkPipelineShaderStageRequiredSubgroupSizeCreateInfo *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->requiredSubgroupSize */ +} + +static inline void +vn_replace_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo_handle(VkPipelineShaderStageRequiredSubgroupSizeCreateInfo *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: + vn_replace_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo_handle_self((VkPipelineShaderStageRequiredSubgroupSizeCreateInfo *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPipelineShaderStageCreateInfo chain */ + +static inline void * +vn_decode_VkPipelineShaderStageCreateInfo_pnext_temp(struct vn_cs_decoder *dec) +{ + VkBaseOutStructure *pnext; + VkStructureType stype; + + if (!vn_decode_simple_pointer(dec)) + return NULL; + + vn_decode_VkStructureType(dec, &stype); + switch ((int32_t)stype) { + case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPipelineShaderStageRequiredSubgroupSizeCreateInfo)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkPipelineShaderStageCreateInfo_pnext_temp(dec); + vn_decode_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo_self_temp(dec, (VkPipelineShaderStageRequiredSubgroupSizeCreateInfo *)pnext); + } + break; + default: + /* unexpected struct */ + pnext = NULL; + vn_cs_decoder_set_fatal(dec); + break; + } + + return pnext; +} + static inline void vn_decode_VkPipelineShaderStageCreateInfo_self_temp(struct vn_cs_decoder *dec, VkPipelineShaderStageCreateInfo *val) { @@ -144,6 +221,9 @@ vn_replace_VkPipelineShaderStageCreateInfo_handle(VkPipelineShaderStageCreateInf case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO: vn_replace_VkPipelineShaderStageCreateInfo_handle_self((VkPipelineShaderStageCreateInfo *)pnext); break; + case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: + vn_replace_VkPipelineShaderStageRequiredSubgroupSizeCreateInfo_handle_self((VkPipelineShaderStageRequiredSubgroupSizeCreateInfo *)pnext); + break; default: /* ignore unknown/unsupported struct */ break; @@ -1084,10 +1164,26 @@ vn_replace_VkPipelineDynamicStateCreateInfo_handle(VkPipelineDynamicStateCreateI } while (pnext); } -/* struct VkGraphicsPipelineCreateInfo chain */ +/* struct VkPipelineCreationFeedback */ + +static inline void +vn_decode_VkPipelineCreationFeedback_temp(struct vn_cs_decoder *dec, VkPipelineCreationFeedback *val) +{ + vn_decode_VkFlags(dec, &val->flags); + vn_decode_uint64_t(dec, &val->duration); +} + +static inline void +vn_replace_VkPipelineCreationFeedback_handle(VkPipelineCreationFeedback *val) +{ + /* skip val->flags */ + /* skip val->duration */ +} + +/* struct VkPipelineCreationFeedbackCreateInfo chain */ static inline void * -vn_decode_VkGraphicsPipelineCreateInfo_pnext_temp(struct vn_cs_decoder *dec) +vn_decode_VkPipelineCreationFeedbackCreateInfo_pnext_temp(struct vn_cs_decoder *dec) { /* no known/supported struct */ if (vn_decode_simple_pointer(dec)) @@ -1095,6 +1191,188 @@ vn_decode_VkGraphicsPipelineCreateInfo_pnext_temp(struct vn_cs_decoder *dec) return NULL; } +static inline void +vn_decode_VkPipelineCreationFeedbackCreateInfo_self_temp(struct vn_cs_decoder *dec, VkPipelineCreationFeedbackCreateInfo *val) +{ + /* skip val->{sType,pNext} */ + if (vn_decode_simple_pointer(dec)) { + val->pPipelineCreationFeedback = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pPipelineCreationFeedback)); + if (!val->pPipelineCreationFeedback) return; + vn_decode_VkPipelineCreationFeedback_temp(dec, val->pPipelineCreationFeedback); + } else { + val->pPipelineCreationFeedback = NULL; + vn_cs_decoder_set_fatal(dec); + } + vn_decode_uint32_t(dec, &val->pipelineStageCreationFeedbackCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, val->pipelineStageCreationFeedbackCount); + val->pPipelineStageCreationFeedbacks = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pPipelineStageCreationFeedbacks) * iter_count); + if (!val->pPipelineStageCreationFeedbacks) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkPipelineCreationFeedback_temp(dec, &val->pPipelineStageCreationFeedbacks[i]); + } else { + vn_decode_array_size(dec, val->pipelineStageCreationFeedbackCount); + val->pPipelineStageCreationFeedbacks = NULL; + } +} + +static inline void +vn_decode_VkPipelineCreationFeedbackCreateInfo_temp(struct vn_cs_decoder *dec, VkPipelineCreationFeedbackCreateInfo *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPipelineCreationFeedbackCreateInfo_pnext_temp(dec); + vn_decode_VkPipelineCreationFeedbackCreateInfo_self_temp(dec, val); +} + +static inline void +vn_replace_VkPipelineCreationFeedbackCreateInfo_handle_self(VkPipelineCreationFeedbackCreateInfo *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + if (val->pPipelineCreationFeedback) + vn_replace_VkPipelineCreationFeedback_handle(val->pPipelineCreationFeedback); + /* skip val->pipelineStageCreationFeedbackCount */ + if (val->pPipelineStageCreationFeedbacks) { + for (uint32_t i = 0; i < val->pipelineStageCreationFeedbackCount; i++) + vn_replace_VkPipelineCreationFeedback_handle(&val->pPipelineStageCreationFeedbacks[i]); + } +} + +static inline void +vn_replace_VkPipelineCreationFeedbackCreateInfo_handle(VkPipelineCreationFeedbackCreateInfo *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: + vn_replace_VkPipelineCreationFeedbackCreateInfo_handle_self((VkPipelineCreationFeedbackCreateInfo *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkPipelineRenderingCreateInfo chain */ + +static inline void * +vn_decode_VkPipelineRenderingCreateInfo_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPipelineRenderingCreateInfo_self_temp(struct vn_cs_decoder *dec, VkPipelineRenderingCreateInfo *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_uint32_t(dec, &val->viewMask); + vn_decode_uint32_t(dec, &val->colorAttachmentCount); + if (vn_peek_array_size(dec)) { + const size_t array_size = vn_decode_array_size(dec, val->colorAttachmentCount); + val->pColorAttachmentFormats = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pColorAttachmentFormats) * array_size); + if (!val->pColorAttachmentFormats) return; + vn_decode_VkFormat_array(dec, (VkFormat *)val->pColorAttachmentFormats, array_size); + } else { + vn_decode_array_size(dec, val->colorAttachmentCount); + val->pColorAttachmentFormats = NULL; + } + vn_decode_VkFormat(dec, &val->depthAttachmentFormat); + vn_decode_VkFormat(dec, &val->stencilAttachmentFormat); +} + +static inline void +vn_decode_VkPipelineRenderingCreateInfo_temp(struct vn_cs_decoder *dec, VkPipelineRenderingCreateInfo *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPipelineRenderingCreateInfo_pnext_temp(dec); + vn_decode_VkPipelineRenderingCreateInfo_self_temp(dec, val); +} + +static inline void +vn_replace_VkPipelineRenderingCreateInfo_handle_self(VkPipelineRenderingCreateInfo *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->viewMask */ + /* skip val->colorAttachmentCount */ + /* skip val->pColorAttachmentFormats */ + /* skip val->depthAttachmentFormat */ + /* skip val->stencilAttachmentFormat */ +} + +static inline void +vn_replace_VkPipelineRenderingCreateInfo_handle(VkPipelineRenderingCreateInfo *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: + vn_replace_VkPipelineRenderingCreateInfo_handle_self((VkPipelineRenderingCreateInfo *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkGraphicsPipelineCreateInfo chain */ + +static inline void * +vn_decode_VkGraphicsPipelineCreateInfo_pnext_temp(struct vn_cs_decoder *dec) +{ + VkBaseOutStructure *pnext; + VkStructureType stype; + + if (!vn_decode_simple_pointer(dec)) + return NULL; + + vn_decode_VkStructureType(dec, &stype); + switch ((int32_t)stype) { + case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPipelineCreationFeedbackCreateInfo)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkGraphicsPipelineCreateInfo_pnext_temp(dec); + vn_decode_VkPipelineCreationFeedbackCreateInfo_self_temp(dec, (VkPipelineCreationFeedbackCreateInfo *)pnext); + } + break; + case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPipelineRenderingCreateInfo)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkGraphicsPipelineCreateInfo_pnext_temp(dec); + vn_decode_VkPipelineRenderingCreateInfo_self_temp(dec, (VkPipelineRenderingCreateInfo *)pnext); + } + break; + default: + /* unexpected struct */ + pnext = NULL; + vn_cs_decoder_set_fatal(dec); + break; + } + + return pnext; +} + static inline void vn_decode_VkGraphicsPipelineCreateInfo_self_temp(struct vn_cs_decoder *dec, VkGraphicsPipelineCreateInfo *val) { @@ -1241,6 +1519,12 @@ vn_replace_VkGraphicsPipelineCreateInfo_handle(VkGraphicsPipelineCreateInfo *val case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO: vn_replace_VkGraphicsPipelineCreateInfo_handle_self((VkGraphicsPipelineCreateInfo *)pnext); break; + case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: + vn_replace_VkPipelineCreationFeedbackCreateInfo_handle_self((VkPipelineCreationFeedbackCreateInfo *)pnext); + break; + case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: + vn_replace_VkPipelineRenderingCreateInfo_handle_self((VkPipelineRenderingCreateInfo *)pnext); + break; default: /* ignore unknown/unsupported struct */ break; @@ -1254,10 +1538,30 @@ vn_replace_VkGraphicsPipelineCreateInfo_handle(VkGraphicsPipelineCreateInfo *val static inline void * vn_decode_VkComputePipelineCreateInfo_pnext_temp(struct vn_cs_decoder *dec) { - /* no known/supported struct */ - if (vn_decode_simple_pointer(dec)) + VkBaseOutStructure *pnext; + VkStructureType stype; + + if (!vn_decode_simple_pointer(dec)) + return NULL; + + vn_decode_VkStructureType(dec, &stype); + switch ((int32_t)stype) { + case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPipelineCreationFeedbackCreateInfo)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkComputePipelineCreateInfo_pnext_temp(dec); + vn_decode_VkPipelineCreationFeedbackCreateInfo_self_temp(dec, (VkPipelineCreationFeedbackCreateInfo *)pnext); + } + break; + default: + /* unexpected struct */ + pnext = NULL; vn_cs_decoder_set_fatal(dec); - return NULL; + break; + } + + return pnext; } static inline void @@ -1306,6 +1610,9 @@ vn_replace_VkComputePipelineCreateInfo_handle(VkComputePipelineCreateInfo *val) case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO: vn_replace_VkComputePipelineCreateInfo_handle_self((VkComputePipelineCreateInfo *)pnext); break; + case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: + vn_replace_VkPipelineCreationFeedbackCreateInfo_handle_self((VkPipelineCreationFeedbackCreateInfo *)pnext); + break; default: /* ignore unknown/unsupported struct */ break; diff --git a/src/venus/venus-protocol/vn_protocol_renderer_private_data_slot.h b/src/venus/venus-protocol/vn_protocol_renderer_private_data_slot.h new file mode 100644 index 0000000..bab95e8 --- /dev/null +++ b/src/venus/venus-protocol/vn_protocol_renderer_private_data_slot.h @@ -0,0 +1,324 @@ +/* This file is generated by venus-protocol. See vn_protocol_renderer.h. */ + +/* + * Copyright 2020 Google LLC + * SPDX-License-Identifier: MIT + */ + +#ifndef VN_PROTOCOL_RENDERER_PRIVATE_DATA_SLOT_H +#define VN_PROTOCOL_RENDERER_PRIVATE_DATA_SLOT_H + +#include "vn_protocol_renderer_structs.h" + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpointer-arith" +#pragma GCC diagnostic ignored "-Wunused-parameter" + +/* struct VkPrivateDataSlotCreateInfo chain */ + +static inline void * +vn_decode_VkPrivateDataSlotCreateInfo_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkPrivateDataSlotCreateInfo_self_temp(struct vn_cs_decoder *dec, VkPrivateDataSlotCreateInfo *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkFlags(dec, &val->flags); +} + +static inline void +vn_decode_VkPrivateDataSlotCreateInfo_temp(struct vn_cs_decoder *dec, VkPrivateDataSlotCreateInfo *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkPrivateDataSlotCreateInfo_pnext_temp(dec); + vn_decode_VkPrivateDataSlotCreateInfo_self_temp(dec, val); +} + +static inline void +vn_replace_VkPrivateDataSlotCreateInfo_handle_self(VkPrivateDataSlotCreateInfo *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->flags */ +} + +static inline void +vn_replace_VkPrivateDataSlotCreateInfo_handle(VkPrivateDataSlotCreateInfo *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO: + vn_replace_VkPrivateDataSlotCreateInfo_handle_self((VkPrivateDataSlotCreateInfo *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +static inline void vn_decode_vkCreatePrivateDataSlot_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCreatePrivateDataSlot *args) +{ + vn_decode_VkDevice_lookup(dec, &args->device); + if (vn_decode_simple_pointer(dec)) { + args->pCreateInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCreateInfo)); + if (!args->pCreateInfo) return; + vn_decode_VkPrivateDataSlotCreateInfo_temp(dec, (VkPrivateDataSlotCreateInfo *)args->pCreateInfo); + } else { + args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); + } + if (vn_decode_simple_pointer(dec)) { + vn_cs_decoder_set_fatal(dec); + } else { + args->pAllocator = NULL; + } + if (vn_decode_simple_pointer(dec)) { + args->pPrivateDataSlot = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pPrivateDataSlot)); + if (!args->pPrivateDataSlot) return; + vn_decode_VkPrivateDataSlot(dec, args->pPrivateDataSlot); + } else { + args->pPrivateDataSlot = NULL; + vn_cs_decoder_set_fatal(dec); + } +} + +static inline void vn_replace_vkCreatePrivateDataSlot_args_handle(struct vn_command_vkCreatePrivateDataSlot *args) +{ + vn_replace_VkDevice_handle(&args->device); + if (args->pCreateInfo) + vn_replace_VkPrivateDataSlotCreateInfo_handle((VkPrivateDataSlotCreateInfo *)args->pCreateInfo); + /* skip args->pAllocator */ + /* skip args->pPrivateDataSlot */ +} + +static inline void vn_encode_vkCreatePrivateDataSlot_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCreatePrivateDataSlot *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCreatePrivateDataSlot_EXT}); + + vn_encode_VkResult(enc, &args->ret); + /* skip args->device */ + /* skip args->pCreateInfo */ + /* skip args->pAllocator */ + if (vn_encode_simple_pointer(enc, args->pPrivateDataSlot)) + vn_encode_VkPrivateDataSlot(enc, args->pPrivateDataSlot); +} + +static inline void vn_decode_vkDestroyPrivateDataSlot_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkDestroyPrivateDataSlot *args) +{ + vn_decode_VkDevice_lookup(dec, &args->device); + vn_decode_VkPrivateDataSlot_lookup(dec, &args->privateDataSlot); + if (vn_decode_simple_pointer(dec)) { + vn_cs_decoder_set_fatal(dec); + } else { + args->pAllocator = NULL; + } +} + +static inline void vn_replace_vkDestroyPrivateDataSlot_args_handle(struct vn_command_vkDestroyPrivateDataSlot *args) +{ + vn_replace_VkDevice_handle(&args->device); + vn_replace_VkPrivateDataSlot_handle(&args->privateDataSlot); + /* skip args->pAllocator */ +} + +static inline void vn_encode_vkDestroyPrivateDataSlot_reply(struct vn_cs_encoder *enc, const struct vn_command_vkDestroyPrivateDataSlot *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkDestroyPrivateDataSlot_EXT}); + + /* skip args->device */ + /* skip args->privateDataSlot */ + /* skip args->pAllocator */ +} + +static inline void vn_decode_vkSetPrivateData_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkSetPrivateData *args) +{ + vn_decode_VkDevice_lookup(dec, &args->device); + vn_decode_VkObjectType(dec, &args->objectType); + vn_decode_uint64_t(dec, &args->objectHandle); + vn_decode_VkPrivateDataSlot_lookup(dec, &args->privateDataSlot); + vn_decode_uint64_t(dec, &args->data); +} + +static inline void vn_replace_vkSetPrivateData_args_handle(struct vn_command_vkSetPrivateData *args) +{ + vn_replace_VkDevice_handle(&args->device); + /* skip args->objectType */ + /* skip args->objectHandle */ + vn_replace_VkPrivateDataSlot_handle(&args->privateDataSlot); + /* skip args->data */ +} + +static inline void vn_encode_vkSetPrivateData_reply(struct vn_cs_encoder *enc, const struct vn_command_vkSetPrivateData *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkSetPrivateData_EXT}); + + vn_encode_VkResult(enc, &args->ret); + /* skip args->device */ + /* skip args->objectType */ + /* skip args->objectHandle */ + /* skip args->privateDataSlot */ + /* skip args->data */ +} + +static inline void vn_decode_vkGetPrivateData_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPrivateData *args) +{ + vn_decode_VkDevice_lookup(dec, &args->device); + vn_decode_VkObjectType(dec, &args->objectType); + vn_decode_uint64_t(dec, &args->objectHandle); + vn_decode_VkPrivateDataSlot_lookup(dec, &args->privateDataSlot); + if (vn_decode_simple_pointer(dec)) { + args->pData = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pData)); + if (!args->pData) return; + } else { + args->pData = NULL; + vn_cs_decoder_set_fatal(dec); + } +} + +static inline void vn_replace_vkGetPrivateData_args_handle(struct vn_command_vkGetPrivateData *args) +{ + vn_replace_VkDevice_handle(&args->device); + /* skip args->objectType */ + /* skip args->objectHandle */ + vn_replace_VkPrivateDataSlot_handle(&args->privateDataSlot); + /* skip args->pData */ +} + +static inline void vn_encode_vkGetPrivateData_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPrivateData *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPrivateData_EXT}); + + /* skip args->device */ + /* skip args->objectType */ + /* skip args->objectHandle */ + /* skip args->privateDataSlot */ + if (vn_encode_simple_pointer(enc, args->pData)) + vn_encode_uint64_t(enc, args->pData); +} + +static inline void vn_dispatch_vkCreatePrivateDataSlot(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkCreatePrivateDataSlot args; + + if (!ctx->dispatch_vkCreatePrivateDataSlot) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkCreatePrivateDataSlot_args_temp(ctx->decoder, &args); + if (!args.device) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkCreatePrivateDataSlot(ctx, &args); + +#ifdef DEBUG + if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret)) + vn_dispatch_debug_log(ctx, "vkCreatePrivateDataSlot returned %d", args.ret); +#endif + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkCreatePrivateDataSlot_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkDestroyPrivateDataSlot(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkDestroyPrivateDataSlot args; + + if (!ctx->dispatch_vkDestroyPrivateDataSlot) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkDestroyPrivateDataSlot_args_temp(ctx->decoder, &args); + if (!args.device) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkDestroyPrivateDataSlot(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkDestroyPrivateDataSlot_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkSetPrivateData(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkSetPrivateData args; + + if (!ctx->dispatch_vkSetPrivateData) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkSetPrivateData_args_temp(ctx->decoder, &args); + if (!args.device) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkSetPrivateData(ctx, &args); + +#ifdef DEBUG + if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret)) + vn_dispatch_debug_log(ctx, "vkSetPrivateData returned %d", args.ret); +#endif + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkSetPrivateData_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +static inline void vn_dispatch_vkGetPrivateData(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkGetPrivateData args; + + if (!ctx->dispatch_vkGetPrivateData) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkGetPrivateData_args_temp(ctx->decoder, &args); + if (!args.device) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkGetPrivateData(ctx, &args); + + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkGetPrivateData_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + +#pragma GCC diagnostic pop + +#endif /* VN_PROTOCOL_RENDERER_PRIVATE_DATA_SLOT_H */ diff --git a/src/venus/venus-protocol/vn_protocol_renderer_queue.h b/src/venus/venus-protocol/vn_protocol_renderer_queue.h index 8b22d7c..041677f 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_queue.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_queue.h @@ -764,6 +764,233 @@ vn_replace_VkBindSparseInfo_handle(VkBindSparseInfo *val) } while (pnext); } +/* struct VkSemaphoreSubmitInfo chain */ + +static inline void * +vn_decode_VkSemaphoreSubmitInfo_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkSemaphoreSubmitInfo_self_temp(struct vn_cs_decoder *dec, VkSemaphoreSubmitInfo *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkSemaphore_lookup(dec, &val->semaphore); + vn_decode_uint64_t(dec, &val->value); + vn_decode_VkFlags64(dec, &val->stageMask); + vn_decode_uint32_t(dec, &val->deviceIndex); +} + +static inline void +vn_decode_VkSemaphoreSubmitInfo_temp(struct vn_cs_decoder *dec, VkSemaphoreSubmitInfo *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkSemaphoreSubmitInfo_pnext_temp(dec); + vn_decode_VkSemaphoreSubmitInfo_self_temp(dec, val); +} + +static inline void +vn_replace_VkSemaphoreSubmitInfo_handle_self(VkSemaphoreSubmitInfo *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + vn_replace_VkSemaphore_handle(&val->semaphore); + /* skip val->value */ + /* skip val->stageMask */ + /* skip val->deviceIndex */ +} + +static inline void +vn_replace_VkSemaphoreSubmitInfo_handle(VkSemaphoreSubmitInfo *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO: + vn_replace_VkSemaphoreSubmitInfo_handle_self((VkSemaphoreSubmitInfo *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkCommandBufferSubmitInfo chain */ + +static inline void * +vn_decode_VkCommandBufferSubmitInfo_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkCommandBufferSubmitInfo_self_temp(struct vn_cs_decoder *dec, VkCommandBufferSubmitInfo *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkCommandBuffer_lookup(dec, &val->commandBuffer); + vn_decode_uint32_t(dec, &val->deviceMask); +} + +static inline void +vn_decode_VkCommandBufferSubmitInfo_temp(struct vn_cs_decoder *dec, VkCommandBufferSubmitInfo *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkCommandBufferSubmitInfo_pnext_temp(dec); + vn_decode_VkCommandBufferSubmitInfo_self_temp(dec, val); +} + +static inline void +vn_replace_VkCommandBufferSubmitInfo_handle_self(VkCommandBufferSubmitInfo *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + vn_replace_VkCommandBuffer_handle(&val->commandBuffer); + /* skip val->deviceMask */ +} + +static inline void +vn_replace_VkCommandBufferSubmitInfo_handle(VkCommandBufferSubmitInfo *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO: + vn_replace_VkCommandBufferSubmitInfo_handle_self((VkCommandBufferSubmitInfo *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + +/* struct VkSubmitInfo2 chain */ + +static inline void * +vn_decode_VkSubmitInfo2_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkSubmitInfo2_self_temp(struct vn_cs_decoder *dec, VkSubmitInfo2 *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkFlags(dec, &val->flags); + vn_decode_uint32_t(dec, &val->waitSemaphoreInfoCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, val->waitSemaphoreInfoCount); + val->pWaitSemaphoreInfos = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pWaitSemaphoreInfos) * iter_count); + if (!val->pWaitSemaphoreInfos) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkSemaphoreSubmitInfo_temp(dec, &((VkSemaphoreSubmitInfo *)val->pWaitSemaphoreInfos)[i]); + } else { + vn_decode_array_size(dec, val->waitSemaphoreInfoCount); + val->pWaitSemaphoreInfos = NULL; + } + vn_decode_uint32_t(dec, &val->commandBufferInfoCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, val->commandBufferInfoCount); + val->pCommandBufferInfos = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pCommandBufferInfos) * iter_count); + if (!val->pCommandBufferInfos) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkCommandBufferSubmitInfo_temp(dec, &((VkCommandBufferSubmitInfo *)val->pCommandBufferInfos)[i]); + } else { + vn_decode_array_size(dec, val->commandBufferInfoCount); + val->pCommandBufferInfos = NULL; + } + vn_decode_uint32_t(dec, &val->signalSemaphoreInfoCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, val->signalSemaphoreInfoCount); + val->pSignalSemaphoreInfos = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pSignalSemaphoreInfos) * iter_count); + if (!val->pSignalSemaphoreInfos) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkSemaphoreSubmitInfo_temp(dec, &((VkSemaphoreSubmitInfo *)val->pSignalSemaphoreInfos)[i]); + } else { + vn_decode_array_size(dec, val->signalSemaphoreInfoCount); + val->pSignalSemaphoreInfos = NULL; + } +} + +static inline void +vn_decode_VkSubmitInfo2_temp(struct vn_cs_decoder *dec, VkSubmitInfo2 *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_SUBMIT_INFO_2) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkSubmitInfo2_pnext_temp(dec); + vn_decode_VkSubmitInfo2_self_temp(dec, val); +} + +static inline void +vn_replace_VkSubmitInfo2_handle_self(VkSubmitInfo2 *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->flags */ + /* skip val->waitSemaphoreInfoCount */ + if (val->pWaitSemaphoreInfos) { + for (uint32_t i = 0; i < val->waitSemaphoreInfoCount; i++) + vn_replace_VkSemaphoreSubmitInfo_handle(&((VkSemaphoreSubmitInfo *)val->pWaitSemaphoreInfos)[i]); + } + /* skip val->commandBufferInfoCount */ + if (val->pCommandBufferInfos) { + for (uint32_t i = 0; i < val->commandBufferInfoCount; i++) + vn_replace_VkCommandBufferSubmitInfo_handle(&((VkCommandBufferSubmitInfo *)val->pCommandBufferInfos)[i]); + } + /* skip val->signalSemaphoreInfoCount */ + if (val->pSignalSemaphoreInfos) { + for (uint32_t i = 0; i < val->signalSemaphoreInfoCount; i++) + vn_replace_VkSemaphoreSubmitInfo_handle(&((VkSemaphoreSubmitInfo *)val->pSignalSemaphoreInfos)[i]); + } +} + +static inline void +vn_replace_VkSubmitInfo2_handle(VkSubmitInfo2 *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_SUBMIT_INFO_2: + vn_replace_VkSubmitInfo2_handle_self((VkSubmitInfo2 *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + static inline void vn_decode_vkQueueSubmit_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkQueueSubmit *args) { vn_decode_VkQueue_lookup(dec, &args->queue); @@ -860,6 +1087,45 @@ static inline void vn_encode_vkQueueBindSparse_reply(struct vn_cs_encoder *enc, /* skip args->fence */ } +static inline void vn_decode_vkQueueSubmit2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkQueueSubmit2 *args) +{ + vn_decode_VkQueue_lookup(dec, &args->queue); + vn_decode_uint32_t(dec, &args->submitCount); + if (vn_peek_array_size(dec)) { + const uint32_t iter_count = vn_decode_array_size(dec, args->submitCount); + args->pSubmits = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSubmits) * iter_count); + if (!args->pSubmits) return; + for (uint32_t i = 0; i < iter_count; i++) + vn_decode_VkSubmitInfo2_temp(dec, &((VkSubmitInfo2 *)args->pSubmits)[i]); + } else { + vn_decode_array_size(dec, args->submitCount); + args->pSubmits = NULL; + } + vn_decode_VkFence_lookup(dec, &args->fence); +} + +static inline void vn_replace_vkQueueSubmit2_args_handle(struct vn_command_vkQueueSubmit2 *args) +{ + vn_replace_VkQueue_handle(&args->queue); + /* skip args->submitCount */ + if (args->pSubmits) { + for (uint32_t i = 0; i < args->submitCount; i++) + vn_replace_VkSubmitInfo2_handle(&((VkSubmitInfo2 *)args->pSubmits)[i]); + } + vn_replace_VkFence_handle(&args->fence); +} + +static inline void vn_encode_vkQueueSubmit2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkQueueSubmit2 *args) +{ + vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkQueueSubmit2_EXT}); + + vn_encode_VkResult(enc, &args->ret); + /* skip args->queue */ + /* skip args->submitCount */ + /* skip args->pSubmits */ + /* skip args->fence */ +} + static inline void vn_dispatch_vkQueueSubmit(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) { struct vn_command_vkQueueSubmit args; @@ -947,6 +1213,35 @@ static inline void vn_dispatch_vkQueueBindSparse(struct vn_dispatch_context *ctx vn_cs_decoder_reset_temp_pool(ctx->decoder); } +static inline void vn_dispatch_vkQueueSubmit2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) +{ + struct vn_command_vkQueueSubmit2 args; + + if (!ctx->dispatch_vkQueueSubmit2) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + vn_decode_vkQueueSubmit2_args_temp(ctx->decoder, &args); + if (!args.queue) { + vn_cs_decoder_set_fatal(ctx->decoder); + return; + } + + if (!vn_cs_decoder_get_fatal(ctx->decoder)) + ctx->dispatch_vkQueueSubmit2(ctx, &args); + +#ifdef DEBUG + if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret)) + vn_dispatch_debug_log(ctx, "vkQueueSubmit2 returned %d", args.ret); +#endif + + if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT)) + vn_encode_vkQueueSubmit2_reply(ctx->encoder, &args); + + vn_cs_decoder_reset_temp_pool(ctx->decoder); +} + #pragma GCC diagnostic pop #endif /* VN_PROTOCOL_RENDERER_QUEUE_H */ diff --git a/src/venus/venus-protocol/vn_protocol_renderer_render_pass.h b/src/venus/venus-protocol/vn_protocol_renderer_render_pass.h index cb240f2..73dd3e5 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_render_pass.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_render_pass.h @@ -1008,10 +1008,30 @@ vn_replace_VkSubpassDescription2_handle(VkSubpassDescription2 *val) static inline void * vn_decode_VkSubpassDependency2_pnext_temp(struct vn_cs_decoder *dec) { - /* no known/supported struct */ - if (vn_decode_simple_pointer(dec)) + VkBaseOutStructure *pnext; + VkStructureType stype; + + if (!vn_decode_simple_pointer(dec)) + return NULL; + + vn_decode_VkStructureType(dec, &stype); + switch ((int32_t)stype) { + case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: + pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkMemoryBarrier2)); + if (pnext) { + pnext->sType = stype; + pnext->pNext = vn_decode_VkSubpassDependency2_pnext_temp(dec); + vn_decode_VkMemoryBarrier2_self_temp(dec, (VkMemoryBarrier2 *)pnext); + } + break; + default: + /* unexpected struct */ + pnext = NULL; vn_cs_decoder_set_fatal(dec); - return NULL; + break; + } + + return pnext; } static inline void @@ -1066,6 +1086,9 @@ vn_replace_VkSubpassDependency2_handle(VkSubpassDependency2 *val) case VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2: vn_replace_VkSubpassDependency2_handle_self((VkSubpassDependency2 *)pnext); break; + case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: + vn_replace_VkMemoryBarrier2_handle_self((VkMemoryBarrier2 *)pnext); + break; default: /* ignore unknown/unsupported struct */ break; diff --git a/src/venus/venus-protocol/vn_protocol_renderer_structs.h b/src/venus/venus-protocol/vn_protocol_renderer_structs.h index 6c35325..9949354 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_structs.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_structs.h @@ -243,6 +243,35 @@ vn_replace_VkSemaphoreTypeCreateInfo_handle(VkSemaphoreTypeCreateInfo *val) /* struct VkImageFormatListCreateInfo chain */ +static inline void +vn_encode_VkImageFormatListCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkImageFormatListCreateInfo_self(struct vn_cs_encoder *enc, const VkImageFormatListCreateInfo *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_uint32_t(enc, &val->viewFormatCount); + if (val->pViewFormats) { + vn_encode_array_size(enc, val->viewFormatCount); + vn_encode_VkFormat_array(enc, val->pViewFormats, val->viewFormatCount); + } else { + vn_encode_array_size(enc, 0); + } +} + +static inline void +vn_encode_VkImageFormatListCreateInfo(struct vn_cs_encoder *enc, const VkImageFormatListCreateInfo *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO }); + vn_encode_VkImageFormatListCreateInfo_pnext(enc, val->pNext); + vn_encode_VkImageFormatListCreateInfo_self(enc, val); +} + static inline void * vn_decode_VkImageFormatListCreateInfo_pnext_temp(struct vn_cs_decoder *dec) { @@ -310,6 +339,29 @@ vn_replace_VkImageFormatListCreateInfo_handle(VkImageFormatListCreateInfo *val) /* struct VkImageStencilUsageCreateInfo chain */ +static inline void +vn_encode_VkImageStencilUsageCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkImageStencilUsageCreateInfo_self(struct vn_cs_encoder *enc, const VkImageStencilUsageCreateInfo *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkFlags(enc, &val->stencilUsage); +} + +static inline void +vn_encode_VkImageStencilUsageCreateInfo(struct vn_cs_encoder *enc, const VkImageStencilUsageCreateInfo *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO }); + vn_encode_VkImageStencilUsageCreateInfo_pnext(enc, val->pNext); + vn_encode_VkImageStencilUsageCreateInfo_self(enc, val); +} + static inline void * vn_decode_VkImageStencilUsageCreateInfo_pnext_temp(struct vn_cs_decoder *dec) { @@ -753,6 +805,69 @@ vn_decode_VkMemoryRequirements2_partial_temp(struct vn_cs_decoder *dec, VkMemory vn_decode_VkMemoryRequirements2_self_partial_temp(dec, val); } +/* struct VkMemoryBarrier2 chain */ + +static inline void * +vn_decode_VkMemoryBarrier2_pnext_temp(struct vn_cs_decoder *dec) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + vn_cs_decoder_set_fatal(dec); + return NULL; +} + +static inline void +vn_decode_VkMemoryBarrier2_self_temp(struct vn_cs_decoder *dec, VkMemoryBarrier2 *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkFlags64(dec, &val->srcStageMask); + vn_decode_VkFlags64(dec, &val->srcAccessMask); + vn_decode_VkFlags64(dec, &val->dstStageMask); + vn_decode_VkFlags64(dec, &val->dstAccessMask); +} + +static inline void +vn_decode_VkMemoryBarrier2_temp(struct vn_cs_decoder *dec, VkMemoryBarrier2 *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + if (stype != VK_STRUCTURE_TYPE_MEMORY_BARRIER_2) + vn_cs_decoder_set_fatal(dec); + + val->sType = stype; + val->pNext = vn_decode_VkMemoryBarrier2_pnext_temp(dec); + vn_decode_VkMemoryBarrier2_self_temp(dec, val); +} + +static inline void +vn_replace_VkMemoryBarrier2_handle_self(VkMemoryBarrier2 *val) +{ + /* skip val->sType */ + /* skip val->pNext */ + /* skip val->srcStageMask */ + /* skip val->srcAccessMask */ + /* skip val->dstStageMask */ + /* skip val->dstAccessMask */ +} + +static inline void +vn_replace_VkMemoryBarrier2_handle(VkMemoryBarrier2 *val) +{ + struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val; + + do { + switch ((int32_t)pnext->sType) { + case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: + vn_replace_VkMemoryBarrier2_handle_self((VkMemoryBarrier2 *)pnext); + break; + default: + /* ignore unknown/unsupported struct */ + break; + } + pnext = pnext->pNext; + } while (pnext); +} + #pragma GCC diagnostic pop #endif /* VN_PROTOCOL_RENDERER_STRUCTS_H */ diff --git a/src/venus/venus-protocol/vn_protocol_renderer_types.h b/src/venus/venus-protocol/vn_protocol_renderer_types.h index f370014..a843b91 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_types.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_types.h @@ -375,6 +375,20 @@ vn_decode_VkFlags_array(struct vn_cs_decoder *dec, VkFlags *val, uint32_t count) vn_decode_uint32_t_array(dec, val, count); } +/* typedef uint64_t VkFlags64 */ + +static inline void +vn_encode_VkFlags64(struct vn_cs_encoder *enc, const VkFlags64 *val) +{ + vn_encode_uint64_t(enc, val); +} + +static inline void +vn_decode_VkFlags64(struct vn_cs_decoder *dec, VkFlags64 *val) +{ + vn_decode_uint64_t(dec, val); +} + /* typedef uint64_t VkDeviceSize */ static inline void @@ -483,6 +497,34 @@ vn_decode_VkPipelineCacheCreateFlagBits(struct vn_cs_decoder *dec, VkPipelineCac vn_decode_int32_t(dec, (int32_t *)val); } +/* enum VkPipelineDepthStencilStateCreateFlagBits */ + +static inline void +vn_encode_VkPipelineDepthStencilStateCreateFlagBits(struct vn_cs_encoder *enc, const VkPipelineDepthStencilStateCreateFlagBits *val) +{ + vn_encode_int32_t(enc, (const int32_t *)val); +} + +static inline void +vn_decode_VkPipelineDepthStencilStateCreateFlagBits(struct vn_cs_decoder *dec, VkPipelineDepthStencilStateCreateFlagBits *val) +{ + vn_decode_int32_t(dec, (int32_t *)val); +} + +/* enum VkPipelineColorBlendStateCreateFlagBits */ + +static inline void +vn_encode_VkPipelineColorBlendStateCreateFlagBits(struct vn_cs_encoder *enc, const VkPipelineColorBlendStateCreateFlagBits *val) +{ + vn_encode_int32_t(enc, (const int32_t *)val); +} + +static inline void +vn_decode_VkPipelineColorBlendStateCreateFlagBits(struct vn_cs_decoder *dec, VkPipelineColorBlendStateCreateFlagBits *val) +{ + vn_decode_int32_t(dec, (int32_t *)val); +} + /* enum VkPipelineShaderStageCreateFlagBits */ static inline void @@ -917,6 +959,18 @@ vn_decode_VkSampleCountFlagBits(struct vn_cs_decoder *dec, VkSampleCountFlagBits vn_decode_int32_t(dec, (int32_t *)val); } +static inline void +vn_encode_VkSampleCountFlagBits_array(struct vn_cs_encoder *enc, const VkSampleCountFlagBits *val, uint32_t count) +{ + vn_encode_int32_t_array(enc, (const int32_t *)val, count); +} + +static inline void +vn_decode_VkSampleCountFlagBits_array(struct vn_cs_decoder *dec, VkSampleCountFlagBits *val, uint32_t count) +{ + vn_decode_int32_t_array(dec, (int32_t *)val, count); +} + /* enum VkAttachmentDescriptionFlagBits */ static inline void @@ -1001,6 +1055,20 @@ vn_decode_VkSubgroupFeatureFlagBits(struct vn_cs_decoder *dec, VkSubgroupFeature vn_decode_int32_t(dec, (int32_t *)val); } +/* enum VkPipelineCreationFeedbackFlagBits */ + +static inline void +vn_encode_VkPipelineCreationFeedbackFlagBits(struct vn_cs_encoder *enc, const VkPipelineCreationFeedbackFlagBits *val) +{ + vn_encode_int32_t(enc, (const int32_t *)val); +} + +static inline void +vn_decode_VkPipelineCreationFeedbackFlagBits(struct vn_cs_decoder *dec, VkPipelineCreationFeedbackFlagBits *val) +{ + vn_decode_int32_t(dec, (int32_t *)val); +} + /* enum VkSemaphoreWaitFlagBits */ static inline void @@ -1015,6 +1083,62 @@ vn_decode_VkSemaphoreWaitFlagBits(struct vn_cs_decoder *dec, VkSemaphoreWaitFlag vn_decode_int32_t(dec, (int32_t *)val); } +/* typedef VkFlags64 VkAccessFlagBits2 */ + +static inline void +vn_encode_VkAccessFlagBits2(struct vn_cs_encoder *enc, const VkAccessFlagBits2 *val) +{ + vn_encode_uint64_t(enc, (const uint64_t *)val); +} + +static inline void +vn_decode_VkAccessFlagBits2(struct vn_cs_decoder *dec, VkAccessFlagBits2 *val) +{ + vn_decode_uint64_t(dec, (uint64_t *)val); +} + +/* typedef VkFlags64 VkPipelineStageFlagBits2 */ + +static inline void +vn_encode_VkPipelineStageFlagBits2(struct vn_cs_encoder *enc, const VkPipelineStageFlagBits2 *val) +{ + vn_encode_uint64_t(enc, (const uint64_t *)val); +} + +static inline void +vn_decode_VkPipelineStageFlagBits2(struct vn_cs_decoder *dec, VkPipelineStageFlagBits2 *val) +{ + vn_decode_uint64_t(dec, (uint64_t *)val); +} + +/* typedef VkFlags64 VkFormatFeatureFlagBits2 */ + +static inline void +vn_encode_VkFormatFeatureFlagBits2(struct vn_cs_encoder *enc, const VkFormatFeatureFlagBits2 *val) +{ + vn_encode_uint64_t(enc, (const uint64_t *)val); +} + +static inline void +vn_decode_VkFormatFeatureFlagBits2(struct vn_cs_decoder *dec, VkFormatFeatureFlagBits2 *val) +{ + vn_decode_uint64_t(dec, (uint64_t *)val); +} + +/* enum VkRenderingFlagBits */ + +static inline void +vn_encode_VkRenderingFlagBits(struct vn_cs_encoder *enc, const VkRenderingFlagBits *val) +{ + vn_encode_int32_t(enc, (const int32_t *)val); +} + +static inline void +vn_decode_VkRenderingFlagBits(struct vn_cs_decoder *dec, VkRenderingFlagBits *val) +{ + vn_decode_int32_t(dec, (int32_t *)val); +} + /* enum VkPeerMemoryFeatureFlagBits */ static inline void @@ -1183,6 +1307,34 @@ vn_decode_VkResolveModeFlagBits(struct vn_cs_decoder *dec, VkResolveModeFlagBits vn_decode_int32_t(dec, (int32_t *)val); } +/* enum VkToolPurposeFlagBits */ + +static inline void +vn_encode_VkToolPurposeFlagBits(struct vn_cs_encoder *enc, const VkToolPurposeFlagBits *val) +{ + vn_encode_int32_t(enc, (const int32_t *)val); +} + +static inline void +vn_decode_VkToolPurposeFlagBits(struct vn_cs_decoder *dec, VkToolPurposeFlagBits *val) +{ + vn_decode_int32_t(dec, (int32_t *)val); +} + +/* enum VkSubmitFlagBits */ + +static inline void +vn_encode_VkSubmitFlagBits(struct vn_cs_encoder *enc, const VkSubmitFlagBits *val) +{ + vn_encode_int32_t(enc, (const int32_t *)val); +} + +static inline void +vn_decode_VkSubmitFlagBits(struct vn_cs_decoder *dec, VkSubmitFlagBits *val) +{ + vn_decode_int32_t(dec, (int32_t *)val); +} + /* enum VkAttachmentLoadOp */ static inline void diff --git a/src/venus/venus-protocol/vulkan.h b/src/venus/venus-protocol/vulkan.h index 3f7cdba..004fa70 100644 --- a/src/venus/venus-protocol/vulkan.h +++ b/src/venus/venus-protocol/vulkan.h @@ -2,7 +2,7 @@ #define VULKAN_H_ 1 /* -** Copyright 2015-2021 The Khronos Group Inc. +** Copyright 2015-2022 The Khronos Group Inc. ** ** SPDX-License-Identifier: Apache-2.0 */ diff --git a/src/venus/venus-protocol/vulkan_core.h b/src/venus/venus-protocol/vulkan_core.h index b2448fb..228e4ef 100644 --- a/src/venus/venus-protocol/vulkan_core.h +++ b/src/venus/venus-protocol/vulkan_core.h @@ -2,7 +2,7 @@ #define VULKAN_CORE_H_ 1 /* -** Copyright 2015-2021 The Khronos Group Inc. +** Copyright 2015-2022 The Khronos Group Inc. ** ** SPDX-License-Identifier: Apache-2.0 */ @@ -72,10 +72,10 @@ extern "C" { #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 182 +#define VK_HEADER_VERSION 204 // Complete version of this file -#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 2, VK_HEADER_VERSION) +#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) // DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead. #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22) @@ -120,6 +120,7 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool) +#define VK_UUID_SIZE 16U #define VK_ATTACHMENT_UNUSED (~0U) #define VK_FALSE 0U #define VK_LOD_CLAMP_NONE 1000.0F @@ -132,7 +133,6 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool) #define VK_MAX_MEMORY_TYPES 32U #define VK_MAX_MEMORY_HEAPS 16U #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256U -#define VK_UUID_SIZE 16U #define VK_MAX_EXTENSION_NAME_SIZE 256U #define VK_MAX_DESCRIPTION_SIZE 256U @@ -160,6 +160,7 @@ typedef enum VkResult { VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003, VK_ERROR_FRAGMENTATION = -1000161000, VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000, + VK_PIPELINE_COMPILE_REQUIRED = 1000297000, VK_ERROR_SURFACE_LOST_KHR = -1000000000, VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001, VK_SUBOPTIMAL_KHR = 1000001003, @@ -168,19 +169,20 @@ typedef enum VkResult { VK_ERROR_VALIDATION_FAILED_EXT = -1000011001, VK_ERROR_INVALID_SHADER_NV = -1000012000, VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000, - VK_ERROR_NOT_PERMITTED_EXT = -1000174001, + VK_ERROR_NOT_PERMITTED_KHR = -1000174001, VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000, VK_THREAD_IDLE_KHR = 1000268000, VK_THREAD_DONE_KHR = 1000268001, VK_OPERATION_DEFERRED_KHR = 1000268002, VK_OPERATION_NOT_DEFERRED_KHR = 1000268003, - VK_PIPELINE_COMPILE_REQUIRED_EXT = 1000297000, VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY, VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE, VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION, + VK_ERROR_NOT_PERMITTED_EXT = VK_ERROR_NOT_PERMITTED_KHR, VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS, VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS, - VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED_EXT, + VK_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED, + VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED, VK_RESULT_MAX_ENUM = 0x7FFFFFFF } VkResult; @@ -349,6 +351,58 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002, VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003, VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = 54, + VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = 1000192000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = 1000245000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000, + VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001, + VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000, + VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000, + VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001, + VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002, + VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003, + VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004, + VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = 1000314007, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000, + VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000, + VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = 1000337001, + VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = 1000337002, + VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = 1000337003, + VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = 1000337004, + VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = 1000337005, + VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006, + VK_STRUCTURE_TYPE_IMAGE_COPY_2 = 1000337007, + VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008, + VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009, + VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000, + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = 1000138000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = 1000138001, + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = 1000138002, + VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = 1000138003, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = 1000066000, + VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000, + VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001, + VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = 1000044003, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = 1000044004, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001, + VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001, + VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002, + VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003, VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000, VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007, @@ -418,6 +472,9 @@ typedef enum VkStructureType { #ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015, #endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR = 1000023016, +#endif #ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000, #endif @@ -459,6 +516,48 @@ typedef enum VkStructureType { #ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT = 1000038008, #endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT = 1000038009, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT = 1000038010, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT = 1000039000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT = 1000039001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000039002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000039003, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT = 1000039004, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT = 1000039005, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_EXT = 1000039006, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT = 1000039007, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT = 1000039008, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT = 1000039009, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT = 1000039010, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT = 1000039011, +#endif #ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT = 1000040000, #endif @@ -484,6 +583,10 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT = 1000040007, #endif VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, + VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006, + VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007, + VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008, + VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009, VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000, VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000, @@ -493,7 +596,6 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000, VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000, VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = 1000066000, VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001, VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000, @@ -565,10 +667,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003, VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004, VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001, - VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002, - VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003, + VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006, VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000, VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001, VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002, @@ -607,6 +706,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003, VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004, VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005, + VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006, VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000, VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001, #ifdef VK_ENABLE_BETA_EXTENSIONS @@ -634,7 +734,6 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000, VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001, - VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000, VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000, VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002, @@ -663,12 +762,14 @@ typedef enum VkStructureType { #ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT = 1000187006, #endif + VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000, + VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001, VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000, VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002, VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000, - VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000192000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001, @@ -689,14 +790,10 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000, VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001, VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = 1000215000, VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001, VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = 1000225000, - VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = 1000225001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = 1000225002, VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000, VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002, @@ -712,8 +809,8 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000, VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = 1000245000, VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000, VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002, @@ -741,7 +838,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003, VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004, VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = 1000276000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000, VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001, VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002, @@ -753,7 +850,6 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000, VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001, VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000, VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000, @@ -765,30 +861,22 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002, VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = 1000295000, - VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = 1000295001, - VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = 1000295002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = 1000297000, + VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001, #ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000, #endif #ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002, #endif VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000, VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001, - VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = 1000314000, - VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = 1000314001, - VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = 1000314002, - VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = 1000314003, - VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = 1000314004, - VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = 1000314005, - VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = 1000314006, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = 1000314007, VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008, VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = 1000325000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001, VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002, @@ -799,20 +887,10 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001, VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = 1000335000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000, - VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = 1000337000, - VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = 1000337001, - VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = 1000337002, - VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = 1000337003, - VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = 1000337004, - VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = 1000337005, - VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = 1000337006, - VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = 1000337007, - VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008, - VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009, - VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000, VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000, VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002, @@ -820,25 +898,54 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001, VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000, + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000, VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000, VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001, VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002, VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000, VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001, - VK_STRUCTURE_TYPE_SUBPASSS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000, + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000, + VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001, + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002, + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003, + VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004, + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005, + VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006, + VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007, + VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008, + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009, + VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000, + VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000, VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000, VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = 1000388000, - VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000, + VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000, + VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001, + VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, + VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INFO, + VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO, + VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO, + VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD, VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, @@ -858,6 +965,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO, VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO, VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES, VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO, @@ -900,6 +1008,10 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES, + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK, + VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO, VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2, VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2, VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2, @@ -921,9 +1033,11 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT, + VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES, + VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES, @@ -936,12 +1050,17 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO, VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES, + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES, VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT, VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES, VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES, @@ -950,6 +1069,42 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO, VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES, + VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO, + VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES, + VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2, + VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2, + VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2, + VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO, + VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2, + VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES, + VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2, + VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2, + VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2, + VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2, + VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2, + VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2, + VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2, + VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2, + VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2, + VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2, + VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2, + VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR, + VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES, + VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS, + VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS, VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF } VkStructureType; @@ -969,6 +1124,8 @@ typedef enum VkImageLayout { VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002, VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003, + VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000, + VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001, VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002, #ifdef VK_ENABLE_BETA_EXTENSIONS VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000, @@ -991,8 +1148,6 @@ typedef enum VkImageLayout { #ifdef VK_ENABLE_BETA_EXTENSIONS VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002, #endif - VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = 1000314000, - VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = 1000314001, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR, @@ -1000,6 +1155,8 @@ typedef enum VkImageLayout { VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, + VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL, + VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF } VkImageLayout; @@ -1032,6 +1189,7 @@ typedef enum VkObjectType { VK_OBJECT_TYPE_COMMAND_POOL = 25, VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000, VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000, + VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000, VK_OBJECT_TYPE_SURFACE_KHR = 1000000000, VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000, VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000, @@ -1052,12 +1210,18 @@ typedef enum VkObjectType { VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000, VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000, VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000, - VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000, + VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000, VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE, VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION, + VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT, VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF } VkObjectType; +typedef enum VkPipelineCacheHeaderVersion { + VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, + VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF +} VkPipelineCacheHeaderVersion; + typedef enum VkVendorId { VK_VENDOR_ID_VIV = 0x10001, VK_VENDOR_ID_VSI = 0x10002, @@ -1068,11 +1232,6 @@ typedef enum VkVendorId { VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF } VkVendorId; -typedef enum VkPipelineCacheHeaderVersion { - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, - VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF -} VkPipelineCacheHeaderVersion; - typedef enum VkSystemAllocationScope { VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1, @@ -1307,6 +1466,26 @@ typedef enum VkFormat { VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031, VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032, VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033, + VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000, + VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001, + VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002, + VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003, + VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000, + VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001, + VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000, + VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001, + VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002, + VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003, + VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004, + VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005, + VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006, + VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007, + VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008, + VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009, + VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010, + VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011, + VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012, + VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013, VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000, VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001, VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002, @@ -1315,26 +1494,20 @@ typedef enum VkFormat { VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005, VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006, VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007, - VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000, - VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001, - VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002, - VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = 1000066003, - VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = 1000066004, - VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = 1000066005, - VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = 1000066006, - VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = 1000066007, - VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = 1000066008, - VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = 1000066009, - VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = 1000066010, - VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = 1000066011, - VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = 1000066012, - VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = 1000066013, - VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = 1000330000, - VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = 1000330001, - VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = 1000330002, - VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = 1000330003, - VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = 1000340000, - VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = 1000340001, + VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK, + VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK, + VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK, + VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK, + VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK, + VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK, + VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK, + VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK, + VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK, + VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK, + VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK, + VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK, + VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK, + VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK, VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM, VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM, VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM, @@ -1369,6 +1542,12 @@ typedef enum VkFormat { VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM, VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM, VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM, + VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM, + VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16, + VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16, + VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM, + VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16, + VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16, VK_FORMAT_MAX_ENUM = 0x7FFFFFFF } VkFormat; @@ -1542,6 +1721,21 @@ typedef enum VkDynamicState { VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6, VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7, VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8, + VK_DYNAMIC_STATE_CULL_MODE = 1000267000, + VK_DYNAMIC_STATE_FRONT_FACE = 1000267001, + VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002, + VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003, + VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004, + VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005, + VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006, + VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007, + VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008, + VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009, + VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010, + VK_DYNAMIC_STATE_STENCIL_OP = 1000267011, + VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001, + VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002, + VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004, VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000, VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000, VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000, @@ -1551,25 +1745,25 @@ typedef enum VkDynamicState { VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001, VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000, VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000, - VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000, - VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001, - VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002, - VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = 1000267003, - VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = 1000267004, - VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = 1000267005, - VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = 1000267006, - VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = 1000267007, - VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = 1000267008, - VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = 1000267009, - VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = 1000267010, - VK_DYNAMIC_STATE_STENCIL_OP_EXT = 1000267011, VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000, VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000, - VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = 1000377001, - VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = 1000377002, VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003, - VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = 1000377004, VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000, + VK_DYNAMIC_STATE_CULL_MODE_EXT = VK_DYNAMIC_STATE_CULL_MODE, + VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE, + VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY, + VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT, + VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT, + VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE, + VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE, + VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE, + VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP, + VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, + VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE, + VK_DYNAMIC_STATE_STENCIL_OP_EXT = VK_DYNAMIC_STATE_STENCIL_OP, + VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE, + VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE, + VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF } VkDynamicState; @@ -1688,10 +1882,11 @@ typedef enum VkDescriptorType { VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9, VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10, - VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000, + VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000, VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000, VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000, + VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF } VkDescriptorType; @@ -1699,13 +1894,17 @@ typedef enum VkAttachmentLoadOp { VK_ATTACHMENT_LOAD_OP_LOAD = 0, VK_ATTACHMENT_LOAD_OP_CLEAR = 1, VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2, + VK_ATTACHMENT_LOAD_OP_NONE_EXT = 1000400000, VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF } VkAttachmentLoadOp; typedef enum VkAttachmentStoreOp { VK_ATTACHMENT_STORE_OP_STORE = 0, VK_ATTACHMENT_STORE_OP_DONT_CARE = 1, - VK_ATTACHMENT_STORE_OP_NONE_QCOM = 1000301000, + VK_ATTACHMENT_STORE_OP_NONE = 1000301000, + VK_ATTACHMENT_STORE_OP_NONE_KHR = VK_ATTACHMENT_STORE_OP_NONE, + VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE, + VK_ATTACHMENT_STORE_OP_NONE_EXT = VK_ATTACHMENT_STORE_OP_NONE, VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF } VkAttachmentStoreOp; @@ -1757,6 +1956,7 @@ typedef enum VkAccessFlagBits { VK_ACCESS_HOST_WRITE_BIT = 0x00004000, VK_ACCESS_MEMORY_READ_BIT = 0x00008000, VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000, + VK_ACCESS_NONE = 0, VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000, VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000, VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000, @@ -1768,10 +1968,10 @@ typedef enum VkAccessFlagBits { VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000, VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000, VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000, - VK_ACCESS_NONE_KHR = 0, VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR, VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, + VK_ACCESS_NONE_KHR = VK_ACCESS_NONE, VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkAccessFlagBits; typedef VkFlags VkAccessFlags; @@ -1788,6 +1988,7 @@ typedef enum VkImageAspectFlagBits { VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100, VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200, VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400, + VK_IMAGE_ASPECT_NONE_KHR = 0, VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT, VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT, @@ -1866,6 +2067,7 @@ typedef enum VkImageCreateFlagBits { VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000, VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000, VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000, + VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 0x00008000, VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, @@ -1917,6 +2119,7 @@ typedef enum VkImageUsageFlagBits { #ifdef VK_ENABLE_BETA_EXTENSIONS VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000, #endif + VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000, VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkImageUsageFlagBits; @@ -1940,6 +2143,7 @@ typedef enum VkMemoryPropertyFlagBits { VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020, VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040, VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080, + VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100, VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkMemoryPropertyFlagBits; typedef VkFlags VkMemoryPropertyFlags; @@ -1985,6 +2189,7 @@ typedef enum VkPipelineStageFlagBits { VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, + VK_PIPELINE_STAGE_NONE = 0, VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000, VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000, VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000, @@ -1994,10 +2199,10 @@ typedef enum VkPipelineStageFlagBits { VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000, VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000, VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000, - VK_PIPELINE_STAGE_NONE_KHR = 0, VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR, VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, + VK_PIPELINE_STAGE_NONE_KHR = VK_PIPELINE_STAGE_NONE, VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkPipelineStageFlagBits; typedef VkFlags VkPipelineStageFlags; @@ -2025,7 +2230,8 @@ typedef VkFlags VkFenceCreateFlags; typedef VkFlags VkSemaphoreCreateFlags; typedef enum VkEventCreateFlagBits { - VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = 0x00000001, + VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0x00000001, + VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT, VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkEventCreateFlagBits; typedef VkFlags VkEventCreateFlags; @@ -2114,14 +2320,11 @@ typedef enum VkImageViewCreateFlagBits { VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkImageViewCreateFlagBits; typedef VkFlags VkImageViewCreateFlags; - -typedef enum VkShaderModuleCreateFlagBits { - VK_SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkShaderModuleCreateFlagBits; typedef VkFlags VkShaderModuleCreateFlags; typedef enum VkPipelineCacheCreateFlagBits { - VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = 0x00000001, + VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001, + VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkPipelineCacheCreateFlagBits; typedef VkFlags VkPipelineCacheCreateFlags; @@ -2141,6 +2344,10 @@ typedef enum VkPipelineCreateFlagBits { VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004, VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008, VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010, + VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100, + VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200, + VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000, + VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000, VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000, VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000, VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000, @@ -2153,19 +2360,23 @@ typedef enum VkPipelineCreateFlagBits { VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080, VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000, VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800, - VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = 0x00000100, - VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = 0x00000200, VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000, VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, + VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, + VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT, VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE, + VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT, + VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT, VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkPipelineCreateFlagBits; typedef VkFlags VkPipelineCreateFlags; typedef enum VkPipelineShaderStageCreateFlagBits { - VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000001, - VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000002, + VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0x00000001, + VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0x00000002, + VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT, + VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT, VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkPipelineShaderStageCreateFlagBits; typedef VkFlags VkPipelineShaderStageCreateFlags; @@ -2211,7 +2422,18 @@ typedef VkFlags VkPipelineTessellationStateCreateFlags; typedef VkFlags VkPipelineViewportStateCreateFlags; typedef VkFlags VkPipelineRasterizationStateCreateFlags; typedef VkFlags VkPipelineMultisampleStateCreateFlags; + +typedef enum VkPipelineDepthStencilStateCreateFlagBits { + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 0x00000001, + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 0x00000002, + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineDepthStencilStateCreateFlagBits; typedef VkFlags VkPipelineDepthStencilStateCreateFlags; + +typedef enum VkPipelineColorBlendStateCreateFlagBits { + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = 0x00000001, + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineColorBlendStateCreateFlagBits; typedef VkFlags VkPipelineColorBlendStateCreateFlags; typedef VkFlags VkPipelineDynamicStateCreateFlags; typedef VkFlags VkPipelineLayoutCreateFlags; @@ -2277,6 +2499,9 @@ typedef enum VkSubpassDescriptionFlagBits { VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002, VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004, VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008, + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = 0x00000010, + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 0x00000020, + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 0x00000040, VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkSubpassDescriptionFlagBits; typedef VkFlags VkSubpassDescriptionFlags; @@ -2421,6 +2646,14 @@ typedef struct VkMemoryBarrier { VkAccessFlags dstAccessMask; } VkMemoryBarrier; +typedef struct VkPipelineCacheHeaderVersionOne { + uint32_t headerSize; + VkPipelineCacheHeaderVersion headerVersion; + uint32_t vendorID; + uint32_t deviceID; + uint8_t pipelineCacheUUID[VK_UUID_SIZE]; +} VkPipelineCacheHeaderVersionOne; + typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)( void* pUserData, size_t size, @@ -4492,6 +4725,7 @@ typedef enum VkExternalMemoryHandleTypeFlagBits { VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080, VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100, VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, @@ -5264,6 +5498,12 @@ typedef enum VkDriverId { VK_DRIVER_ID_MOLTENVK = 14, VK_DRIVER_ID_COREAVI_PROPRIETARY = 15, VK_DRIVER_ID_JUICE_PROPRIETARY = 16, + VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17, + VK_DRIVER_ID_MESA_TURNIP = 18, + VK_DRIVER_ID_MESA_V3DV = 19, + VK_DRIVER_ID_MESA_PANVK = 20, + VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21, + VK_DRIVER_ID_MESA_VENUS = 22, VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY, VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE, VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV, @@ -5985,154 +6225,1189 @@ VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress( #endif -#define VK_KHR_surface 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) -#define VK_KHR_SURFACE_SPEC_VERSION 25 -#define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface" - -typedef enum VkPresentModeKHR { - VK_PRESENT_MODE_IMMEDIATE_KHR = 0, - VK_PRESENT_MODE_MAILBOX_KHR = 1, - VK_PRESENT_MODE_FIFO_KHR = 2, - VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3, - VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000, - VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001, - VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF -} VkPresentModeKHR; - -typedef enum VkColorSpaceKHR { - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0, - VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001, - VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002, - VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003, - VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004, - VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005, - VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006, - VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007, - VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008, - VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009, - VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010, - VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011, - VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012, - VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013, - VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014, - VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000, - VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, - VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT, - VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF -} VkColorSpaceKHR; +#define VK_VERSION_1_3 1 +// Vulkan 1.3 version number +#define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0 -typedef enum VkSurfaceTransformFlagBitsKHR { - VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001, - VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002, - VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004, - VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008, - VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010, - VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020, - VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040, - VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080, - VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100, - VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkSurfaceTransformFlagBitsKHR; +typedef uint64_t VkFlags64; +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot) + +typedef enum VkPipelineCreationFeedbackFlagBits { + VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0x00000001, + VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0x00000002, + VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0x00000004, + VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT, + VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT, + VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT, + VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineCreationFeedbackFlagBits; +typedef VkFlags VkPipelineCreationFeedbackFlags; + +typedef enum VkToolPurposeFlagBits { + VK_TOOL_PURPOSE_VALIDATION_BIT = 0x00000001, + VK_TOOL_PURPOSE_PROFILING_BIT = 0x00000002, + VK_TOOL_PURPOSE_TRACING_BIT = 0x00000004, + VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 0x00000008, + VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0x00000010, + VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020, + VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040, + VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = VK_TOOL_PURPOSE_VALIDATION_BIT, + VK_TOOL_PURPOSE_PROFILING_BIT_EXT = VK_TOOL_PURPOSE_PROFILING_BIT, + VK_TOOL_PURPOSE_TRACING_BIT_EXT = VK_TOOL_PURPOSE_TRACING_BIT, + VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT, + VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT, + VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkToolPurposeFlagBits; +typedef VkFlags VkToolPurposeFlags; + +typedef enum VkPrivateDataSlotCreateFlagBits { + VK_PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPrivateDataSlotCreateFlagBits; +typedef VkFlags VkPrivateDataSlotCreateFlags; +typedef VkFlags64 VkPipelineStageFlags2; + +// Flag bits for VkPipelineStageFlagBits2 +typedef VkFlags64 VkPipelineStageFlagBits2; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0x00000100ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0x00000200ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0x00000800ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0x00001000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 0x00001000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0x00002000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT = 0x00004000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0x00008000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0x00010000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT = 0x100000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0x200000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT = 0x400000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT = 0x800000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0x1000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0x2000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL; +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL; +#endif +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL; + +typedef VkFlags64 VkAccessFlags2; + +// Flag bits for VkAccessFlagBits2 +typedef VkFlags64 VkAccessFlagBits2; +static const VkAccessFlagBits2 VK_ACCESS_2_NONE = 0ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR = 0ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL; +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL; +#endif +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL; + + +typedef enum VkSubmitFlagBits { + VK_SUBMIT_PROTECTED_BIT = 0x00000001, + VK_SUBMIT_PROTECTED_BIT_KHR = VK_SUBMIT_PROTECTED_BIT, + VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkSubmitFlagBits; +typedef VkFlags VkSubmitFlags; + +typedef enum VkRenderingFlagBits { + VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001, + VK_RENDERING_SUSPENDING_BIT = 0x00000002, + VK_RENDERING_RESUMING_BIT = 0x00000004, + VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT, + VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT, + VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT, + VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkRenderingFlagBits; +typedef VkFlags VkRenderingFlags; +typedef VkFlags64 VkFormatFeatureFlags2; + +// Flag bits for VkFormatFeatureFlagBits2 +typedef VkFlags64 VkFormatFeatureFlagBits2; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0x00000001ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0x00000002ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000010ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0x00000040ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0x00000080ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0x00000400ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0x00000800ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0x00002000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0x00004000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0x00008000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0x00400000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0x00800000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0x80000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0x100000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0x200000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL; +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL; +#endif +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL; +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL; +#endif +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL; -typedef enum VkCompositeAlphaFlagBitsKHR { - VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, - VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002, - VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004, - VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008, - VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkCompositeAlphaFlagBitsKHR; -typedef VkFlags VkCompositeAlphaFlagsKHR; -typedef VkFlags VkSurfaceTransformFlagsKHR; -typedef struct VkSurfaceCapabilitiesKHR { - uint32_t minImageCount; - uint32_t maxImageCount; - VkExtent2D currentExtent; - VkExtent2D minImageExtent; - VkExtent2D maxImageExtent; - uint32_t maxImageArrayLayers; - VkSurfaceTransformFlagsKHR supportedTransforms; - VkSurfaceTransformFlagBitsKHR currentTransform; - VkCompositeAlphaFlagsKHR supportedCompositeAlpha; - VkImageUsageFlags supportedUsageFlags; -} VkSurfaceCapabilitiesKHR; +typedef struct VkPhysicalDeviceVulkan13Features { + VkStructureType sType; + void* pNext; + VkBool32 robustImageAccess; + VkBool32 inlineUniformBlock; + VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind; + VkBool32 pipelineCreationCacheControl; + VkBool32 privateData; + VkBool32 shaderDemoteToHelperInvocation; + VkBool32 shaderTerminateInvocation; + VkBool32 subgroupSizeControl; + VkBool32 computeFullSubgroups; + VkBool32 synchronization2; + VkBool32 textureCompressionASTC_HDR; + VkBool32 shaderZeroInitializeWorkgroupMemory; + VkBool32 dynamicRendering; + VkBool32 shaderIntegerDotProduct; + VkBool32 maintenance4; +} VkPhysicalDeviceVulkan13Features; -typedef struct VkSurfaceFormatKHR { - VkFormat format; - VkColorSpaceKHR colorSpace; -} VkSurfaceFormatKHR; +typedef struct VkPhysicalDeviceVulkan13Properties { + VkStructureType sType; + void* pNext; + uint32_t minSubgroupSize; + uint32_t maxSubgroupSize; + uint32_t maxComputeWorkgroupSubgroups; + VkShaderStageFlags requiredSubgroupSizeStages; + uint32_t maxInlineUniformBlockSize; + uint32_t maxPerStageDescriptorInlineUniformBlocks; + uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks; + uint32_t maxDescriptorSetInlineUniformBlocks; + uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks; + uint32_t maxInlineUniformTotalSize; + VkBool32 integerDotProduct8BitUnsignedAccelerated; + VkBool32 integerDotProduct8BitSignedAccelerated; + VkBool32 integerDotProduct8BitMixedSignednessAccelerated; + VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedSignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProduct16BitUnsignedAccelerated; + VkBool32 integerDotProduct16BitSignedAccelerated; + VkBool32 integerDotProduct16BitMixedSignednessAccelerated; + VkBool32 integerDotProduct32BitUnsignedAccelerated; + VkBool32 integerDotProduct32BitSignedAccelerated; + VkBool32 integerDotProduct32BitMixedSignednessAccelerated; + VkBool32 integerDotProduct64BitUnsignedAccelerated; + VkBool32 integerDotProduct64BitSignedAccelerated; + VkBool32 integerDotProduct64BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated; + VkDeviceSize storageTexelBufferOffsetAlignmentBytes; + VkBool32 storageTexelBufferOffsetSingleTexelAlignment; + VkDeviceSize uniformTexelBufferOffsetAlignmentBytes; + VkBool32 uniformTexelBufferOffsetSingleTexelAlignment; + VkDeviceSize maxBufferSize; +} VkPhysicalDeviceVulkan13Properties; + +typedef struct VkPipelineCreationFeedback { + VkPipelineCreationFeedbackFlags flags; + uint64_t duration; +} VkPipelineCreationFeedback; + +typedef struct VkPipelineCreationFeedbackCreateInfo { + VkStructureType sType; + const void* pNext; + VkPipelineCreationFeedback* pPipelineCreationFeedback; + uint32_t pipelineStageCreationFeedbackCount; + VkPipelineCreationFeedback* pPipelineStageCreationFeedbacks; +} VkPipelineCreationFeedbackCreateInfo; -typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes); +typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures { + VkStructureType sType; + void* pNext; + VkBool32 shaderTerminateInvocation; +} VkPhysicalDeviceShaderTerminateInvocationFeatures; -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR( - VkInstance instance, - VkSurfaceKHR surface, - const VkAllocationCallbacks* pAllocator); +typedef struct VkPhysicalDeviceToolProperties { + VkStructureType sType; + void* pNext; + char name[VK_MAX_EXTENSION_NAME_SIZE]; + char version[VK_MAX_EXTENSION_NAME_SIZE]; + VkToolPurposeFlags purposes; + char description[VK_MAX_DESCRIPTION_SIZE]; + char layer[VK_MAX_EXTENSION_NAME_SIZE]; +} VkPhysicalDeviceToolProperties; -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR( - VkPhysicalDevice physicalDevice, - uint32_t queueFamilyIndex, - VkSurfaceKHR surface, - VkBool32* pSupported); +typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures { + VkStructureType sType; + void* pNext; + VkBool32 shaderDemoteToHelperInvocation; +} VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures; -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR( - VkPhysicalDevice physicalDevice, - VkSurfaceKHR surface, - VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); +typedef struct VkPhysicalDevicePrivateDataFeatures { + VkStructureType sType; + void* pNext; + VkBool32 privateData; +} VkPhysicalDevicePrivateDataFeatures; -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR( - VkPhysicalDevice physicalDevice, - VkSurfaceKHR surface, - uint32_t* pSurfaceFormatCount, - VkSurfaceFormatKHR* pSurfaceFormats); +typedef struct VkDevicePrivateDataCreateInfo { + VkStructureType sType; + const void* pNext; + uint32_t privateDataSlotRequestCount; +} VkDevicePrivateDataCreateInfo; -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR( - VkPhysicalDevice physicalDevice, - VkSurfaceKHR surface, - uint32_t* pPresentModeCount, - VkPresentModeKHR* pPresentModes); -#endif +typedef struct VkPrivateDataSlotCreateInfo { + VkStructureType sType; + const void* pNext; + VkPrivateDataSlotCreateFlags flags; +} VkPrivateDataSlotCreateInfo; +typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures { + VkStructureType sType; + void* pNext; + VkBool32 pipelineCreationCacheControl; +} VkPhysicalDevicePipelineCreationCacheControlFeatures; -#define VK_KHR_swapchain 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR) -#define VK_KHR_SWAPCHAIN_SPEC_VERSION 70 -#define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain" +typedef struct VkMemoryBarrier2 { + VkStructureType sType; + const void* pNext; + VkPipelineStageFlags2 srcStageMask; + VkAccessFlags2 srcAccessMask; + VkPipelineStageFlags2 dstStageMask; + VkAccessFlags2 dstAccessMask; +} VkMemoryBarrier2; -typedef enum VkSwapchainCreateFlagBitsKHR { - VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001, - VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002, - VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004, - VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkSwapchainCreateFlagBitsKHR; -typedef VkFlags VkSwapchainCreateFlagsKHR; +typedef struct VkBufferMemoryBarrier2 { + VkStructureType sType; + const void* pNext; + VkPipelineStageFlags2 srcStageMask; + VkAccessFlags2 srcAccessMask; + VkPipelineStageFlags2 dstStageMask; + VkAccessFlags2 dstAccessMask; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkBuffer buffer; + VkDeviceSize offset; + VkDeviceSize size; +} VkBufferMemoryBarrier2; + +typedef struct VkImageMemoryBarrier2 { + VkStructureType sType; + const void* pNext; + VkPipelineStageFlags2 srcStageMask; + VkAccessFlags2 srcAccessMask; + VkPipelineStageFlags2 dstStageMask; + VkAccessFlags2 dstAccessMask; + VkImageLayout oldLayout; + VkImageLayout newLayout; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkImage image; + VkImageSubresourceRange subresourceRange; +} VkImageMemoryBarrier2; -typedef enum VkDeviceGroupPresentModeFlagBitsKHR { - VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001, - VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002, - VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004, - VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008, - VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkDeviceGroupPresentModeFlagBitsKHR; -typedef VkFlags VkDeviceGroupPresentModeFlagsKHR; -typedef struct VkSwapchainCreateInfoKHR { +typedef struct VkDependencyInfo { VkStructureType sType; const void* pNext; - VkSwapchainCreateFlagsKHR flags; - VkSurfaceKHR surface; - uint32_t minImageCount; - VkFormat imageFormat; - VkColorSpaceKHR imageColorSpace; - VkExtent2D imageExtent; - uint32_t imageArrayLayers; - VkImageUsageFlags imageUsage; - VkSharingMode imageSharingMode; - uint32_t queueFamilyIndexCount; + VkDependencyFlags dependencyFlags; + uint32_t memoryBarrierCount; + const VkMemoryBarrier2* pMemoryBarriers; + uint32_t bufferMemoryBarrierCount; + const VkBufferMemoryBarrier2* pBufferMemoryBarriers; + uint32_t imageMemoryBarrierCount; + const VkImageMemoryBarrier2* pImageMemoryBarriers; +} VkDependencyInfo; + +typedef struct VkSemaphoreSubmitInfo { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + uint64_t value; + VkPipelineStageFlags2 stageMask; + uint32_t deviceIndex; +} VkSemaphoreSubmitInfo; + +typedef struct VkCommandBufferSubmitInfo { + VkStructureType sType; + const void* pNext; + VkCommandBuffer commandBuffer; + uint32_t deviceMask; +} VkCommandBufferSubmitInfo; + +typedef struct VkSubmitInfo2 { + VkStructureType sType; + const void* pNext; + VkSubmitFlags flags; + uint32_t waitSemaphoreInfoCount; + const VkSemaphoreSubmitInfo* pWaitSemaphoreInfos; + uint32_t commandBufferInfoCount; + const VkCommandBufferSubmitInfo* pCommandBufferInfos; + uint32_t signalSemaphoreInfoCount; + const VkSemaphoreSubmitInfo* pSignalSemaphoreInfos; +} VkSubmitInfo2; + +typedef struct VkPhysicalDeviceSynchronization2Features { + VkStructureType sType; + void* pNext; + VkBool32 synchronization2; +} VkPhysicalDeviceSynchronization2Features; + +typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures { + VkStructureType sType; + void* pNext; + VkBool32 shaderZeroInitializeWorkgroupMemory; +} VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures; + +typedef struct VkPhysicalDeviceImageRobustnessFeatures { + VkStructureType sType; + void* pNext; + VkBool32 robustImageAccess; +} VkPhysicalDeviceImageRobustnessFeatures; + +typedef struct VkBufferCopy2 { + VkStructureType sType; + const void* pNext; + VkDeviceSize srcOffset; + VkDeviceSize dstOffset; + VkDeviceSize size; +} VkBufferCopy2; + +typedef struct VkCopyBufferInfo2 { + VkStructureType sType; + const void* pNext; + VkBuffer srcBuffer; + VkBuffer dstBuffer; + uint32_t regionCount; + const VkBufferCopy2* pRegions; +} VkCopyBufferInfo2; + +typedef struct VkImageCopy2 { + VkStructureType sType; + const void* pNext; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffset; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffset; + VkExtent3D extent; +} VkImageCopy2; + +typedef struct VkCopyImageInfo2 { + VkStructureType sType; + const void* pNext; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageCopy2* pRegions; +} VkCopyImageInfo2; + +typedef struct VkBufferImageCopy2 { + VkStructureType sType; + const void* pNext; + VkDeviceSize bufferOffset; + uint32_t bufferRowLength; + uint32_t bufferImageHeight; + VkImageSubresourceLayers imageSubresource; + VkOffset3D imageOffset; + VkExtent3D imageExtent; +} VkBufferImageCopy2; + +typedef struct VkCopyBufferToImageInfo2 { + VkStructureType sType; + const void* pNext; + VkBuffer srcBuffer; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkBufferImageCopy2* pRegions; +} VkCopyBufferToImageInfo2; + +typedef struct VkCopyImageToBufferInfo2 { + VkStructureType sType; + const void* pNext; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkBuffer dstBuffer; + uint32_t regionCount; + const VkBufferImageCopy2* pRegions; +} VkCopyImageToBufferInfo2; + +typedef struct VkImageBlit2 { + VkStructureType sType; + const void* pNext; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffsets[2]; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffsets[2]; +} VkImageBlit2; + +typedef struct VkBlitImageInfo2 { + VkStructureType sType; + const void* pNext; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageBlit2* pRegions; + VkFilter filter; +} VkBlitImageInfo2; + +typedef struct VkImageResolve2 { + VkStructureType sType; + const void* pNext; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffset; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffset; + VkExtent3D extent; +} VkImageResolve2; + +typedef struct VkResolveImageInfo2 { + VkStructureType sType; + const void* pNext; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageResolve2* pRegions; +} VkResolveImageInfo2; + +typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures { + VkStructureType sType; + void* pNext; + VkBool32 subgroupSizeControl; + VkBool32 computeFullSubgroups; +} VkPhysicalDeviceSubgroupSizeControlFeatures; + +typedef struct VkPhysicalDeviceSubgroupSizeControlProperties { + VkStructureType sType; + void* pNext; + uint32_t minSubgroupSize; + uint32_t maxSubgroupSize; + uint32_t maxComputeWorkgroupSubgroups; + VkShaderStageFlags requiredSubgroupSizeStages; +} VkPhysicalDeviceSubgroupSizeControlProperties; + +typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo { + VkStructureType sType; + void* pNext; + uint32_t requiredSubgroupSize; +} VkPipelineShaderStageRequiredSubgroupSizeCreateInfo; + +typedef struct VkPhysicalDeviceInlineUniformBlockFeatures { + VkStructureType sType; + void* pNext; + VkBool32 inlineUniformBlock; + VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind; +} VkPhysicalDeviceInlineUniformBlockFeatures; + +typedef struct VkPhysicalDeviceInlineUniformBlockProperties { + VkStructureType sType; + void* pNext; + uint32_t maxInlineUniformBlockSize; + uint32_t maxPerStageDescriptorInlineUniformBlocks; + uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks; + uint32_t maxDescriptorSetInlineUniformBlocks; + uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks; +} VkPhysicalDeviceInlineUniformBlockProperties; + +typedef struct VkWriteDescriptorSetInlineUniformBlock { + VkStructureType sType; + const void* pNext; + uint32_t dataSize; + const void* pData; +} VkWriteDescriptorSetInlineUniformBlock; + +typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo { + VkStructureType sType; + const void* pNext; + uint32_t maxInlineUniformBlockBindings; +} VkDescriptorPoolInlineUniformBlockCreateInfo; + +typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures { + VkStructureType sType; + void* pNext; + VkBool32 textureCompressionASTC_HDR; +} VkPhysicalDeviceTextureCompressionASTCHDRFeatures; + +typedef struct VkRenderingAttachmentInfo { + VkStructureType sType; + const void* pNext; + VkImageView imageView; + VkImageLayout imageLayout; + VkResolveModeFlagBits resolveMode; + VkImageView resolveImageView; + VkImageLayout resolveImageLayout; + VkAttachmentLoadOp loadOp; + VkAttachmentStoreOp storeOp; + VkClearValue clearValue; +} VkRenderingAttachmentInfo; + +typedef struct VkRenderingInfo { + VkStructureType sType; + const void* pNext; + VkRenderingFlags flags; + VkRect2D renderArea; + uint32_t layerCount; + uint32_t viewMask; + uint32_t colorAttachmentCount; + const VkRenderingAttachmentInfo* pColorAttachments; + const VkRenderingAttachmentInfo* pDepthAttachment; + const VkRenderingAttachmentInfo* pStencilAttachment; +} VkRenderingInfo; + +typedef struct VkPipelineRenderingCreateInfo { + VkStructureType sType; + const void* pNext; + uint32_t viewMask; + uint32_t colorAttachmentCount; + const VkFormat* pColorAttachmentFormats; + VkFormat depthAttachmentFormat; + VkFormat stencilAttachmentFormat; +} VkPipelineRenderingCreateInfo; + +typedef struct VkPhysicalDeviceDynamicRenderingFeatures { + VkStructureType sType; + void* pNext; + VkBool32 dynamicRendering; +} VkPhysicalDeviceDynamicRenderingFeatures; + +typedef struct VkCommandBufferInheritanceRenderingInfo { + VkStructureType sType; + const void* pNext; + VkRenderingFlags flags; + uint32_t viewMask; + uint32_t colorAttachmentCount; + const VkFormat* pColorAttachmentFormats; + VkFormat depthAttachmentFormat; + VkFormat stencilAttachmentFormat; + VkSampleCountFlagBits rasterizationSamples; +} VkCommandBufferInheritanceRenderingInfo; + +typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures { + VkStructureType sType; + void* pNext; + VkBool32 shaderIntegerDotProduct; +} VkPhysicalDeviceShaderIntegerDotProductFeatures; + +typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties { + VkStructureType sType; + void* pNext; + VkBool32 integerDotProduct8BitUnsignedAccelerated; + VkBool32 integerDotProduct8BitSignedAccelerated; + VkBool32 integerDotProduct8BitMixedSignednessAccelerated; + VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedSignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProduct16BitUnsignedAccelerated; + VkBool32 integerDotProduct16BitSignedAccelerated; + VkBool32 integerDotProduct16BitMixedSignednessAccelerated; + VkBool32 integerDotProduct32BitUnsignedAccelerated; + VkBool32 integerDotProduct32BitSignedAccelerated; + VkBool32 integerDotProduct32BitMixedSignednessAccelerated; + VkBool32 integerDotProduct64BitUnsignedAccelerated; + VkBool32 integerDotProduct64BitSignedAccelerated; + VkBool32 integerDotProduct64BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated; +} VkPhysicalDeviceShaderIntegerDotProductProperties; + +typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties { + VkStructureType sType; + void* pNext; + VkDeviceSize storageTexelBufferOffsetAlignmentBytes; + VkBool32 storageTexelBufferOffsetSingleTexelAlignment; + VkDeviceSize uniformTexelBufferOffsetAlignmentBytes; + VkBool32 uniformTexelBufferOffsetSingleTexelAlignment; +} VkPhysicalDeviceTexelBufferAlignmentProperties; + +typedef struct VkFormatProperties3 { + VkStructureType sType; + void* pNext; + VkFormatFeatureFlags2 linearTilingFeatures; + VkFormatFeatureFlags2 optimalTilingFeatures; + VkFormatFeatureFlags2 bufferFeatures; +} VkFormatProperties3; + +typedef struct VkPhysicalDeviceMaintenance4Features { + VkStructureType sType; + void* pNext; + VkBool32 maintenance4; +} VkPhysicalDeviceMaintenance4Features; + +typedef struct VkPhysicalDeviceMaintenance4Properties { + VkStructureType sType; + void* pNext; + VkDeviceSize maxBufferSize; +} VkPhysicalDeviceMaintenance4Properties; + +typedef struct VkDeviceBufferMemoryRequirements { + VkStructureType sType; + const void* pNext; + const VkBufferCreateInfo* pCreateInfo; +} VkDeviceBufferMemoryRequirements; + +typedef struct VkDeviceImageMemoryRequirements { + VkStructureType sType; + const void* pNext; + const VkImageCreateInfo* pCreateInfo; + VkImageAspectFlagBits planeAspect; +} VkDeviceImageMemoryRequirements; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties); +typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlot)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot); +typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlot)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data); +typedef void (VKAPI_PTR *PFN_vkGetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData); +typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo); +typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask); +typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos); +typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo); +typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query); +typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence); +typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo); +typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdBeginRendering)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo); +typedef void (VKAPI_PTR *PFN_vkCmdEndRendering)(VkCommandBuffer commandBuffer); +typedef void (VKAPI_PTR *PFN_vkCmdSetCullMode)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode); +typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFace)(VkCommandBuffer commandBuffer, VkFrontFace frontFace); +typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopology)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology); +typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCount)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports); +typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCount)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors); +typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers2)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnable)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOp)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnable)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOp)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp); +typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable); +typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolProperties( + VkPhysicalDevice physicalDevice, + uint32_t* pToolCount, + VkPhysicalDeviceToolProperties* pToolProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlot( + VkDevice device, + const VkPrivateDataSlotCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkPrivateDataSlot* pPrivateDataSlot); + +VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlot( + VkDevice device, + VkPrivateDataSlot privateDataSlot, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateData( + VkDevice device, + VkObjectType objectType, + uint64_t objectHandle, + VkPrivateDataSlot privateDataSlot, + uint64_t data); + +VKAPI_ATTR void VKAPI_CALL vkGetPrivateData( + VkDevice device, + VkObjectType objectType, + uint64_t objectHandle, + VkPrivateDataSlot privateDataSlot, + uint64_t* pData); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2( + VkCommandBuffer commandBuffer, + VkEvent event, + const VkDependencyInfo* pDependencyInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2( + VkCommandBuffer commandBuffer, + VkEvent event, + VkPipelineStageFlags2 stageMask); + +VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2( + VkCommandBuffer commandBuffer, + uint32_t eventCount, + const VkEvent* pEvents, + const VkDependencyInfo* pDependencyInfos); + +VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2( + VkCommandBuffer commandBuffer, + const VkDependencyInfo* pDependencyInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2( + VkCommandBuffer commandBuffer, + VkPipelineStageFlags2 stage, + VkQueryPool queryPool, + uint32_t query); + +VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2( + VkQueue queue, + uint32_t submitCount, + const VkSubmitInfo2* pSubmits, + VkFence fence); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2( + VkCommandBuffer commandBuffer, + const VkCopyBufferInfo2* pCopyBufferInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2( + VkCommandBuffer commandBuffer, + const VkCopyImageInfo2* pCopyImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2( + VkCommandBuffer commandBuffer, + const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2( + VkCommandBuffer commandBuffer, + const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2( + VkCommandBuffer commandBuffer, + const VkBlitImageInfo2* pBlitImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2( + VkCommandBuffer commandBuffer, + const VkResolveImageInfo2* pResolveImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginRendering( + VkCommandBuffer commandBuffer, + const VkRenderingInfo* pRenderingInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering( + VkCommandBuffer commandBuffer); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetCullMode( + VkCommandBuffer commandBuffer, + VkCullModeFlags cullMode); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFace( + VkCommandBuffer commandBuffer, + VkFrontFace frontFace); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopology( + VkCommandBuffer commandBuffer, + VkPrimitiveTopology primitiveTopology); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCount( + VkCommandBuffer commandBuffer, + uint32_t viewportCount, + const VkViewport* pViewports); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCount( + VkCommandBuffer commandBuffer, + uint32_t scissorCount, + const VkRect2D* pScissors); + +VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2( + VkCommandBuffer commandBuffer, + uint32_t firstBinding, + uint32_t bindingCount, + const VkBuffer* pBuffers, + const VkDeviceSize* pOffsets, + const VkDeviceSize* pSizes, + const VkDeviceSize* pStrides); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnable( + VkCommandBuffer commandBuffer, + VkBool32 depthTestEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnable( + VkCommandBuffer commandBuffer, + VkBool32 depthWriteEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOp( + VkCommandBuffer commandBuffer, + VkCompareOp depthCompareOp); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnable( + VkCommandBuffer commandBuffer, + VkBool32 depthBoundsTestEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnable( + VkCommandBuffer commandBuffer, + VkBool32 stencilTestEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOp( + VkCommandBuffer commandBuffer, + VkStencilFaceFlags faceMask, + VkStencilOp failOp, + VkStencilOp passOp, + VkStencilOp depthFailOp, + VkCompareOp compareOp); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnable( + VkCommandBuffer commandBuffer, + VkBool32 rasterizerDiscardEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnable( + VkCommandBuffer commandBuffer, + VkBool32 depthBiasEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnable( + VkCommandBuffer commandBuffer, + VkBool32 primitiveRestartEnable); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirements( + VkDevice device, + const VkDeviceBufferMemoryRequirements* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirements( + VkDevice device, + const VkDeviceImageMemoryRequirements* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirements( + VkDevice device, + const VkDeviceImageMemoryRequirements* pInfo, + uint32_t* pSparseMemoryRequirementCount, + VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); +#endif + + +#define VK_KHR_surface 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) +#define VK_KHR_SURFACE_SPEC_VERSION 25 +#define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface" + +typedef enum VkPresentModeKHR { + VK_PRESENT_MODE_IMMEDIATE_KHR = 0, + VK_PRESENT_MODE_MAILBOX_KHR = 1, + VK_PRESENT_MODE_FIFO_KHR = 2, + VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3, + VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000, + VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001, + VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPresentModeKHR; + +typedef enum VkColorSpaceKHR { + VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0, + VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001, + VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002, + VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003, + VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004, + VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005, + VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006, + VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007, + VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008, + VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009, + VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010, + VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011, + VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012, + VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013, + VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014, + VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000, + VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, + VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT, + VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkColorSpaceKHR; + +typedef enum VkSurfaceTransformFlagBitsKHR { + VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001, + VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002, + VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004, + VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008, + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010, + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020, + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040, + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080, + VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100, + VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkSurfaceTransformFlagBitsKHR; + +typedef enum VkCompositeAlphaFlagBitsKHR { + VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, + VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002, + VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004, + VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008, + VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkCompositeAlphaFlagBitsKHR; +typedef VkFlags VkCompositeAlphaFlagsKHR; +typedef VkFlags VkSurfaceTransformFlagsKHR; +typedef struct VkSurfaceCapabilitiesKHR { + uint32_t minImageCount; + uint32_t maxImageCount; + VkExtent2D currentExtent; + VkExtent2D minImageExtent; + VkExtent2D maxImageExtent; + uint32_t maxImageArrayLayers; + VkSurfaceTransformFlagsKHR supportedTransforms; + VkSurfaceTransformFlagBitsKHR currentTransform; + VkCompositeAlphaFlagsKHR supportedCompositeAlpha; + VkImageUsageFlags supportedUsageFlags; +} VkSurfaceCapabilitiesKHR; + +typedef struct VkSurfaceFormatKHR { + VkFormat format; + VkColorSpaceKHR colorSpace; +} VkSurfaceFormatKHR; + +typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR( + VkInstance instance, + VkSurfaceKHR surface, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR( + VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + VkSurfaceKHR surface, + VkBool32* pSupported); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR( + VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR( + VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + uint32_t* pSurfaceFormatCount, + VkSurfaceFormatKHR* pSurfaceFormats); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR( + VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + uint32_t* pPresentModeCount, + VkPresentModeKHR* pPresentModes); +#endif + + +#define VK_KHR_swapchain 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR) +#define VK_KHR_SWAPCHAIN_SPEC_VERSION 70 +#define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain" + +typedef enum VkSwapchainCreateFlagBitsKHR { + VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001, + VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002, + VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004, + VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkSwapchainCreateFlagBitsKHR; +typedef VkFlags VkSwapchainCreateFlagsKHR; + +typedef enum VkDeviceGroupPresentModeFlagBitsKHR { + VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001, + VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002, + VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004, + VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008, + VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkDeviceGroupPresentModeFlagBitsKHR; +typedef VkFlags VkDeviceGroupPresentModeFlagsKHR; +typedef struct VkSwapchainCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkSwapchainCreateFlagsKHR flags; + VkSurfaceKHR surface; + uint32_t minImageCount; + VkFormat imageFormat; + VkColorSpaceKHR imageColorSpace; + VkExtent2D imageExtent; + uint32_t imageArrayLayers; + VkImageUsageFlags imageUsage; + VkSharingMode imageSharingMode; + uint32_t queueFamilyIndexCount; const uint32_t* pQueueFamilyIndices; VkSurfaceTransformFlagBitsKHR preTransform; VkCompositeAlphaFlagBitsKHR compositeAlpha; @@ -6177,7 +7452,7 @@ typedef struct VkAcquireNextImageInfoKHR { typedef struct VkDeviceGroupPresentCapabilitiesKHR { VkStructureType sType; - const void* pNext; + void* pNext; uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE]; VkDeviceGroupPresentModeFlagsKHR modes; } VkDeviceGroupPresentCapabilitiesKHR; @@ -6411,6 +7686,68 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR( #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge" +#define VK_KHR_dynamic_rendering 1 +#define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1 +#define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering" +typedef VkRenderingFlags VkRenderingFlagsKHR; + +typedef VkRenderingFlagBits VkRenderingFlagBitsKHR; + +typedef VkRenderingInfo VkRenderingInfoKHR; + +typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR; + +typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR; + +typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR; + +typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR; + +typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR { + VkStructureType sType; + const void* pNext; + VkImageView imageView; + VkImageLayout imageLayout; + VkExtent2D shadingRateAttachmentTexelSize; +} VkRenderingFragmentShadingRateAttachmentInfoKHR; + +typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT { + VkStructureType sType; + const void* pNext; + VkImageView imageView; + VkImageLayout imageLayout; +} VkRenderingFragmentDensityMapAttachmentInfoEXT; + +typedef struct VkAttachmentSampleCountInfoAMD { + VkStructureType sType; + const void* pNext; + uint32_t colorAttachmentCount; + const VkSampleCountFlagBits* pColorAttachmentSamples; + VkSampleCountFlagBits depthStencilAttachmentSamples; +} VkAttachmentSampleCountInfoAMD; + +typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV; + +typedef struct VkMultiviewPerViewAttributesInfoNVX { + VkStructureType sType; + const void* pNext; + VkBool32 perViewAttributes; + VkBool32 perViewAttributesPositionXOnly; +} VkMultiviewPerViewAttributesInfoNVX; + +typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo); +typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer commandBuffer); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR( + VkCommandBuffer commandBuffer, + const VkRenderingInfo* pRenderingInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR( + VkCommandBuffer commandBuffer); +#endif + + #define VK_KHR_multiview 1 #define VK_KHR_MULTIVIEW_SPEC_VERSION 1 #define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview" @@ -6545,8 +7882,10 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR( #define VK_KHR_maintenance1 1 -#define VK_KHR_MAINTENANCE1_SPEC_VERSION 2 -#define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1" +#define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2 +#define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1" +#define VK_KHR_MAINTENANCE1_SPEC_VERSION VK_KHR_MAINTENANCE_1_SPEC_VERSION +#define VK_KHR_MAINTENANCE1_EXTENSION_NAME VK_KHR_MAINTENANCE_1_EXTENSION_NAME typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR; typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags); @@ -7052,7 +8391,7 @@ typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR { typedef struct VkPerformanceCounterKHR { VkStructureType sType; - const void* pNext; + void* pNext; VkPerformanceCounterUnitKHR unit; VkPerformanceCounterScopeKHR scope; VkPerformanceCounterStorageKHR storage; @@ -7061,7 +8400,7 @@ typedef struct VkPerformanceCounterKHR { typedef struct VkPerformanceCounterDescriptionKHR { VkStructureType sType; - const void* pNext; + void* pNext; VkPerformanceCounterDescriptionFlagsKHR flags; char name[VK_MAX_DESCRIPTION_SIZE]; char category[VK_MAX_DESCRIPTION_SIZE]; @@ -7126,8 +8465,10 @@ VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR( #define VK_KHR_maintenance2 1 -#define VK_KHR_MAINTENANCE2_SPEC_VERSION 1 -#define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2" +#define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1 +#define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2" +#define VK_KHR_MAINTENANCE2_SPEC_VERSION VK_KHR_MAINTENANCE_2_SPEC_VERSION +#define VK_KHR_MAINTENANCE2_EXTENSION_NAME VK_KHR_MAINTENANCE_2_EXTENSION_NAME typedef VkPointClippingBehavior VkPointClippingBehaviorKHR; typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR; @@ -7380,8 +8721,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR( #define VK_KHR_maintenance3 1 -#define VK_KHR_MAINTENANCE3_SPEC_VERSION 1 -#define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3" +#define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1 +#define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3" +#define VK_KHR_MAINTENANCE3_SPEC_VERSION VK_KHR_MAINTENANCE_3_SPEC_VERSION +#define VK_KHR_MAINTENANCE3_EXTENSION_NAME VK_KHR_MAINTENANCE_3_EXTENSION_NAME typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR; typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR; @@ -7456,6 +8799,43 @@ typedef struct VkPhysicalDeviceShaderClockFeaturesKHR { +#define VK_KHR_global_priority 1 +#define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR 16U +#define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1 +#define VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME "VK_KHR_global_priority" + +typedef enum VkQueueGlobalPriorityKHR { + VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128, + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256, + VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512, + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024, + VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR, + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR, + VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR, + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR, + VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 0x7FFFFFFF +} VkQueueGlobalPriorityKHR; +typedef struct VkDeviceQueueGlobalPriorityCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkQueueGlobalPriorityKHR globalPriority; +} VkDeviceQueueGlobalPriorityCreateInfoKHR; + +typedef struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 globalPriorityQuery; +} VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR; + +typedef struct VkQueueFamilyGlobalPriorityPropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t priorityCount; + VkQueueGlobalPriorityKHR priorities[VK_MAX_GLOBAL_PRIORITY_SIZE_KHR]; +} VkQueueFamilyGlobalPriorityPropertiesKHR; + + + #define VK_KHR_driver_properties 1 #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1 #define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties" @@ -7548,16 +8928,12 @@ typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryMo #define VK_KHR_shader_terminate_invocation 1 #define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1 #define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation" -typedef struct VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR { - VkStructureType sType; - void* pNext; - VkBool32 shaderTerminateInvocation; -} VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR; +typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR; #define VK_KHR_fragment_shading_rate 1 -#define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 1 +#define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2 #define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate" typedef enum VkFragmentShadingRateCombinerOpKHR { @@ -7662,6 +9038,26 @@ typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayou +#define VK_KHR_present_wait 1 +#define VK_KHR_PRESENT_WAIT_SPEC_VERSION 1 +#define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait" +typedef struct VkPhysicalDevicePresentWaitFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 presentWait; +} VkPhysicalDevicePresentWaitFeaturesKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR( + VkDevice device, + VkSwapchainKHR swapchain, + uint64_t presentId, + uint64_t timeout); +#endif + + #define VK_KHR_uniform_buffer_standard_layout 1 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout" @@ -7826,6 +9222,15 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR #endif +#define VK_KHR_shader_integer_dot_product 1 +#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1 +#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product" +typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR; + +typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR; + + + #define VK_KHR_pipeline_library 1 #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1 #define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library" @@ -7843,260 +9248,113 @@ typedef struct VkPipelineLibraryCreateInfoKHR { #define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info" +#define VK_KHR_present_id 1 +#define VK_KHR_PRESENT_ID_SPEC_VERSION 1 +#define VK_KHR_PRESENT_ID_EXTENSION_NAME "VK_KHR_present_id" +typedef struct VkPresentIdKHR { + VkStructureType sType; + const void* pNext; + uint32_t swapchainCount; + const uint64_t* pPresentIds; +} VkPresentIdKHR; + +typedef struct VkPhysicalDevicePresentIdFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 presentId; +} VkPhysicalDevicePresentIdFeaturesKHR; + + + #define VK_KHR_synchronization2 1 -typedef uint64_t VkFlags64; #define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1 #define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2" -typedef VkFlags64 VkPipelineStageFlags2KHR; - -// Flag bits for VkPipelineStageFlagBits2KHR -typedef VkFlags64 VkPipelineStageFlagBits2KHR; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL; -#ifdef VK_ENABLE_BETA_EXTENSIONS -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL; -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL; -#endif -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL; -static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL; - -typedef VkFlags64 VkAccessFlags2KHR; - -// Flag bits for VkAccessFlagBits2KHR -typedef VkFlags64 VkAccessFlagBits2KHR; -static const VkAccessFlagBits2KHR VK_ACCESS_2_NONE_KHR = 0ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL; -#ifdef VK_ENABLE_BETA_EXTENSIONS -static const VkAccessFlagBits2KHR VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL; -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS -static const VkAccessFlagBits2KHR VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL; -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS -static const VkAccessFlagBits2KHR VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL; -#endif -#ifdef VK_ENABLE_BETA_EXTENSIONS -static const VkAccessFlagBits2KHR VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL; -#endif -static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000; -static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000; -static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000; -static const VkAccessFlagBits2KHR VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL; -static const VkAccessFlagBits2KHR VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL; - - -typedef enum VkSubmitFlagBitsKHR { - VK_SUBMIT_PROTECTED_BIT_KHR = 0x00000001, - VK_SUBMIT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkSubmitFlagBitsKHR; -typedef VkFlags VkSubmitFlagsKHR; -typedef struct VkMemoryBarrier2KHR { - VkStructureType sType; - const void* pNext; - VkPipelineStageFlags2KHR srcStageMask; - VkAccessFlags2KHR srcAccessMask; - VkPipelineStageFlags2KHR dstStageMask; - VkAccessFlags2KHR dstAccessMask; -} VkMemoryBarrier2KHR; +typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR; -typedef struct VkBufferMemoryBarrier2KHR { - VkStructureType sType; - const void* pNext; - VkPipelineStageFlags2KHR srcStageMask; - VkAccessFlags2KHR srcAccessMask; - VkPipelineStageFlags2KHR dstStageMask; - VkAccessFlags2KHR dstAccessMask; - uint32_t srcQueueFamilyIndex; - uint32_t dstQueueFamilyIndex; - VkBuffer buffer; - VkDeviceSize offset; - VkDeviceSize size; -} VkBufferMemoryBarrier2KHR; - -typedef struct VkImageMemoryBarrier2KHR { - VkStructureType sType; - const void* pNext; - VkPipelineStageFlags2KHR srcStageMask; - VkAccessFlags2KHR srcAccessMask; - VkPipelineStageFlags2KHR dstStageMask; - VkAccessFlags2KHR dstAccessMask; - VkImageLayout oldLayout; - VkImageLayout newLayout; - uint32_t srcQueueFamilyIndex; - uint32_t dstQueueFamilyIndex; - VkImage image; - VkImageSubresourceRange subresourceRange; -} VkImageMemoryBarrier2KHR; - -typedef struct VkDependencyInfoKHR { - VkStructureType sType; - const void* pNext; - VkDependencyFlags dependencyFlags; - uint32_t memoryBarrierCount; - const VkMemoryBarrier2KHR* pMemoryBarriers; - uint32_t bufferMemoryBarrierCount; - const VkBufferMemoryBarrier2KHR* pBufferMemoryBarriers; - uint32_t imageMemoryBarrierCount; - const VkImageMemoryBarrier2KHR* pImageMemoryBarriers; -} VkDependencyInfoKHR; - -typedef struct VkSemaphoreSubmitInfoKHR { - VkStructureType sType; - const void* pNext; - VkSemaphore semaphore; - uint64_t value; - VkPipelineStageFlags2KHR stageMask; - uint32_t deviceIndex; -} VkSemaphoreSubmitInfoKHR; +typedef VkPipelineStageFlagBits2 VkPipelineStageFlagBits2KHR; -typedef struct VkCommandBufferSubmitInfoKHR { - VkStructureType sType; - const void* pNext; - VkCommandBuffer commandBuffer; - uint32_t deviceMask; -} VkCommandBufferSubmitInfoKHR; +typedef VkAccessFlags2 VkAccessFlags2KHR; -typedef struct VkSubmitInfo2KHR { - VkStructureType sType; - const void* pNext; - VkSubmitFlagsKHR flags; - uint32_t waitSemaphoreInfoCount; - const VkSemaphoreSubmitInfoKHR* pWaitSemaphoreInfos; - uint32_t commandBufferInfoCount; - const VkCommandBufferSubmitInfoKHR* pCommandBufferInfos; - uint32_t signalSemaphoreInfoCount; - const VkSemaphoreSubmitInfoKHR* pSignalSemaphoreInfos; -} VkSubmitInfo2KHR; +typedef VkAccessFlagBits2 VkAccessFlagBits2KHR; -typedef struct VkPhysicalDeviceSynchronization2FeaturesKHR { - VkStructureType sType; - void* pNext; - VkBool32 synchronization2; -} VkPhysicalDeviceSynchronization2FeaturesKHR; +typedef VkSubmitFlagBits VkSubmitFlagBitsKHR; + +typedef VkSubmitFlags VkSubmitFlagsKHR; + +typedef VkMemoryBarrier2 VkMemoryBarrier2KHR; + +typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR; + +typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR; + +typedef VkDependencyInfo VkDependencyInfoKHR; + +typedef VkSubmitInfo2 VkSubmitInfo2KHR; + +typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR; + +typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR; + +typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR; typedef struct VkQueueFamilyCheckpointProperties2NV { - VkStructureType sType; - void* pNext; - VkPipelineStageFlags2KHR checkpointExecutionStageMask; + VkStructureType sType; + void* pNext; + VkPipelineStageFlags2 checkpointExecutionStageMask; } VkQueueFamilyCheckpointProperties2NV; typedef struct VkCheckpointData2NV { - VkStructureType sType; - void* pNext; - VkPipelineStageFlags2KHR stage; - void* pCheckpointMarker; + VkStructureType sType; + void* pNext; + VkPipelineStageFlags2 stage; + void* pCheckpointMarker; } VkCheckpointData2NV; -typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfoKHR* pDependencyInfo); -typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2KHR stageMask); -typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfoKHR* pDependencyInfos); -typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer commandBuffer, const VkDependencyInfoKHR* pDependencyInfo); -typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2KHR stage, VkQueryPool queryPool, uint32_t query); -typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2KHR* pSubmits, VkFence fence); -typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2KHR stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker); +typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo); +typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask); +typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos); +typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo); +typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query); +typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence); +typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker); typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData); #ifndef VK_NO_PROTOTYPES VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR( VkCommandBuffer commandBuffer, VkEvent event, - const VkDependencyInfoKHR* pDependencyInfo); + const VkDependencyInfo* pDependencyInfo); VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR( VkCommandBuffer commandBuffer, VkEvent event, - VkPipelineStageFlags2KHR stageMask); + VkPipelineStageFlags2 stageMask); VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR( VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, - const VkDependencyInfoKHR* pDependencyInfos); + const VkDependencyInfo* pDependencyInfos); VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR( VkCommandBuffer commandBuffer, - const VkDependencyInfoKHR* pDependencyInfo); + const VkDependencyInfo* pDependencyInfo); VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR( VkCommandBuffer commandBuffer, - VkPipelineStageFlags2KHR stage, + VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query); VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR( VkQueue queue, uint32_t submitCount, - const VkSubmitInfo2KHR* pSubmits, + const VkSubmitInfo2* pSubmits, VkFence fence); VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD( VkCommandBuffer commandBuffer, - VkPipelineStageFlags2KHR stage, + VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker); @@ -8122,11 +9380,7 @@ typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR { #define VK_KHR_zero_initialize_workgroup_memory 1 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1 #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory" -typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR { - VkStructureType sType; - void* pNext; - VkBool32 shaderZeroInitializeWorkgroupMemory; -} VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR; +typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR; @@ -8147,148 +9401,104 @@ typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR { #define VK_KHR_copy_commands2 1 #define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1 #define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2" -typedef struct VkBufferCopy2KHR { - VkStructureType sType; - const void* pNext; - VkDeviceSize srcOffset; - VkDeviceSize dstOffset; - VkDeviceSize size; -} VkBufferCopy2KHR; +typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR; -typedef struct VkCopyBufferInfo2KHR { - VkStructureType sType; - const void* pNext; - VkBuffer srcBuffer; - VkBuffer dstBuffer; - uint32_t regionCount; - const VkBufferCopy2KHR* pRegions; -} VkCopyBufferInfo2KHR; +typedef VkCopyImageInfo2 VkCopyImageInfo2KHR; + +typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR; + +typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR; -typedef struct VkImageCopy2KHR { - VkStructureType sType; - const void* pNext; - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffset; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffset; - VkExtent3D extent; -} VkImageCopy2KHR; +typedef VkBlitImageInfo2 VkBlitImageInfo2KHR; -typedef struct VkCopyImageInfo2KHR { - VkStructureType sType; - const void* pNext; - VkImage srcImage; - VkImageLayout srcImageLayout; - VkImage dstImage; - VkImageLayout dstImageLayout; - uint32_t regionCount; - const VkImageCopy2KHR* pRegions; -} VkCopyImageInfo2KHR; +typedef VkResolveImageInfo2 VkResolveImageInfo2KHR; -typedef struct VkBufferImageCopy2KHR { - VkStructureType sType; - const void* pNext; - VkDeviceSize bufferOffset; - uint32_t bufferRowLength; - uint32_t bufferImageHeight; - VkImageSubresourceLayers imageSubresource; - VkOffset3D imageOffset; - VkExtent3D imageExtent; -} VkBufferImageCopy2KHR; +typedef VkBufferCopy2 VkBufferCopy2KHR; -typedef struct VkCopyBufferToImageInfo2KHR { - VkStructureType sType; - const void* pNext; - VkBuffer srcBuffer; - VkImage dstImage; - VkImageLayout dstImageLayout; - uint32_t regionCount; - const VkBufferImageCopy2KHR* pRegions; -} VkCopyBufferToImageInfo2KHR; - -typedef struct VkCopyImageToBufferInfo2KHR { - VkStructureType sType; - const void* pNext; - VkImage srcImage; - VkImageLayout srcImageLayout; - VkBuffer dstBuffer; - uint32_t regionCount; - const VkBufferImageCopy2KHR* pRegions; -} VkCopyImageToBufferInfo2KHR; - -typedef struct VkImageBlit2KHR { - VkStructureType sType; - const void* pNext; - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffsets[2]; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffsets[2]; -} VkImageBlit2KHR; +typedef VkImageCopy2 VkImageCopy2KHR; -typedef struct VkBlitImageInfo2KHR { - VkStructureType sType; - const void* pNext; - VkImage srcImage; - VkImageLayout srcImageLayout; - VkImage dstImage; - VkImageLayout dstImageLayout; - uint32_t regionCount; - const VkImageBlit2KHR* pRegions; - VkFilter filter; -} VkBlitImageInfo2KHR; +typedef VkImageBlit2 VkImageBlit2KHR; -typedef struct VkImageResolve2KHR { - VkStructureType sType; - const void* pNext; - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffset; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffset; - VkExtent3D extent; -} VkImageResolve2KHR; +typedef VkBufferImageCopy2 VkBufferImageCopy2KHR; -typedef struct VkResolveImageInfo2KHR { - VkStructureType sType; - const void* pNext; - VkImage srcImage; - VkImageLayout srcImageLayout; - VkImage dstImage; - VkImageLayout dstImageLayout; - uint32_t regionCount; - const VkImageResolve2KHR* pRegions; -} VkResolveImageInfo2KHR; +typedef VkImageResolve2 VkImageResolve2KHR; -typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2KHR* pCopyBufferInfo); -typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2KHR* pCopyImageInfo); -typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo); -typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo); -typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2KHR* pBlitImageInfo); -typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2KHR* pResolveImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo); +typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo); #ifndef VK_NO_PROTOTYPES VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR( VkCommandBuffer commandBuffer, - const VkCopyBufferInfo2KHR* pCopyBufferInfo); + const VkCopyBufferInfo2* pCopyBufferInfo); VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR( VkCommandBuffer commandBuffer, - const VkCopyImageInfo2KHR* pCopyImageInfo); + const VkCopyImageInfo2* pCopyImageInfo); VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR( VkCommandBuffer commandBuffer, - const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo); + const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo); VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR( VkCommandBuffer commandBuffer, - const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo); + const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo); VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR( VkCommandBuffer commandBuffer, - const VkBlitImageInfo2KHR* pBlitImageInfo); + const VkBlitImageInfo2* pBlitImageInfo); VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR( VkCommandBuffer commandBuffer, - const VkResolveImageInfo2KHR* pResolveImageInfo); + const VkResolveImageInfo2* pResolveImageInfo); +#endif + + +#define VK_KHR_format_feature_flags2 1 +#define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 1 +#define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2" +typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR; + +typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR; + +typedef VkFormatProperties3 VkFormatProperties3KHR; + + + +#define VK_KHR_maintenance4 1 +#define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2 +#define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4" +typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR; + +typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR; + +typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR; + +typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR; + +typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR( + VkDevice device, + const VkDeviceBufferMemoryRequirements* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirementsKHR( + VkDevice device, + const VkDeviceImageMemoryRequirements* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirementsKHR( + VkDevice device, + const VkDeviceImageMemoryRequirements* pInfo, + uint32_t* pSparseMemoryRequirementCount, + VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); #endif @@ -8336,6 +9546,7 @@ typedef enum VkDebugReportObjectTypeEXT { VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001, VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000, VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000, + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000, VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT, @@ -8921,11 +10132,7 @@ typedef struct VkValidationFlagsEXT { #define VK_EXT_texture_compression_astc_hdr 1 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr" -typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 textureCompressionASTC_HDR; -} VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT; +typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT; @@ -9195,8 +10402,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE( #define VK_NV_viewport_array2 1 -#define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1 -#define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2" +#define VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION 1 +#define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2" +#define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION +#define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME #define VK_NVX_multiview_per_view_attributes 1 @@ -9551,35 +10760,13 @@ typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFil #define VK_EXT_inline_uniform_block 1 #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1 #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block" -typedef struct VkPhysicalDeviceInlineUniformBlockFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 inlineUniformBlock; - VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind; -} VkPhysicalDeviceInlineUniformBlockFeaturesEXT; +typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT; -typedef struct VkPhysicalDeviceInlineUniformBlockPropertiesEXT { - VkStructureType sType; - void* pNext; - uint32_t maxInlineUniformBlockSize; - uint32_t maxPerStageDescriptorInlineUniformBlocks; - uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks; - uint32_t maxDescriptorSetInlineUniformBlocks; - uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks; -} VkPhysicalDeviceInlineUniformBlockPropertiesEXT; +typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT; -typedef struct VkWriteDescriptorSetInlineUniformBlockEXT { - VkStructureType sType; - const void* pNext; - uint32_t dataSize; - const void* pData; -} VkWriteDescriptorSetInlineUniformBlockEXT; +typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT; -typedef struct VkDescriptorPoolInlineUniformBlockCreateInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t maxInlineUniformBlockBindings; -} VkDescriptorPoolInlineUniformBlockCreateInfoEXT; +typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT; @@ -9766,7 +10953,7 @@ typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV { #define VK_EXT_image_drm_format_modifier 1 -#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1 +#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier" typedef struct VkDrmFormatModifierPropertiesEXT { uint64_t drmFormatModifier; @@ -9811,6 +10998,19 @@ typedef struct VkImageDrmFormatModifierPropertiesEXT { uint64_t drmFormatModifier; } VkImageDrmFormatModifierPropertiesEXT; +typedef struct VkDrmFormatModifierProperties2EXT { + uint64_t drmFormatModifier; + uint32_t drmFormatModifierPlaneCount; + VkFormatFeatureFlags2 drmFormatModifierTilingFeatures; +} VkDrmFormatModifierProperties2EXT; + +typedef struct VkDrmFormatModifierPropertiesList2EXT { + VkStructureType sType; + void* pNext; + uint32_t drmFormatModifierCount; + VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties; +} VkDrmFormatModifierPropertiesList2EXT; + typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties); #ifndef VK_NO_PROTOTYPES @@ -10075,9 +11275,10 @@ typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV; typedef enum VkGeometryInstanceFlagBitsKHR { VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001, - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 0x00000002, + VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002, VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004, VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008, + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR, VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR, VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR, VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR, @@ -10411,19 +11612,9 @@ typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT { #define VK_EXT_global_priority 1 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority" +typedef VkQueueGlobalPriorityKHR VkQueueGlobalPriorityEXT; -typedef enum VkQueueGlobalPriorityEXT { - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128, - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256, - VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512, - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024, - VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF -} VkQueueGlobalPriorityEXT; -typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkQueueGlobalPriorityEXT globalPriority; -} VkDeviceQueueGlobalPriorityCreateInfoEXT; +typedef VkDeviceQueueGlobalPriorityCreateInfoKHR VkDeviceQueueGlobalPriorityCreateInfoEXT; @@ -10601,26 +11792,13 @@ typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { #define VK_EXT_pipeline_creation_feedback 1 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback" +typedef VkPipelineCreationFeedbackFlagBits VkPipelineCreationFeedbackFlagBitsEXT; -typedef enum VkPipelineCreationFeedbackFlagBitsEXT { - VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = 0x00000001, - VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = 0x00000002, - VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = 0x00000004, - VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkPipelineCreationFeedbackFlagBitsEXT; -typedef VkFlags VkPipelineCreationFeedbackFlagsEXT; -typedef struct VkPipelineCreationFeedbackEXT { - VkPipelineCreationFeedbackFlagsEXT flags; - uint64_t duration; -} VkPipelineCreationFeedbackEXT; - -typedef struct VkPipelineCreationFeedbackCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkPipelineCreationFeedbackEXT* pPipelineCreationFeedback; - uint32_t pipelineStageCreationFeedbackCount; - VkPipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks; -} VkPipelineCreationFeedbackCreateInfoEXT; +typedef VkPipelineCreationFeedbackFlags VkPipelineCreationFeedbackFlagsEXT; + +typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT; + +typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT; @@ -10971,7 +12149,7 @@ VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD( #define VK_EXT_fragment_density_map 1 -#define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 1 +#define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 2 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map" typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT { VkStructureType sType; @@ -11005,8 +12183,10 @@ typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLay #define VK_GOOGLE_hlsl_functionality1 1 -#define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 1 -#define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1" +#define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1 +#define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1" +#define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION +#define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME #define VK_GOOGLE_decorate_string 1 @@ -11017,27 +12197,11 @@ typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLay #define VK_EXT_subgroup_size_control 1 #define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2 #define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control" -typedef struct VkPhysicalDeviceSubgroupSizeControlFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 subgroupSizeControl; - VkBool32 computeFullSubgroups; -} VkPhysicalDeviceSubgroupSizeControlFeaturesEXT; +typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT; -typedef struct VkPhysicalDeviceSubgroupSizeControlPropertiesEXT { - VkStructureType sType; - void* pNext; - uint32_t minSubgroupSize; - uint32_t maxSubgroupSize; - uint32_t maxComputeWorkgroupSubgroups; - VkShaderStageFlags requiredSubgroupSizeStages; -} VkPhysicalDeviceSubgroupSizeControlPropertiesEXT; +typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT; -typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT { - VkStructureType sType; - void* pNext; - uint32_t requiredSubgroupSize; -} VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; +typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; @@ -11154,35 +12318,19 @@ VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT( #define VK_EXT_tooling_info 1 #define VK_EXT_TOOLING_INFO_SPEC_VERSION 1 #define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info" +typedef VkToolPurposeFlagBits VkToolPurposeFlagBitsEXT; -typedef enum VkToolPurposeFlagBitsEXT { - VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = 0x00000001, - VK_TOOL_PURPOSE_PROFILING_BIT_EXT = 0x00000002, - VK_TOOL_PURPOSE_TRACING_BIT_EXT = 0x00000004, - VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = 0x00000008, - VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = 0x00000010, - VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020, - VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040, - VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkToolPurposeFlagBitsEXT; -typedef VkFlags VkToolPurposeFlagsEXT; -typedef struct VkPhysicalDeviceToolPropertiesEXT { - VkStructureType sType; - void* pNext; - char name[VK_MAX_EXTENSION_NAME_SIZE]; - char version[VK_MAX_EXTENSION_NAME_SIZE]; - VkToolPurposeFlagsEXT purposes; - char description[VK_MAX_DESCRIPTION_SIZE]; - char layer[VK_MAX_EXTENSION_NAME_SIZE]; -} VkPhysicalDeviceToolPropertiesEXT; +typedef VkToolPurposeFlags VkToolPurposeFlagsEXT; -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolPropertiesEXT* pToolProperties); +typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties); #ifndef VK_NO_PROTOTYPES VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT( VkPhysicalDevice physicalDevice, uint32_t* pToolCount, - VkPhysicalDeviceToolPropertiesEXT* pToolProperties); + VkPhysicalDeviceToolProperties* pToolProperties); #endif @@ -11588,14 +12736,32 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT( #endif +#define VK_EXT_shader_atomic_float2 1 +#define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1 +#define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2" +typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 shaderBufferFloat16Atomics; + VkBool32 shaderBufferFloat16AtomicAdd; + VkBool32 shaderBufferFloat16AtomicMinMax; + VkBool32 shaderBufferFloat32AtomicMinMax; + VkBool32 shaderBufferFloat64AtomicMinMax; + VkBool32 shaderSharedFloat16Atomics; + VkBool32 shaderSharedFloat16AtomicAdd; + VkBool32 shaderSharedFloat16AtomicMinMax; + VkBool32 shaderSharedFloat32AtomicMinMax; + VkBool32 shaderSharedFloat64AtomicMinMax; + VkBool32 shaderImageFloat32AtomicMinMax; + VkBool32 sparseImageFloat32AtomicMinMax; +} VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT; + + + #define VK_EXT_shader_demote_to_helper_invocation 1 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation" -typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 shaderDemoteToHelperInvocation; -} VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; +typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; @@ -11817,14 +12983,7 @@ typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT { VkBool32 texelBufferAlignment; } VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT; -typedef struct VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT { - VkStructureType sType; - void* pNext; - VkDeviceSize storageTexelBufferOffsetAlignmentBytes; - VkBool32 storageTexelBufferOffsetSingleTexelAlignment; - VkDeviceSize uniformTexelBufferOffsetAlignmentBytes; - VkBool32 uniformTexelBufferOffsetSingleTexelAlignment; -} VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT; +typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT; @@ -11867,7 +13026,7 @@ typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT { typedef struct VkDeviceMemoryReportCallbackDataEXT { VkStructureType sType; - const void* pNext; + void* pNext; VkDeviceMemoryReportFlagsEXT flags; VkDeviceMemoryReportEventTypeEXT type; uint64_t memoryObjectId; @@ -11962,61 +13121,49 @@ typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT { #define VK_EXT_private_data 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlotEXT) +typedef VkPrivateDataSlot VkPrivateDataSlotEXT; + #define VK_EXT_PRIVATE_DATA_SPEC_VERSION 1 #define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data" +typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT; -typedef enum VkPrivateDataSlotCreateFlagBitsEXT { - VK_PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkPrivateDataSlotCreateFlagBitsEXT; -typedef VkFlags VkPrivateDataSlotCreateFlagsEXT; -typedef struct VkPhysicalDevicePrivateDataFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 privateData; -} VkPhysicalDevicePrivateDataFeaturesEXT; +typedef VkPrivateDataSlotCreateFlagBits VkPrivateDataSlotCreateFlagBitsEXT; -typedef struct VkDevicePrivateDataCreateInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t privateDataSlotRequestCount; -} VkDevicePrivateDataCreateInfoEXT; +typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT; -typedef struct VkPrivateDataSlotCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkPrivateDataSlotCreateFlagsEXT flags; -} VkPrivateDataSlotCreateInfoEXT; +typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT; -typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlotEXT* pPrivateDataSlot); -typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlotEXT privateDataSlot, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t data); -typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t* pData); +typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot); +typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data); +typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData); #ifndef VK_NO_PROTOTYPES VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT( VkDevice device, - const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, + const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, - VkPrivateDataSlotEXT* pPrivateDataSlot); + VkPrivateDataSlot* pPrivateDataSlot); VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT( VkDevice device, - VkPrivateDataSlotEXT privateDataSlot, + VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator); VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, - VkPrivateDataSlotEXT privateDataSlot, + VkPrivateDataSlot privateDataSlot, uint64_t data); VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, - VkPrivateDataSlotEXT privateDataSlot, + VkPrivateDataSlot privateDataSlot, uint64_t* pData); #endif @@ -12024,11 +13171,7 @@ VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT( #define VK_EXT_pipeline_creation_cache_control 1 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control" -typedef struct VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 pipelineCreationCacheControl; -} VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT; +typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT; @@ -12202,7 +13345,7 @@ typedef struct VkAccelerationStructureMotionInstanceNV { typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV { VkStructureType sType; - const void* pNext; + void* pNext; VkBool32 rayTracingMotionBlur; VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect; } VkPhysicalDeviceRayTracingMotionBlurFeaturesNV; @@ -12254,11 +13397,7 @@ typedef struct VkCopyCommandTransformInfoQCOM { #define VK_EXT_image_robustness 1 #define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1 #define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness" -typedef struct VkPhysicalDeviceImageRobustnessFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 robustImageAccess; -} VkPhysicalDeviceImageRobustnessFeaturesEXT; +typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT; @@ -12274,6 +13413,30 @@ typedef struct VkPhysicalDevice4444FormatsFeaturesEXT { +#define VK_ARM_rasterization_order_attachment_access 1 +#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1 +#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access" +typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM { + VkStructureType sType; + const void* pNext; + VkBool32 rasterizationOrderColorAttachmentAccess; + VkBool32 rasterizationOrderDepthAttachmentAccess; + VkBool32 rasterizationOrderStencilAttachmentAccess; +} VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM; + + + +#define VK_EXT_rgba10x6_formats 1 +#define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1 +#define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats" +typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 formatRgba10x6WithoutYCbCrSampler; +} VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT; + + + #define VK_NV_acquire_winrt_display 1 #define VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION 1 #define VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME "VK_NV_acquire_winrt_display" @@ -12370,8 +13533,37 @@ typedef struct VkPhysicalDeviceDrmPropertiesEXT { +#define VK_EXT_depth_clip_control 1 +#define VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION 1 +#define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control" +typedef struct VkPhysicalDeviceDepthClipControlFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 depthClipControl; +} VkPhysicalDeviceDepthClipControlFeaturesEXT; + +typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 negativeOneToOne; +} VkPipelineViewportDepthClipControlCreateInfoEXT; + + + +#define VK_EXT_primitive_topology_list_restart 1 +#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1 +#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart" +typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 primitiveTopologyListRestart; + VkBool32 primitiveTopologyPatchListRestart; +} VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT; + + + #define VK_HUAWEI_subpass_shading 1 -#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 0 +#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 2 #define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading" typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI { VkStructureType sType; @@ -12392,11 +13584,12 @@ typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI { uint32_t maxSubpassShadingWorkgroupSizeAspectRatio; } VkPhysicalDeviceSubpassShadingPropertiesHUAWEI; -typedef VkResult (VKAPI_PTR *PFN_vkGetSubpassShadingMaxWorkgroupSizeHUAWEI)(VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize); +typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize); typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer); #ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetSubpassShadingMaxWorkgroupSizeHUAWEI( +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( + VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize); @@ -12405,6 +13598,52 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI( #endif +#define VK_HUAWEI_invocation_mask 1 +#define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1 +#define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask" +typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI { + VkStructureType sType; + void* pNext; + VkBool32 invocationMask; +} VkPhysicalDeviceInvocationMaskFeaturesHUAWEI; + +typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI( + VkCommandBuffer commandBuffer, + VkImageView imageView, + VkImageLayout imageLayout); +#endif + + +#define VK_NV_external_memory_rdma 1 +typedef void* VkRemoteAddressNV; +#define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1 +#define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma" +typedef struct VkMemoryGetRemoteAddressInfoNV { + VkStructureType sType; + const void* pNext; + VkDeviceMemory memory; + VkExternalMemoryHandleTypeFlagBits handleType; +} VkMemoryGetRemoteAddressInfoNV; + +typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 externalMemoryRDMA; +} VkPhysicalDeviceExternalMemoryRDMAFeaturesNV; + +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV( + VkDevice device, + const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, + VkRemoteAddressNV* pAddress); +#endif + + #define VK_EXT_extended_dynamic_state2 1 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2" @@ -12472,21 +13711,29 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWrite #define VK_EXT_global_priority_query 1 -#define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT 16U #define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1 #define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query" -typedef struct VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT { +#define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT VK_MAX_GLOBAL_PRIORITY_SIZE_KHR +typedef VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT; + +typedef VkQueueFamilyGlobalPriorityPropertiesKHR VkQueueFamilyGlobalPriorityPropertiesEXT; + + + +#define VK_EXT_image_view_min_lod 1 +#define VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION 1 +#define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod" +typedef struct VkPhysicalDeviceImageViewMinLodFeaturesEXT { VkStructureType sType; void* pNext; - VkBool32 globalPriorityQuery; -} VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT; + VkBool32 minLod; +} VkPhysicalDeviceImageViewMinLodFeaturesEXT; -typedef struct VkQueueFamilyGlobalPriorityPropertiesEXT { - VkStructureType sType; - void* pNext; - uint32_t priorityCount; - VkQueueGlobalPriorityEXT priorities[VK_MAX_GLOBAL_PRIORITY_SIZE_EXT]; -} VkQueueFamilyGlobalPriorityPropertiesEXT; +typedef struct VkImageViewMinLodCreateInfoEXT { + VkStructureType sType; + const void* pNext; + float minLod; +} VkImageViewMinLodCreateInfoEXT; @@ -12539,9 +13786,92 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT( #endif +#define VK_EXT_load_store_op_none 1 +#define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1 +#define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none" + + +#define VK_EXT_border_color_swizzle 1 +#define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1 +#define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle" +typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 borderColorSwizzle; + VkBool32 borderColorSwizzleFromImage; +} VkPhysicalDeviceBorderColorSwizzleFeaturesEXT; + +typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkComponentMapping components; + VkBool32 srgb; +} VkSamplerBorderColorComponentMappingCreateInfoEXT; + + + +#define VK_EXT_pageable_device_local_memory 1 +#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1 +#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory" +typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 pageableDeviceLocalMemory; +} VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT; + +typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice device, VkDeviceMemory memory, float priority); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT( + VkDevice device, + VkDeviceMemory memory, + float priority); +#endif + + +#define VK_QCOM_fragment_density_map_offset 1 +#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 1 +#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset" +typedef struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 fragmentDensityMapOffset; +} VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM; + +typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM { + VkStructureType sType; + void* pNext; + VkExtent2D fragmentDensityOffsetGranularity; +} VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM; + +typedef struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM { + VkStructureType sType; + const void* pNext; + uint32_t fragmentDensityOffsetCount; + const VkOffset2D* pFragmentDensityOffsets; +} VkSubpassFragmentDensityMapOffsetEndInfoQCOM; + + + +#define VK_NV_linear_color_attachment 1 +#define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1 +#define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment" +typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 linearColorAttachment; +} VkPhysicalDeviceLinearColorAttachmentFeaturesNV; + + + +#define VK_GOOGLE_surfaceless_query 1 +#define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 1 +#define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query" + + #define VK_KHR_acceleration_structure 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR) -#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 11 +#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13 #define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure" typedef enum VkBuildAccelerationStructureModeKHR {