blob: 21d22c2fb25c184c48590aec62f224a0e52fc9f8 [file] [log] [blame]
/* This file is generated by venus-protocol. See vn_protocol_renderer.h. */
/*
* Copyright 2020 Google LLC
* SPDX-License-Identifier: MIT
*/
#ifndef VN_PROTOCOL_RENDERER_STRUCTS_H
#define VN_PROTOCOL_RENDERER_STRUCTS_H
#include "vn_protocol_renderer_handles.h"
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpointer-arith"
#pragma GCC diagnostic ignored "-Wunused-parameter"
/*
* These structs/unions/commands are not included
*
* VkAllocationCallbacks
*/
/* struct VkExtent3D */
static inline void
vn_encode_VkExtent3D(struct vn_cs_encoder *enc, const VkExtent3D *val)
{
vn_encode_uint32_t(enc, &val->width);
vn_encode_uint32_t(enc, &val->height);
vn_encode_uint32_t(enc, &val->depth);
}
static inline void
vn_decode_VkExtent3D_temp(struct vn_cs_decoder *dec, VkExtent3D *val)
{
vn_decode_uint32_t(dec, &val->width);
vn_decode_uint32_t(dec, &val->height);
vn_decode_uint32_t(dec, &val->depth);
}
static inline void
vn_decode_VkExtent3D_partial_temp(struct vn_cs_decoder *dec, VkExtent3D *val)
{
/* skip val->width */
/* skip val->height */
/* skip val->depth */
}
static inline void
vn_replace_VkExtent3D_handle(VkExtent3D *val)
{
/* skip val->width */
/* skip val->height */
/* skip val->depth */
}
/* struct VkLayerProperties */
static inline void
vn_encode_VkLayerProperties(struct vn_cs_encoder *enc, const VkLayerProperties *val)
{
vn_encode_array_size(enc, VK_MAX_EXTENSION_NAME_SIZE);
vn_encode_char_array(enc, val->layerName, VK_MAX_EXTENSION_NAME_SIZE);
vn_encode_uint32_t(enc, &val->specVersion);
vn_encode_uint32_t(enc, &val->implementationVersion);
vn_encode_array_size(enc, VK_MAX_DESCRIPTION_SIZE);
vn_encode_char_array(enc, val->description, VK_MAX_DESCRIPTION_SIZE);
}
static inline void
vn_decode_VkLayerProperties_partial_temp(struct vn_cs_decoder *dec, VkLayerProperties *val)
{
/* skip val->layerName */
/* skip val->specVersion */
/* skip val->implementationVersion */
/* skip val->description */
}
/* struct VkExtensionProperties */
static inline void
vn_encode_VkExtensionProperties(struct vn_cs_encoder *enc, const VkExtensionProperties *val)
{
vn_encode_array_size(enc, VK_MAX_EXTENSION_NAME_SIZE);
vn_encode_char_array(enc, val->extensionName, VK_MAX_EXTENSION_NAME_SIZE);
vn_encode_uint32_t(enc, &val->specVersion);
}
static inline void
vn_decode_VkExtensionProperties_temp(struct vn_cs_decoder *dec, VkExtensionProperties *val)
{
{
const size_t array_size = vn_decode_array_size(dec, VK_MAX_EXTENSION_NAME_SIZE);
vn_decode_char_array(dec, val->extensionName, array_size);
}
vn_decode_uint32_t(dec, &val->specVersion);
}
static inline void
vn_decode_VkExtensionProperties_partial_temp(struct vn_cs_decoder *dec, VkExtensionProperties *val)
{
/* skip val->extensionName */
/* skip val->specVersion */
}
static inline void
vn_replace_VkExtensionProperties_handle(VkExtensionProperties *val)
{
/* skip val->extensionName */
/* skip val->specVersion */
}
/* struct VkMemoryRequirements */
static inline void
vn_encode_VkMemoryRequirements(struct vn_cs_encoder *enc, const VkMemoryRequirements *val)
{
vn_encode_VkDeviceSize(enc, &val->size);
vn_encode_VkDeviceSize(enc, &val->alignment);
vn_encode_uint32_t(enc, &val->memoryTypeBits);
}
static inline void
vn_decode_VkMemoryRequirements_partial_temp(struct vn_cs_decoder *dec, VkMemoryRequirements *val)
{
/* skip val->size */
/* skip val->alignment */
/* skip val->memoryTypeBits */
}
/* struct VkSparseImageFormatProperties */
static inline void
vn_encode_VkSparseImageFormatProperties(struct vn_cs_encoder *enc, const VkSparseImageFormatProperties *val)
{
vn_encode_VkFlags(enc, &val->aspectMask);
vn_encode_VkExtent3D(enc, &val->imageGranularity);
vn_encode_VkFlags(enc, &val->flags);
}
static inline void
vn_decode_VkSparseImageFormatProperties_partial_temp(struct vn_cs_decoder *dec, VkSparseImageFormatProperties *val)
{
/* skip val->aspectMask */
vn_decode_VkExtent3D_partial_temp(dec, &val->imageGranularity);
/* skip val->flags */
}
/* struct VkImageSubresource */
static inline void
vn_decode_VkImageSubresource_temp(struct vn_cs_decoder *dec, VkImageSubresource *val)
{
vn_decode_VkFlags(dec, &val->aspectMask);
vn_decode_uint32_t(dec, &val->mipLevel);
vn_decode_uint32_t(dec, &val->arrayLayer);
}
static inline void
vn_replace_VkImageSubresource_handle(VkImageSubresource *val)
{
/* skip val->aspectMask */
/* skip val->mipLevel */
/* skip val->arrayLayer */
}
/* struct VkOffset3D */
static inline void
vn_decode_VkOffset3D_temp(struct vn_cs_decoder *dec, VkOffset3D *val)
{
vn_decode_int32_t(dec, &val->x);
vn_decode_int32_t(dec, &val->y);
vn_decode_int32_t(dec, &val->z);
}
static inline void
vn_replace_VkOffset3D_handle(VkOffset3D *val)
{
/* skip val->x */
/* skip val->y */
/* skip val->z */
}
/* struct VkSemaphoreTypeCreateInfo chain */
static inline void *
vn_decode_VkSemaphoreTypeCreateInfo_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_VkSemaphoreTypeCreateInfo_self_temp(struct vn_cs_decoder *dec, VkSemaphoreTypeCreateInfo *val)
{
/* skip val->{sType,pNext} */
vn_decode_VkSemaphoreType(dec, &val->semaphoreType);
vn_decode_uint64_t(dec, &val->initialValue);
}
static inline void
vn_decode_VkSemaphoreTypeCreateInfo_temp(struct vn_cs_decoder *dec, VkSemaphoreTypeCreateInfo *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkSemaphoreTypeCreateInfo_pnext_temp(dec);
vn_decode_VkSemaphoreTypeCreateInfo_self_temp(dec, val);
}
static inline void
vn_replace_VkSemaphoreTypeCreateInfo_handle_self(VkSemaphoreTypeCreateInfo *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->semaphoreType */
/* skip val->initialValue */
}
static inline void
vn_replace_VkSemaphoreTypeCreateInfo_handle(VkSemaphoreTypeCreateInfo *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
vn_replace_VkSemaphoreTypeCreateInfo_handle_self((VkSemaphoreTypeCreateInfo *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkImageFormatListCreateInfo chain */
static inline void *
vn_decode_VkImageFormatListCreateInfo_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_VkImageFormatListCreateInfo_self_temp(struct vn_cs_decoder *dec, VkImageFormatListCreateInfo *val)
{
/* skip val->{sType,pNext} */
vn_decode_uint32_t(dec, &val->viewFormatCount);
if (vn_peek_array_size(dec)) {
const size_t array_size = vn_decode_array_size(dec, val->viewFormatCount);
val->pViewFormats = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pViewFormats) * array_size);
if (!val->pViewFormats) return;
vn_decode_VkFormat_array(dec, (VkFormat *)val->pViewFormats, array_size);
} else {
vn_decode_array_size(dec, val->viewFormatCount);
val->pViewFormats = NULL;
}
}
static inline void
vn_decode_VkImageFormatListCreateInfo_temp(struct vn_cs_decoder *dec, VkImageFormatListCreateInfo *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkImageFormatListCreateInfo_pnext_temp(dec);
vn_decode_VkImageFormatListCreateInfo_self_temp(dec, val);
}
static inline void
vn_replace_VkImageFormatListCreateInfo_handle_self(VkImageFormatListCreateInfo *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->viewFormatCount */
/* skip val->pViewFormats */
}
static inline void
vn_replace_VkImageFormatListCreateInfo_handle(VkImageFormatListCreateInfo *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:
vn_replace_VkImageFormatListCreateInfo_handle_self((VkImageFormatListCreateInfo *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkImageStencilUsageCreateInfo chain */
static inline void *
vn_decode_VkImageStencilUsageCreateInfo_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_VkImageStencilUsageCreateInfo_self_temp(struct vn_cs_decoder *dec, VkImageStencilUsageCreateInfo *val)
{
/* skip val->{sType,pNext} */
vn_decode_VkFlags(dec, &val->stencilUsage);
}
static inline void
vn_decode_VkImageStencilUsageCreateInfo_temp(struct vn_cs_decoder *dec, VkImageStencilUsageCreateInfo *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkImageStencilUsageCreateInfo_pnext_temp(dec);
vn_decode_VkImageStencilUsageCreateInfo_self_temp(dec, val);
}
static inline void
vn_replace_VkImageStencilUsageCreateInfo_handle_self(VkImageStencilUsageCreateInfo *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->stencilUsage */
}
static inline void
vn_replace_VkImageStencilUsageCreateInfo_handle(VkImageStencilUsageCreateInfo *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:
vn_replace_VkImageStencilUsageCreateInfo_handle_self((VkImageStencilUsageCreateInfo *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkComponentMapping */
static inline void
vn_encode_VkComponentMapping(struct vn_cs_encoder *enc, const VkComponentMapping *val)
{
vn_encode_VkComponentSwizzle(enc, &val->r);
vn_encode_VkComponentSwizzle(enc, &val->g);
vn_encode_VkComponentSwizzle(enc, &val->b);
vn_encode_VkComponentSwizzle(enc, &val->a);
}
static inline void
vn_decode_VkComponentMapping_temp(struct vn_cs_decoder *dec, VkComponentMapping *val)
{
vn_decode_VkComponentSwizzle(dec, &val->r);
vn_decode_VkComponentSwizzle(dec, &val->g);
vn_decode_VkComponentSwizzle(dec, &val->b);
vn_decode_VkComponentSwizzle(dec, &val->a);
}
static inline void
vn_decode_VkComponentMapping_partial_temp(struct vn_cs_decoder *dec, VkComponentMapping *val)
{
/* skip val->r */
/* skip val->g */
/* skip val->b */
/* skip val->a */
}
static inline void
vn_replace_VkComponentMapping_handle(VkComponentMapping *val)
{
/* skip val->r */
/* skip val->g */
/* skip val->b */
/* skip val->a */
}
/* struct VkImageSubresourceRange */
static inline void
vn_decode_VkImageSubresourceRange_temp(struct vn_cs_decoder *dec, VkImageSubresourceRange *val)
{
vn_decode_VkFlags(dec, &val->aspectMask);
vn_decode_uint32_t(dec, &val->baseMipLevel);
vn_decode_uint32_t(dec, &val->levelCount);
vn_decode_uint32_t(dec, &val->baseArrayLayer);
vn_decode_uint32_t(dec, &val->layerCount);
}
static inline void
vn_replace_VkImageSubresourceRange_handle(VkImageSubresourceRange *val)
{
/* skip val->aspectMask */
/* skip val->baseMipLevel */
/* skip val->levelCount */
/* skip val->baseArrayLayer */
/* skip val->layerCount */
}
/* struct VkSamplerYcbcrConversionInfo chain */
static inline void *
vn_decode_VkSamplerYcbcrConversionInfo_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_VkSamplerYcbcrConversionInfo_self_temp(struct vn_cs_decoder *dec, VkSamplerYcbcrConversionInfo *val)
{
/* skip val->{sType,pNext} */
vn_decode_VkSamplerYcbcrConversion_lookup(dec, &val->conversion);
}
static inline void
vn_decode_VkSamplerYcbcrConversionInfo_temp(struct vn_cs_decoder *dec, VkSamplerYcbcrConversionInfo *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkSamplerYcbcrConversionInfo_pnext_temp(dec);
vn_decode_VkSamplerYcbcrConversionInfo_self_temp(dec, val);
}
static inline void
vn_replace_VkSamplerYcbcrConversionInfo_handle_self(VkSamplerYcbcrConversionInfo *val)
{
/* skip val->sType */
/* skip val->pNext */
vn_replace_VkSamplerYcbcrConversion_handle(&val->conversion);
}
static inline void
vn_replace_VkSamplerYcbcrConversionInfo_handle(VkSamplerYcbcrConversionInfo *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:
vn_replace_VkSamplerYcbcrConversionInfo_handle_self((VkSamplerYcbcrConversionInfo *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkShaderModuleCreateInfo chain */
static inline void *
vn_decode_VkShaderModuleCreateInfo_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_VkShaderModuleCreateInfo_self_temp(struct vn_cs_decoder *dec, VkShaderModuleCreateInfo *val)
{
/* skip val->{sType,pNext} */
vn_decode_VkFlags(dec, &val->flags);
vn_decode_size_t(dec, &val->codeSize);
if (vn_peek_array_size(dec)) {
const size_t array_size = vn_decode_array_size(dec, val->codeSize / 4);
val->pCode = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pCode) * array_size);
if (!val->pCode) return;
vn_decode_uint32_t_array(dec, (uint32_t *)val->pCode, array_size);
} else {
vn_decode_array_size(dec, val->codeSize / 4);
val->pCode = NULL;
}
}
static inline void
vn_decode_VkShaderModuleCreateInfo_temp(struct vn_cs_decoder *dec, VkShaderModuleCreateInfo *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkShaderModuleCreateInfo_pnext_temp(dec);
vn_decode_VkShaderModuleCreateInfo_self_temp(dec, val);
}
static inline void
vn_replace_VkShaderModuleCreateInfo_handle_self(VkShaderModuleCreateInfo *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->flags */
/* skip val->codeSize */
/* skip val->pCode */
}
static inline void
vn_replace_VkShaderModuleCreateInfo_handle(VkShaderModuleCreateInfo *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO:
vn_replace_VkShaderModuleCreateInfo_handle_self((VkShaderModuleCreateInfo *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkViewport */
static inline void
vn_decode_VkViewport_temp(struct vn_cs_decoder *dec, VkViewport *val)
{
vn_decode_float(dec, &val->x);
vn_decode_float(dec, &val->y);
vn_decode_float(dec, &val->width);
vn_decode_float(dec, &val->height);
vn_decode_float(dec, &val->minDepth);
vn_decode_float(dec, &val->maxDepth);
}
static inline void
vn_replace_VkViewport_handle(VkViewport *val)
{
/* skip val->x */
/* skip val->y */
/* skip val->width */
/* skip val->height */
/* skip val->minDepth */
/* skip val->maxDepth */
}
/* struct VkOffset2D */
static inline void
vn_encode_VkOffset2D(struct vn_cs_encoder *enc, const VkOffset2D *val)
{
vn_encode_int32_t(enc, &val->x);
vn_encode_int32_t(enc, &val->y);
}
static inline void
vn_decode_VkOffset2D_temp(struct vn_cs_decoder *dec, VkOffset2D *val)
{
vn_decode_int32_t(dec, &val->x);
vn_decode_int32_t(dec, &val->y);
}
static inline void
vn_decode_VkOffset2D_partial_temp(struct vn_cs_decoder *dec, VkOffset2D *val)
{
/* skip val->x */
/* skip val->y */
}
static inline void
vn_replace_VkOffset2D_handle(VkOffset2D *val)
{
/* skip val->x */
/* skip val->y */
}
/* struct VkExtent2D */
static inline void
vn_encode_VkExtent2D(struct vn_cs_encoder *enc, const VkExtent2D *val)
{
vn_encode_uint32_t(enc, &val->width);
vn_encode_uint32_t(enc, &val->height);
}
static inline void
vn_decode_VkExtent2D_temp(struct vn_cs_decoder *dec, VkExtent2D *val)
{
vn_decode_uint32_t(dec, &val->width);
vn_decode_uint32_t(dec, &val->height);
}
static inline void
vn_decode_VkExtent2D_partial_temp(struct vn_cs_decoder *dec, VkExtent2D *val)
{
/* skip val->width */
/* skip val->height */
}
static inline void
vn_replace_VkExtent2D_handle(VkExtent2D *val)
{
/* skip val->width */
/* skip val->height */
}
/* struct VkRect2D */
static inline void
vn_encode_VkRect2D(struct vn_cs_encoder *enc, const VkRect2D *val)
{
vn_encode_VkOffset2D(enc, &val->offset);
vn_encode_VkExtent2D(enc, &val->extent);
}
static inline void
vn_decode_VkRect2D_temp(struct vn_cs_decoder *dec, VkRect2D *val)
{
vn_decode_VkOffset2D_temp(dec, &val->offset);
vn_decode_VkExtent2D_temp(dec, &val->extent);
}
static inline void
vn_decode_VkRect2D_partial_temp(struct vn_cs_decoder *dec, VkRect2D *val)
{
vn_decode_VkOffset2D_partial_temp(dec, &val->offset);
vn_decode_VkExtent2D_partial_temp(dec, &val->extent);
}
static inline void
vn_replace_VkRect2D_handle(VkRect2D *val)
{
vn_replace_VkOffset2D_handle(&val->offset);
vn_replace_VkExtent2D_handle(&val->extent);
}
/* union VkClearColorValue */
static inline void
vn_decode_VkClearColorValue_temp(struct vn_cs_decoder *dec, VkClearColorValue *val)
{
uint32_t tag;
vn_decode_uint32_t(dec, &tag);
switch (tag) {
case 0:
{
const size_t array_size = vn_decode_array_size(dec, 4);
vn_decode_float_array(dec, val->float32, array_size);
}
break;
case 1:
{
const size_t array_size = vn_decode_array_size(dec, 4);
vn_decode_int32_t_array(dec, val->int32, array_size);
}
break;
case 2:
{
const size_t array_size = vn_decode_array_size(dec, 4);
vn_decode_uint32_t_array(dec, val->uint32, array_size);
}
break;
default:
vn_cs_decoder_set_fatal(dec);
break;
}
}
/* struct VkMutableDescriptorTypeListEXT */
static inline void
vn_decode_VkMutableDescriptorTypeListEXT_temp(struct vn_cs_decoder *dec, VkMutableDescriptorTypeListEXT *val)
{
vn_decode_uint32_t(dec, &val->descriptorTypeCount);
if (vn_peek_array_size(dec)) {
const size_t array_size = vn_decode_array_size(dec, val->descriptorTypeCount);
val->pDescriptorTypes = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pDescriptorTypes) * array_size);
if (!val->pDescriptorTypes) return;
vn_decode_VkDescriptorType_array(dec, (VkDescriptorType *)val->pDescriptorTypes, array_size);
} else {
vn_decode_array_size(dec, val->descriptorTypeCount);
val->pDescriptorTypes = NULL;
}
}
static inline void
vn_replace_VkMutableDescriptorTypeListEXT_handle(VkMutableDescriptorTypeListEXT *val)
{
/* skip val->descriptorTypeCount */
/* skip val->pDescriptorTypes */
}
/* struct VkMutableDescriptorTypeCreateInfoEXT chain */
static inline void *
vn_decode_VkMutableDescriptorTypeCreateInfoEXT_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_VkMutableDescriptorTypeCreateInfoEXT_self_temp(struct vn_cs_decoder *dec, VkMutableDescriptorTypeCreateInfoEXT *val)
{
/* skip val->{sType,pNext} */
vn_decode_uint32_t(dec, &val->mutableDescriptorTypeListCount);
if (vn_peek_array_size(dec)) {
const uint32_t iter_count = vn_decode_array_size(dec, val->mutableDescriptorTypeListCount);
val->pMutableDescriptorTypeLists = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pMutableDescriptorTypeLists) * iter_count);
if (!val->pMutableDescriptorTypeLists) return;
for (uint32_t i = 0; i < iter_count; i++)
vn_decode_VkMutableDescriptorTypeListEXT_temp(dec, &((VkMutableDescriptorTypeListEXT *)val->pMutableDescriptorTypeLists)[i]);
} else {
vn_decode_array_size(dec, val->mutableDescriptorTypeListCount);
val->pMutableDescriptorTypeLists = NULL;
}
}
static inline void
vn_decode_VkMutableDescriptorTypeCreateInfoEXT_temp(struct vn_cs_decoder *dec, VkMutableDescriptorTypeCreateInfoEXT *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkMutableDescriptorTypeCreateInfoEXT_pnext_temp(dec);
vn_decode_VkMutableDescriptorTypeCreateInfoEXT_self_temp(dec, val);
}
static inline void
vn_replace_VkMutableDescriptorTypeCreateInfoEXT_handle_self(VkMutableDescriptorTypeCreateInfoEXT *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->mutableDescriptorTypeListCount */
if (val->pMutableDescriptorTypeLists) {
for (uint32_t i = 0; i < val->mutableDescriptorTypeListCount; i++)
vn_replace_VkMutableDescriptorTypeListEXT_handle(&((VkMutableDescriptorTypeListEXT *)val->pMutableDescriptorTypeLists)[i]);
}
}
static inline void
vn_replace_VkMutableDescriptorTypeCreateInfoEXT_handle(VkMutableDescriptorTypeCreateInfoEXT *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT:
vn_replace_VkMutableDescriptorTypeCreateInfoEXT_handle_self((VkMutableDescriptorTypeCreateInfoEXT *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkDescriptorImageInfo */
static inline void
vn_decode_VkDescriptorImageInfo_temp(struct vn_cs_decoder *dec, VkDescriptorImageInfo *val)
{
vn_decode_VkSampler_lookup(dec, &val->sampler);
vn_decode_VkImageView_lookup(dec, &val->imageView);
vn_decode_VkImageLayout(dec, &val->imageLayout);
}
static inline void
vn_replace_VkDescriptorImageInfo_handle(VkDescriptorImageInfo *val)
{
vn_replace_VkSampler_handle(&val->sampler);
vn_replace_VkImageView_handle(&val->imageView);
/* skip val->imageLayout */
}
/* struct VkDescriptorBufferInfo */
static inline void
vn_decode_VkDescriptorBufferInfo_temp(struct vn_cs_decoder *dec, VkDescriptorBufferInfo *val)
{
vn_decode_VkBuffer_lookup(dec, &val->buffer);
vn_decode_VkDeviceSize(dec, &val->offset);
vn_decode_VkDeviceSize(dec, &val->range);
}
static inline void
vn_replace_VkDescriptorBufferInfo_handle(VkDescriptorBufferInfo *val)
{
vn_replace_VkBuffer_handle(&val->buffer);
/* skip val->offset */
/* skip val->range */
}
/* struct VkWriteDescriptorSetInlineUniformBlock chain */
static inline void *
vn_decode_VkWriteDescriptorSetInlineUniformBlock_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_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)
{
/* skip val->{sType,pNext} */
vn_decode_VkDescriptorSet_lookup(dec, &val->dstSet);
vn_decode_uint32_t(dec, &val->dstBinding);
vn_decode_uint32_t(dec, &val->dstArrayElement);
vn_decode_uint32_t(dec, &val->descriptorCount);
vn_decode_VkDescriptorType(dec, &val->descriptorType);
if (vn_peek_array_size(dec)) {
const uint32_t iter_count = vn_decode_array_size(dec, val->descriptorCount);
val->pImageInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pImageInfo) * iter_count);
if (!val->pImageInfo) return;
for (uint32_t i = 0; i < iter_count; i++)
vn_decode_VkDescriptorImageInfo_temp(dec, &((VkDescriptorImageInfo *)val->pImageInfo)[i]);
} else {
vn_decode_array_size_unchecked(dec);
val->pImageInfo = NULL;
}
if (vn_peek_array_size(dec)) {
const uint32_t iter_count = vn_decode_array_size(dec, val->descriptorCount);
val->pBufferInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pBufferInfo) * iter_count);
if (!val->pBufferInfo) return;
for (uint32_t i = 0; i < iter_count; i++)
vn_decode_VkDescriptorBufferInfo_temp(dec, &((VkDescriptorBufferInfo *)val->pBufferInfo)[i]);
} else {
vn_decode_array_size_unchecked(dec);
val->pBufferInfo = NULL;
}
if (vn_peek_array_size(dec)) {
const uint32_t iter_count = vn_decode_array_size(dec, val->descriptorCount);
val->pTexelBufferView = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pTexelBufferView) * iter_count);
if (!val->pTexelBufferView) return;
for (uint32_t i = 0; i < iter_count; i++)
vn_decode_VkBufferView_lookup(dec, &((VkBufferView *)val->pTexelBufferView)[i]);
} else {
vn_decode_array_size_unchecked(dec);
val->pTexelBufferView = NULL;
}
}
static inline void
vn_decode_VkWriteDescriptorSet_temp(struct vn_cs_decoder *dec, VkWriteDescriptorSet *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkWriteDescriptorSet_pnext_temp(dec);
vn_decode_VkWriteDescriptorSet_self_temp(dec, val);
}
static inline void
vn_replace_VkWriteDescriptorSet_handle_self(VkWriteDescriptorSet *val)
{
/* skip val->sType */
/* skip val->pNext */
vn_replace_VkDescriptorSet_handle(&val->dstSet);
/* skip val->dstBinding */
/* skip val->dstArrayElement */
/* skip val->descriptorCount */
/* skip val->descriptorType */
if (val->pImageInfo) {
for (uint32_t i = 0; i < val->descriptorCount; i++)
vn_replace_VkDescriptorImageInfo_handle(&((VkDescriptorImageInfo *)val->pImageInfo)[i]);
}
if (val->pBufferInfo) {
for (uint32_t i = 0; i < val->descriptorCount; i++)
vn_replace_VkDescriptorBufferInfo_handle(&((VkDescriptorBufferInfo *)val->pBufferInfo)[i]);
}
if (val->pTexelBufferView) {
for (uint32_t i = 0; i < val->descriptorCount; i++)
vn_replace_VkBufferView_handle(&((VkBufferView *)val->pTexelBufferView)[i]);
}
}
static inline void
vn_replace_VkWriteDescriptorSet_handle(VkWriteDescriptorSet *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
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;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkMemoryDedicatedRequirements chain */
static inline void
vn_encode_VkMemoryDedicatedRequirements_pnext(struct vn_cs_encoder *enc, const void *val)
{
/* no known/supported struct */
vn_encode_simple_pointer(enc, NULL);
}
static inline void
vn_encode_VkMemoryDedicatedRequirements_self(struct vn_cs_encoder *enc, const VkMemoryDedicatedRequirements *val)
{
/* skip val->{sType,pNext} */
vn_encode_VkBool32(enc, &val->prefersDedicatedAllocation);
vn_encode_VkBool32(enc, &val->requiresDedicatedAllocation);
}
static inline void
vn_encode_VkMemoryDedicatedRequirements(struct vn_cs_encoder *enc, const VkMemoryDedicatedRequirements *val)
{
assert(val->sType == VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS);
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS });
vn_encode_VkMemoryDedicatedRequirements_pnext(enc, val->pNext);
vn_encode_VkMemoryDedicatedRequirements_self(enc, val);
}
static inline void *
vn_decode_VkMemoryDedicatedRequirements_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_VkMemoryDedicatedRequirements_self_partial_temp(struct vn_cs_decoder *dec, VkMemoryDedicatedRequirements *val)
{
/* skip val->{sType,pNext} */
/* skip val->prefersDedicatedAllocation */
/* skip val->requiresDedicatedAllocation */
}
static inline void
vn_decode_VkMemoryDedicatedRequirements_partial_temp(struct vn_cs_decoder *dec, VkMemoryDedicatedRequirements *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkMemoryDedicatedRequirements_pnext_partial_temp(dec);
vn_decode_VkMemoryDedicatedRequirements_self_partial_temp(dec, val);
}
/* struct VkMemoryRequirements2 chain */
static inline void
vn_encode_VkMemoryRequirements2_pnext(struct vn_cs_encoder *enc, const void *val)
{
const VkBaseInStructure *pnext = val;
while (pnext) {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkMemoryRequirements2_pnext(enc, pnext->pNext);
vn_encode_VkMemoryDedicatedRequirements_self(enc, (const VkMemoryDedicatedRequirements *)pnext);
return;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
}
vn_encode_simple_pointer(enc, NULL);
}
static inline void
vn_encode_VkMemoryRequirements2_self(struct vn_cs_encoder *enc, const VkMemoryRequirements2 *val)
{
/* skip val->{sType,pNext} */
vn_encode_VkMemoryRequirements(enc, &val->memoryRequirements);
}
static inline void
vn_encode_VkMemoryRequirements2(struct vn_cs_encoder *enc, const VkMemoryRequirements2 *val)
{
assert(val->sType == VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2);
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 });
vn_encode_VkMemoryRequirements2_pnext(enc, val->pNext);
vn_encode_VkMemoryRequirements2_self(enc, val);
}
static inline void *
vn_decode_VkMemoryRequirements2_pnext_partial_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_MEMORY_DEDICATED_REQUIREMENTS:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkMemoryDedicatedRequirements));
if (pnext) {
pnext->sType = stype;
pnext->pNext = vn_decode_VkMemoryRequirements2_pnext_partial_temp(dec);
vn_decode_VkMemoryDedicatedRequirements_self_partial_temp(dec, (VkMemoryDedicatedRequirements *)pnext);
}
break;
default:
/* unexpected struct */
pnext = NULL;
vn_cs_decoder_set_fatal(dec);
break;
}
return pnext;
}
static inline void
vn_decode_VkMemoryRequirements2_self_partial_temp(struct vn_cs_decoder *dec, VkMemoryRequirements2 *val)
{
/* skip val->{sType,pNext} */
vn_decode_VkMemoryRequirements_partial_temp(dec, &val->memoryRequirements);
}
static inline void
vn_decode_VkMemoryRequirements2_partial_temp(struct vn_cs_decoder *dec, VkMemoryRequirements2 *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkMemoryRequirements2_pnext_partial_temp(dec);
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 */