Path: blob/21.2-virgl/src/virtio/venus-protocol/vn_protocol_driver_structs.h
4560 views
/* This file is generated by venus-protocol. See vn_protocol_driver.h. */12/*3* Copyright 2020 Google LLC4* SPDX-License-Identifier: MIT5*/67#ifndef VN_PROTOCOL_DRIVER_STRUCTS_H8#define VN_PROTOCOL_DRIVER_STRUCTS_H910#include "vn_protocol_driver_handles.h"1112/*13* These structs/unions/commands are not included14*15* VkAllocationCallbacks16*/1718/* struct VkExtent3D */1920static inline size_t21vn_sizeof_VkExtent3D(const VkExtent3D *val)22{23size_t size = 0;24size += vn_sizeof_uint32_t(&val->width);25size += vn_sizeof_uint32_t(&val->height);26size += vn_sizeof_uint32_t(&val->depth);27return size;28}2930static inline void31vn_encode_VkExtent3D(struct vn_cs_encoder *enc, const VkExtent3D *val)32{33vn_encode_uint32_t(enc, &val->width);34vn_encode_uint32_t(enc, &val->height);35vn_encode_uint32_t(enc, &val->depth);36}3738static inline void39vn_decode_VkExtent3D(struct vn_cs_decoder *dec, VkExtent3D *val)40{41vn_decode_uint32_t(dec, &val->width);42vn_decode_uint32_t(dec, &val->height);43vn_decode_uint32_t(dec, &val->depth);44}4546static inline size_t47vn_sizeof_VkExtent3D_partial(const VkExtent3D *val)48{49size_t size = 0;50/* skip val->width */51/* skip val->height */52/* skip val->depth */53return size;54}5556static inline void57vn_encode_VkExtent3D_partial(struct vn_cs_encoder *enc, const VkExtent3D *val)58{59/* skip val->width */60/* skip val->height */61/* skip val->depth */62}6364/* struct VkLayerProperties */6566static inline size_t67vn_sizeof_VkLayerProperties(const VkLayerProperties *val)68{69size_t size = 0;70size += vn_sizeof_array_size(VK_MAX_EXTENSION_NAME_SIZE);71size += vn_sizeof_blob_array(val->layerName, VK_MAX_EXTENSION_NAME_SIZE);72size += vn_sizeof_uint32_t(&val->specVersion);73size += vn_sizeof_uint32_t(&val->implementationVersion);74size += vn_sizeof_array_size(VK_MAX_DESCRIPTION_SIZE);75size += vn_sizeof_blob_array(val->description, VK_MAX_DESCRIPTION_SIZE);76return size;77}7879static inline void80vn_decode_VkLayerProperties(struct vn_cs_decoder *dec, VkLayerProperties *val)81{82{83const size_t array_size = vn_decode_array_size(dec, VK_MAX_EXTENSION_NAME_SIZE);84vn_decode_blob_array(dec, val->layerName, array_size);85}86vn_decode_uint32_t(dec, &val->specVersion);87vn_decode_uint32_t(dec, &val->implementationVersion);88{89const size_t array_size = vn_decode_array_size(dec, VK_MAX_DESCRIPTION_SIZE);90vn_decode_blob_array(dec, val->description, array_size);91}92}9394static inline size_t95vn_sizeof_VkLayerProperties_partial(const VkLayerProperties *val)96{97size_t size = 0;98/* skip val->layerName */99/* skip val->specVersion */100/* skip val->implementationVersion */101/* skip val->description */102return size;103}104105static inline void106vn_encode_VkLayerProperties_partial(struct vn_cs_encoder *enc, const VkLayerProperties *val)107{108/* skip val->layerName */109/* skip val->specVersion */110/* skip val->implementationVersion */111/* skip val->description */112}113114/* struct VkExtensionProperties */115116static inline size_t117vn_sizeof_VkExtensionProperties(const VkExtensionProperties *val)118{119size_t size = 0;120size += vn_sizeof_array_size(VK_MAX_EXTENSION_NAME_SIZE);121size += vn_sizeof_blob_array(val->extensionName, VK_MAX_EXTENSION_NAME_SIZE);122size += vn_sizeof_uint32_t(&val->specVersion);123return size;124}125126static inline void127vn_decode_VkExtensionProperties(struct vn_cs_decoder *dec, VkExtensionProperties *val)128{129{130const size_t array_size = vn_decode_array_size(dec, VK_MAX_EXTENSION_NAME_SIZE);131vn_decode_blob_array(dec, val->extensionName, array_size);132}133vn_decode_uint32_t(dec, &val->specVersion);134}135136static inline size_t137vn_sizeof_VkExtensionProperties_partial(const VkExtensionProperties *val)138{139size_t size = 0;140/* skip val->extensionName */141/* skip val->specVersion */142return size;143}144145static inline void146vn_encode_VkExtensionProperties_partial(struct vn_cs_encoder *enc, const VkExtensionProperties *val)147{148/* skip val->extensionName */149/* skip val->specVersion */150}151152/* struct VkMemoryRequirements */153154static inline size_t155vn_sizeof_VkMemoryRequirements(const VkMemoryRequirements *val)156{157size_t size = 0;158size += vn_sizeof_VkDeviceSize(&val->size);159size += vn_sizeof_VkDeviceSize(&val->alignment);160size += vn_sizeof_uint32_t(&val->memoryTypeBits);161return size;162}163164static inline void165vn_decode_VkMemoryRequirements(struct vn_cs_decoder *dec, VkMemoryRequirements *val)166{167vn_decode_VkDeviceSize(dec, &val->size);168vn_decode_VkDeviceSize(dec, &val->alignment);169vn_decode_uint32_t(dec, &val->memoryTypeBits);170}171172static inline size_t173vn_sizeof_VkMemoryRequirements_partial(const VkMemoryRequirements *val)174{175size_t size = 0;176/* skip val->size */177/* skip val->alignment */178/* skip val->memoryTypeBits */179return size;180}181182static inline void183vn_encode_VkMemoryRequirements_partial(struct vn_cs_encoder *enc, const VkMemoryRequirements *val)184{185/* skip val->size */186/* skip val->alignment */187/* skip val->memoryTypeBits */188}189190/* struct VkSparseImageFormatProperties */191192static inline size_t193vn_sizeof_VkSparseImageFormatProperties(const VkSparseImageFormatProperties *val)194{195size_t size = 0;196size += vn_sizeof_VkFlags(&val->aspectMask);197size += vn_sizeof_VkExtent3D(&val->imageGranularity);198size += vn_sizeof_VkFlags(&val->flags);199return size;200}201202static inline void203vn_decode_VkSparseImageFormatProperties(struct vn_cs_decoder *dec, VkSparseImageFormatProperties *val)204{205vn_decode_VkFlags(dec, &val->aspectMask);206vn_decode_VkExtent3D(dec, &val->imageGranularity);207vn_decode_VkFlags(dec, &val->flags);208}209210static inline size_t211vn_sizeof_VkSparseImageFormatProperties_partial(const VkSparseImageFormatProperties *val)212{213size_t size = 0;214/* skip val->aspectMask */215size += vn_sizeof_VkExtent3D_partial(&val->imageGranularity);216/* skip val->flags */217return size;218}219220static inline void221vn_encode_VkSparseImageFormatProperties_partial(struct vn_cs_encoder *enc, const VkSparseImageFormatProperties *val)222{223/* skip val->aspectMask */224vn_encode_VkExtent3D_partial(enc, &val->imageGranularity);225/* skip val->flags */226}227228/* struct VkImageSubresource */229230static inline size_t231vn_sizeof_VkImageSubresource(const VkImageSubresource *val)232{233size_t size = 0;234size += vn_sizeof_VkFlags(&val->aspectMask);235size += vn_sizeof_uint32_t(&val->mipLevel);236size += vn_sizeof_uint32_t(&val->arrayLayer);237return size;238}239240static inline void241vn_encode_VkImageSubresource(struct vn_cs_encoder *enc, const VkImageSubresource *val)242{243vn_encode_VkFlags(enc, &val->aspectMask);244vn_encode_uint32_t(enc, &val->mipLevel);245vn_encode_uint32_t(enc, &val->arrayLayer);246}247248/* struct VkOffset3D */249250static inline size_t251vn_sizeof_VkOffset3D(const VkOffset3D *val)252{253size_t size = 0;254size += vn_sizeof_int32_t(&val->x);255size += vn_sizeof_int32_t(&val->y);256size += vn_sizeof_int32_t(&val->z);257return size;258}259260static inline void261vn_encode_VkOffset3D(struct vn_cs_encoder *enc, const VkOffset3D *val)262{263vn_encode_int32_t(enc, &val->x);264vn_encode_int32_t(enc, &val->y);265vn_encode_int32_t(enc, &val->z);266}267268/* struct VkSemaphoreTypeCreateInfo chain */269270static inline size_t271vn_sizeof_VkSemaphoreTypeCreateInfo_pnext(const void *val)272{273/* no known/supported struct */274return vn_sizeof_simple_pointer(NULL);275}276277static inline size_t278vn_sizeof_VkSemaphoreTypeCreateInfo_self(const VkSemaphoreTypeCreateInfo *val)279{280size_t size = 0;281/* skip val->{sType,pNext} */282size += vn_sizeof_VkSemaphoreType(&val->semaphoreType);283size += vn_sizeof_uint64_t(&val->initialValue);284return size;285}286287static inline size_t288vn_sizeof_VkSemaphoreTypeCreateInfo(const VkSemaphoreTypeCreateInfo *val)289{290size_t size = 0;291292size += vn_sizeof_VkStructureType(&val->sType);293size += vn_sizeof_VkSemaphoreTypeCreateInfo_pnext(val->pNext);294size += vn_sizeof_VkSemaphoreTypeCreateInfo_self(val);295296return size;297}298299static inline void300vn_encode_VkSemaphoreTypeCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)301{302/* no known/supported struct */303vn_encode_simple_pointer(enc, NULL);304}305306static inline void307vn_encode_VkSemaphoreTypeCreateInfo_self(struct vn_cs_encoder *enc, const VkSemaphoreTypeCreateInfo *val)308{309/* skip val->{sType,pNext} */310vn_encode_VkSemaphoreType(enc, &val->semaphoreType);311vn_encode_uint64_t(enc, &val->initialValue);312}313314static inline void315vn_encode_VkSemaphoreTypeCreateInfo(struct vn_cs_encoder *enc, const VkSemaphoreTypeCreateInfo *val)316{317assert(val->sType == VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO);318vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO });319vn_encode_VkSemaphoreTypeCreateInfo_pnext(enc, val->pNext);320vn_encode_VkSemaphoreTypeCreateInfo_self(enc, val);321}322323/* struct VkImageFormatListCreateInfo chain */324325static inline size_t326vn_sizeof_VkImageFormatListCreateInfo_pnext(const void *val)327{328/* no known/supported struct */329return vn_sizeof_simple_pointer(NULL);330}331332static inline size_t333vn_sizeof_VkImageFormatListCreateInfo_self(const VkImageFormatListCreateInfo *val)334{335size_t size = 0;336/* skip val->{sType,pNext} */337size += vn_sizeof_uint32_t(&val->viewFormatCount);338if (val->pViewFormats) {339size += vn_sizeof_array_size(val->viewFormatCount);340size += vn_sizeof_VkFormat_array(val->pViewFormats, val->viewFormatCount);341} else {342size += vn_sizeof_array_size(0);343}344return size;345}346347static inline size_t348vn_sizeof_VkImageFormatListCreateInfo(const VkImageFormatListCreateInfo *val)349{350size_t size = 0;351352size += vn_sizeof_VkStructureType(&val->sType);353size += vn_sizeof_VkImageFormatListCreateInfo_pnext(val->pNext);354size += vn_sizeof_VkImageFormatListCreateInfo_self(val);355356return size;357}358359static inline void360vn_encode_VkImageFormatListCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)361{362/* no known/supported struct */363vn_encode_simple_pointer(enc, NULL);364}365366static inline void367vn_encode_VkImageFormatListCreateInfo_self(struct vn_cs_encoder *enc, const VkImageFormatListCreateInfo *val)368{369/* skip val->{sType,pNext} */370vn_encode_uint32_t(enc, &val->viewFormatCount);371if (val->pViewFormats) {372vn_encode_array_size(enc, val->viewFormatCount);373vn_encode_VkFormat_array(enc, val->pViewFormats, val->viewFormatCount);374} else {375vn_encode_array_size(enc, 0);376}377}378379static inline void380vn_encode_VkImageFormatListCreateInfo(struct vn_cs_encoder *enc, const VkImageFormatListCreateInfo *val)381{382assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO);383vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO });384vn_encode_VkImageFormatListCreateInfo_pnext(enc, val->pNext);385vn_encode_VkImageFormatListCreateInfo_self(enc, val);386}387388/* struct VkImageStencilUsageCreateInfo chain */389390static inline size_t391vn_sizeof_VkImageStencilUsageCreateInfo_pnext(const void *val)392{393/* no known/supported struct */394return vn_sizeof_simple_pointer(NULL);395}396397static inline size_t398vn_sizeof_VkImageStencilUsageCreateInfo_self(const VkImageStencilUsageCreateInfo *val)399{400size_t size = 0;401/* skip val->{sType,pNext} */402size += vn_sizeof_VkFlags(&val->stencilUsage);403return size;404}405406static inline size_t407vn_sizeof_VkImageStencilUsageCreateInfo(const VkImageStencilUsageCreateInfo *val)408{409size_t size = 0;410411size += vn_sizeof_VkStructureType(&val->sType);412size += vn_sizeof_VkImageStencilUsageCreateInfo_pnext(val->pNext);413size += vn_sizeof_VkImageStencilUsageCreateInfo_self(val);414415return size;416}417418static inline void419vn_encode_VkImageStencilUsageCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)420{421/* no known/supported struct */422vn_encode_simple_pointer(enc, NULL);423}424425static inline void426vn_encode_VkImageStencilUsageCreateInfo_self(struct vn_cs_encoder *enc, const VkImageStencilUsageCreateInfo *val)427{428/* skip val->{sType,pNext} */429vn_encode_VkFlags(enc, &val->stencilUsage);430}431432static inline void433vn_encode_VkImageStencilUsageCreateInfo(struct vn_cs_encoder *enc, const VkImageStencilUsageCreateInfo *val)434{435assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO);436vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO });437vn_encode_VkImageStencilUsageCreateInfo_pnext(enc, val->pNext);438vn_encode_VkImageStencilUsageCreateInfo_self(enc, val);439}440441/* struct VkComponentMapping */442443static inline size_t444vn_sizeof_VkComponentMapping(const VkComponentMapping *val)445{446size_t size = 0;447size += vn_sizeof_VkComponentSwizzle(&val->r);448size += vn_sizeof_VkComponentSwizzle(&val->g);449size += vn_sizeof_VkComponentSwizzle(&val->b);450size += vn_sizeof_VkComponentSwizzle(&val->a);451return size;452}453454static inline void455vn_encode_VkComponentMapping(struct vn_cs_encoder *enc, const VkComponentMapping *val)456{457vn_encode_VkComponentSwizzle(enc, &val->r);458vn_encode_VkComponentSwizzle(enc, &val->g);459vn_encode_VkComponentSwizzle(enc, &val->b);460vn_encode_VkComponentSwizzle(enc, &val->a);461}462463static inline void464vn_decode_VkComponentMapping(struct vn_cs_decoder *dec, VkComponentMapping *val)465{466vn_decode_VkComponentSwizzle(dec, &val->r);467vn_decode_VkComponentSwizzle(dec, &val->g);468vn_decode_VkComponentSwizzle(dec, &val->b);469vn_decode_VkComponentSwizzle(dec, &val->a);470}471472static inline size_t473vn_sizeof_VkComponentMapping_partial(const VkComponentMapping *val)474{475size_t size = 0;476/* skip val->r */477/* skip val->g */478/* skip val->b */479/* skip val->a */480return size;481}482483static inline void484vn_encode_VkComponentMapping_partial(struct vn_cs_encoder *enc, const VkComponentMapping *val)485{486/* skip val->r */487/* skip val->g */488/* skip val->b */489/* skip val->a */490}491492/* struct VkImageSubresourceRange */493494static inline size_t495vn_sizeof_VkImageSubresourceRange(const VkImageSubresourceRange *val)496{497size_t size = 0;498size += vn_sizeof_VkFlags(&val->aspectMask);499size += vn_sizeof_uint32_t(&val->baseMipLevel);500size += vn_sizeof_uint32_t(&val->levelCount);501size += vn_sizeof_uint32_t(&val->baseArrayLayer);502size += vn_sizeof_uint32_t(&val->layerCount);503return size;504}505506static inline void507vn_encode_VkImageSubresourceRange(struct vn_cs_encoder *enc, const VkImageSubresourceRange *val)508{509vn_encode_VkFlags(enc, &val->aspectMask);510vn_encode_uint32_t(enc, &val->baseMipLevel);511vn_encode_uint32_t(enc, &val->levelCount);512vn_encode_uint32_t(enc, &val->baseArrayLayer);513vn_encode_uint32_t(enc, &val->layerCount);514}515516/* struct VkSamplerYcbcrConversionInfo chain */517518static inline size_t519vn_sizeof_VkSamplerYcbcrConversionInfo_pnext(const void *val)520{521/* no known/supported struct */522return vn_sizeof_simple_pointer(NULL);523}524525static inline size_t526vn_sizeof_VkSamplerYcbcrConversionInfo_self(const VkSamplerYcbcrConversionInfo *val)527{528size_t size = 0;529/* skip val->{sType,pNext} */530size += vn_sizeof_VkSamplerYcbcrConversion(&val->conversion);531return size;532}533534static inline size_t535vn_sizeof_VkSamplerYcbcrConversionInfo(const VkSamplerYcbcrConversionInfo *val)536{537size_t size = 0;538539size += vn_sizeof_VkStructureType(&val->sType);540size += vn_sizeof_VkSamplerYcbcrConversionInfo_pnext(val->pNext);541size += vn_sizeof_VkSamplerYcbcrConversionInfo_self(val);542543return size;544}545546static inline void547vn_encode_VkSamplerYcbcrConversionInfo_pnext(struct vn_cs_encoder *enc, const void *val)548{549/* no known/supported struct */550vn_encode_simple_pointer(enc, NULL);551}552553static inline void554vn_encode_VkSamplerYcbcrConversionInfo_self(struct vn_cs_encoder *enc, const VkSamplerYcbcrConversionInfo *val)555{556/* skip val->{sType,pNext} */557vn_encode_VkSamplerYcbcrConversion(enc, &val->conversion);558}559560static inline void561vn_encode_VkSamplerYcbcrConversionInfo(struct vn_cs_encoder *enc, const VkSamplerYcbcrConversionInfo *val)562{563assert(val->sType == VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO);564vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO });565vn_encode_VkSamplerYcbcrConversionInfo_pnext(enc, val->pNext);566vn_encode_VkSamplerYcbcrConversionInfo_self(enc, val);567}568569/* struct VkViewport */570571static inline size_t572vn_sizeof_VkViewport(const VkViewport *val)573{574size_t size = 0;575size += vn_sizeof_float(&val->x);576size += vn_sizeof_float(&val->y);577size += vn_sizeof_float(&val->width);578size += vn_sizeof_float(&val->height);579size += vn_sizeof_float(&val->minDepth);580size += vn_sizeof_float(&val->maxDepth);581return size;582}583584static inline void585vn_encode_VkViewport(struct vn_cs_encoder *enc, const VkViewport *val)586{587vn_encode_float(enc, &val->x);588vn_encode_float(enc, &val->y);589vn_encode_float(enc, &val->width);590vn_encode_float(enc, &val->height);591vn_encode_float(enc, &val->minDepth);592vn_encode_float(enc, &val->maxDepth);593}594595/* struct VkOffset2D */596597static inline size_t598vn_sizeof_VkOffset2D(const VkOffset2D *val)599{600size_t size = 0;601size += vn_sizeof_int32_t(&val->x);602size += vn_sizeof_int32_t(&val->y);603return size;604}605606static inline void607vn_encode_VkOffset2D(struct vn_cs_encoder *enc, const VkOffset2D *val)608{609vn_encode_int32_t(enc, &val->x);610vn_encode_int32_t(enc, &val->y);611}612613static inline void614vn_decode_VkOffset2D(struct vn_cs_decoder *dec, VkOffset2D *val)615{616vn_decode_int32_t(dec, &val->x);617vn_decode_int32_t(dec, &val->y);618}619620static inline size_t621vn_sizeof_VkOffset2D_partial(const VkOffset2D *val)622{623size_t size = 0;624/* skip val->x */625/* skip val->y */626return size;627}628629static inline void630vn_encode_VkOffset2D_partial(struct vn_cs_encoder *enc, const VkOffset2D *val)631{632/* skip val->x */633/* skip val->y */634}635636/* struct VkExtent2D */637638static inline size_t639vn_sizeof_VkExtent2D(const VkExtent2D *val)640{641size_t size = 0;642size += vn_sizeof_uint32_t(&val->width);643size += vn_sizeof_uint32_t(&val->height);644return size;645}646647static inline void648vn_encode_VkExtent2D(struct vn_cs_encoder *enc, const VkExtent2D *val)649{650vn_encode_uint32_t(enc, &val->width);651vn_encode_uint32_t(enc, &val->height);652}653654static inline void655vn_decode_VkExtent2D(struct vn_cs_decoder *dec, VkExtent2D *val)656{657vn_decode_uint32_t(dec, &val->width);658vn_decode_uint32_t(dec, &val->height);659}660661static inline size_t662vn_sizeof_VkExtent2D_partial(const VkExtent2D *val)663{664size_t size = 0;665/* skip val->width */666/* skip val->height */667return size;668}669670static inline void671vn_encode_VkExtent2D_partial(struct vn_cs_encoder *enc, const VkExtent2D *val)672{673/* skip val->width */674/* skip val->height */675}676677/* struct VkRect2D */678679static inline size_t680vn_sizeof_VkRect2D(const VkRect2D *val)681{682size_t size = 0;683size += vn_sizeof_VkOffset2D(&val->offset);684size += vn_sizeof_VkExtent2D(&val->extent);685return size;686}687688static inline void689vn_encode_VkRect2D(struct vn_cs_encoder *enc, const VkRect2D *val)690{691vn_encode_VkOffset2D(enc, &val->offset);692vn_encode_VkExtent2D(enc, &val->extent);693}694695static inline void696vn_decode_VkRect2D(struct vn_cs_decoder *dec, VkRect2D *val)697{698vn_decode_VkOffset2D(dec, &val->offset);699vn_decode_VkExtent2D(dec, &val->extent);700}701702static inline size_t703vn_sizeof_VkRect2D_partial(const VkRect2D *val)704{705size_t size = 0;706size += vn_sizeof_VkOffset2D_partial(&val->offset);707size += vn_sizeof_VkExtent2D_partial(&val->extent);708return size;709}710711static inline void712vn_encode_VkRect2D_partial(struct vn_cs_encoder *enc, const VkRect2D *val)713{714vn_encode_VkOffset2D_partial(enc, &val->offset);715vn_encode_VkExtent2D_partial(enc, &val->extent);716}717718/* struct VkMemoryDedicatedRequirements chain */719720static inline size_t721vn_sizeof_VkMemoryDedicatedRequirements_pnext(const void *val)722{723/* no known/supported struct */724return vn_sizeof_simple_pointer(NULL);725}726727static inline size_t728vn_sizeof_VkMemoryDedicatedRequirements_self(const VkMemoryDedicatedRequirements *val)729{730size_t size = 0;731/* skip val->{sType,pNext} */732size += vn_sizeof_VkBool32(&val->prefersDedicatedAllocation);733size += vn_sizeof_VkBool32(&val->requiresDedicatedAllocation);734return size;735}736737static inline size_t738vn_sizeof_VkMemoryDedicatedRequirements(const VkMemoryDedicatedRequirements *val)739{740size_t size = 0;741742size += vn_sizeof_VkStructureType(&val->sType);743size += vn_sizeof_VkMemoryDedicatedRequirements_pnext(val->pNext);744size += vn_sizeof_VkMemoryDedicatedRequirements_self(val);745746return size;747}748749static inline void750vn_decode_VkMemoryDedicatedRequirements_pnext(struct vn_cs_decoder *dec, const void *val)751{752/* no known/supported struct */753if (vn_decode_simple_pointer(dec))754assert(false);755}756757static inline void758vn_decode_VkMemoryDedicatedRequirements_self(struct vn_cs_decoder *dec, VkMemoryDedicatedRequirements *val)759{760/* skip val->{sType,pNext} */761vn_decode_VkBool32(dec, &val->prefersDedicatedAllocation);762vn_decode_VkBool32(dec, &val->requiresDedicatedAllocation);763}764765static inline void766vn_decode_VkMemoryDedicatedRequirements(struct vn_cs_decoder *dec, VkMemoryDedicatedRequirements *val)767{768VkStructureType stype;769vn_decode_VkStructureType(dec, &stype);770assert(stype == VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS);771772assert(val->sType == stype);773vn_decode_VkMemoryDedicatedRequirements_pnext(dec, val->pNext);774vn_decode_VkMemoryDedicatedRequirements_self(dec, val);775}776777static inline size_t778vn_sizeof_VkMemoryDedicatedRequirements_pnext_partial(const void *val)779{780/* no known/supported struct */781return vn_sizeof_simple_pointer(NULL);782}783784static inline size_t785vn_sizeof_VkMemoryDedicatedRequirements_self_partial(const VkMemoryDedicatedRequirements *val)786{787size_t size = 0;788/* skip val->{sType,pNext} */789/* skip val->prefersDedicatedAllocation */790/* skip val->requiresDedicatedAllocation */791return size;792}793794static inline size_t795vn_sizeof_VkMemoryDedicatedRequirements_partial(const VkMemoryDedicatedRequirements *val)796{797size_t size = 0;798799size += vn_sizeof_VkStructureType(&val->sType);800size += vn_sizeof_VkMemoryDedicatedRequirements_pnext_partial(val->pNext);801size += vn_sizeof_VkMemoryDedicatedRequirements_self_partial(val);802803return size;804}805806static inline void807vn_encode_VkMemoryDedicatedRequirements_pnext_partial(struct vn_cs_encoder *enc, const void *val)808{809/* no known/supported struct */810vn_encode_simple_pointer(enc, NULL);811}812813static inline void814vn_encode_VkMemoryDedicatedRequirements_self_partial(struct vn_cs_encoder *enc, const VkMemoryDedicatedRequirements *val)815{816/* skip val->{sType,pNext} */817/* skip val->prefersDedicatedAllocation */818/* skip val->requiresDedicatedAllocation */819}820821static inline void822vn_encode_VkMemoryDedicatedRequirements_partial(struct vn_cs_encoder *enc, const VkMemoryDedicatedRequirements *val)823{824assert(val->sType == VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS);825vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS });826vn_encode_VkMemoryDedicatedRequirements_pnext_partial(enc, val->pNext);827vn_encode_VkMemoryDedicatedRequirements_self_partial(enc, val);828}829830/* struct VkMemoryRequirements2 chain */831832static inline size_t833vn_sizeof_VkMemoryRequirements2_pnext(const void *val)834{835const VkBaseInStructure *pnext = val;836size_t size = 0;837838while (pnext) {839switch ((int32_t)pnext->sType) {840case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:841size += vn_sizeof_simple_pointer(pnext);842size += vn_sizeof_VkStructureType(&pnext->sType);843size += vn_sizeof_VkMemoryRequirements2_pnext(pnext->pNext);844size += vn_sizeof_VkMemoryDedicatedRequirements_self((const VkMemoryDedicatedRequirements *)pnext);845return size;846default:847/* ignore unknown/unsupported struct */848break;849}850pnext = pnext->pNext;851}852853return vn_sizeof_simple_pointer(NULL);854}855856static inline size_t857vn_sizeof_VkMemoryRequirements2_self(const VkMemoryRequirements2 *val)858{859size_t size = 0;860/* skip val->{sType,pNext} */861size += vn_sizeof_VkMemoryRequirements(&val->memoryRequirements);862return size;863}864865static inline size_t866vn_sizeof_VkMemoryRequirements2(const VkMemoryRequirements2 *val)867{868size_t size = 0;869870size += vn_sizeof_VkStructureType(&val->sType);871size += vn_sizeof_VkMemoryRequirements2_pnext(val->pNext);872size += vn_sizeof_VkMemoryRequirements2_self(val);873874return size;875}876877static inline void878vn_decode_VkMemoryRequirements2_pnext(struct vn_cs_decoder *dec, const void *val)879{880VkBaseOutStructure *pnext = (VkBaseOutStructure *)val;881VkStructureType stype;882883if (!vn_decode_simple_pointer(dec))884return;885886vn_decode_VkStructureType(dec, &stype);887while (true) {888assert(pnext);889if (pnext->sType == stype)890break;891}892893switch ((int32_t)pnext->sType) {894case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:895vn_decode_VkMemoryRequirements2_pnext(dec, pnext->pNext);896vn_decode_VkMemoryDedicatedRequirements_self(dec, (VkMemoryDedicatedRequirements *)pnext);897break;898default:899assert(false);900break;901}902}903904static inline void905vn_decode_VkMemoryRequirements2_self(struct vn_cs_decoder *dec, VkMemoryRequirements2 *val)906{907/* skip val->{sType,pNext} */908vn_decode_VkMemoryRequirements(dec, &val->memoryRequirements);909}910911static inline void912vn_decode_VkMemoryRequirements2(struct vn_cs_decoder *dec, VkMemoryRequirements2 *val)913{914VkStructureType stype;915vn_decode_VkStructureType(dec, &stype);916assert(stype == VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2);917918assert(val->sType == stype);919vn_decode_VkMemoryRequirements2_pnext(dec, val->pNext);920vn_decode_VkMemoryRequirements2_self(dec, val);921}922923static inline size_t924vn_sizeof_VkMemoryRequirements2_pnext_partial(const void *val)925{926const VkBaseInStructure *pnext = val;927size_t size = 0;928929while (pnext) {930switch ((int32_t)pnext->sType) {931case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:932size += vn_sizeof_simple_pointer(pnext);933size += vn_sizeof_VkStructureType(&pnext->sType);934size += vn_sizeof_VkMemoryRequirements2_pnext_partial(pnext->pNext);935size += vn_sizeof_VkMemoryDedicatedRequirements_self_partial((const VkMemoryDedicatedRequirements *)pnext);936return size;937default:938/* ignore unknown/unsupported struct */939break;940}941pnext = pnext->pNext;942}943944return vn_sizeof_simple_pointer(NULL);945}946947static inline size_t948vn_sizeof_VkMemoryRequirements2_self_partial(const VkMemoryRequirements2 *val)949{950size_t size = 0;951/* skip val->{sType,pNext} */952size += vn_sizeof_VkMemoryRequirements_partial(&val->memoryRequirements);953return size;954}955956static inline size_t957vn_sizeof_VkMemoryRequirements2_partial(const VkMemoryRequirements2 *val)958{959size_t size = 0;960961size += vn_sizeof_VkStructureType(&val->sType);962size += vn_sizeof_VkMemoryRequirements2_pnext_partial(val->pNext);963size += vn_sizeof_VkMemoryRequirements2_self_partial(val);964965return size;966}967968static inline void969vn_encode_VkMemoryRequirements2_pnext_partial(struct vn_cs_encoder *enc, const void *val)970{971const VkBaseInStructure *pnext = val;972973while (pnext) {974switch ((int32_t)pnext->sType) {975case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:976vn_encode_simple_pointer(enc, pnext);977vn_encode_VkStructureType(enc, &pnext->sType);978vn_encode_VkMemoryRequirements2_pnext_partial(enc, pnext->pNext);979vn_encode_VkMemoryDedicatedRequirements_self_partial(enc, (const VkMemoryDedicatedRequirements *)pnext);980return;981default:982/* ignore unknown/unsupported struct */983break;984}985pnext = pnext->pNext;986}987988vn_encode_simple_pointer(enc, NULL);989}990991static inline void992vn_encode_VkMemoryRequirements2_self_partial(struct vn_cs_encoder *enc, const VkMemoryRequirements2 *val)993{994/* skip val->{sType,pNext} */995vn_encode_VkMemoryRequirements_partial(enc, &val->memoryRequirements);996}997998static inline void999vn_encode_VkMemoryRequirements2_partial(struct vn_cs_encoder *enc, const VkMemoryRequirements2 *val)1000{1001assert(val->sType == VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2);1002vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 });1003vn_encode_VkMemoryRequirements2_pnext_partial(enc, val->pNext);1004vn_encode_VkMemoryRequirements2_self_partial(enc, val);1005}10061007#endif /* VN_PROTOCOL_DRIVER_STRUCTS_H */100810091010