Path: blob/21.2-virgl/src/virtio/venus-protocol/vn_protocol_driver_image.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_IMAGE_H8#define VN_PROTOCOL_DRIVER_IMAGE_H910#include "vn_device.h"11#include "vn_protocol_driver_structs.h"1213/* struct VkSparseImageMemoryRequirements */1415static inline size_t16vn_sizeof_VkSparseImageMemoryRequirements(const VkSparseImageMemoryRequirements *val)17{18size_t size = 0;19size += vn_sizeof_VkSparseImageFormatProperties(&val->formatProperties);20size += vn_sizeof_uint32_t(&val->imageMipTailFirstLod);21size += vn_sizeof_VkDeviceSize(&val->imageMipTailSize);22size += vn_sizeof_VkDeviceSize(&val->imageMipTailOffset);23size += vn_sizeof_VkDeviceSize(&val->imageMipTailStride);24return size;25}2627static inline void28vn_decode_VkSparseImageMemoryRequirements(struct vn_cs_decoder *dec, VkSparseImageMemoryRequirements *val)29{30vn_decode_VkSparseImageFormatProperties(dec, &val->formatProperties);31vn_decode_uint32_t(dec, &val->imageMipTailFirstLod);32vn_decode_VkDeviceSize(dec, &val->imageMipTailSize);33vn_decode_VkDeviceSize(dec, &val->imageMipTailOffset);34vn_decode_VkDeviceSize(dec, &val->imageMipTailStride);35}3637static inline size_t38vn_sizeof_VkSparseImageMemoryRequirements_partial(const VkSparseImageMemoryRequirements *val)39{40size_t size = 0;41size += vn_sizeof_VkSparseImageFormatProperties_partial(&val->formatProperties);42/* skip val->imageMipTailFirstLod */43/* skip val->imageMipTailSize */44/* skip val->imageMipTailOffset */45/* skip val->imageMipTailStride */46return size;47}4849static inline void50vn_encode_VkSparseImageMemoryRequirements_partial(struct vn_cs_encoder *enc, const VkSparseImageMemoryRequirements *val)51{52vn_encode_VkSparseImageFormatProperties_partial(enc, &val->formatProperties);53/* skip val->imageMipTailFirstLod */54/* skip val->imageMipTailSize */55/* skip val->imageMipTailOffset */56/* skip val->imageMipTailStride */57}5859/* struct VkExternalMemoryImageCreateInfo chain */6061static inline size_t62vn_sizeof_VkExternalMemoryImageCreateInfo_pnext(const void *val)63{64/* no known/supported struct */65return vn_sizeof_simple_pointer(NULL);66}6768static inline size_t69vn_sizeof_VkExternalMemoryImageCreateInfo_self(const VkExternalMemoryImageCreateInfo *val)70{71size_t size = 0;72/* skip val->{sType,pNext} */73size += vn_sizeof_VkFlags(&val->handleTypes);74return size;75}7677static inline size_t78vn_sizeof_VkExternalMemoryImageCreateInfo(const VkExternalMemoryImageCreateInfo *val)79{80size_t size = 0;8182size += vn_sizeof_VkStructureType(&val->sType);83size += vn_sizeof_VkExternalMemoryImageCreateInfo_pnext(val->pNext);84size += vn_sizeof_VkExternalMemoryImageCreateInfo_self(val);8586return size;87}8889static inline void90vn_encode_VkExternalMemoryImageCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)91{92/* no known/supported struct */93vn_encode_simple_pointer(enc, NULL);94}9596static inline void97vn_encode_VkExternalMemoryImageCreateInfo_self(struct vn_cs_encoder *enc, const VkExternalMemoryImageCreateInfo *val)98{99/* skip val->{sType,pNext} */100vn_encode_VkFlags(enc, &val->handleTypes);101}102103static inline void104vn_encode_VkExternalMemoryImageCreateInfo(struct vn_cs_encoder *enc, const VkExternalMemoryImageCreateInfo *val)105{106assert(val->sType == VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO);107vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO });108vn_encode_VkExternalMemoryImageCreateInfo_pnext(enc, val->pNext);109vn_encode_VkExternalMemoryImageCreateInfo_self(enc, val);110}111112/* struct VkImageDrmFormatModifierListCreateInfoEXT chain */113114static inline size_t115vn_sizeof_VkImageDrmFormatModifierListCreateInfoEXT_pnext(const void *val)116{117/* no known/supported struct */118return vn_sizeof_simple_pointer(NULL);119}120121static inline size_t122vn_sizeof_VkImageDrmFormatModifierListCreateInfoEXT_self(const VkImageDrmFormatModifierListCreateInfoEXT *val)123{124size_t size = 0;125/* skip val->{sType,pNext} */126size += vn_sizeof_uint32_t(&val->drmFormatModifierCount);127if (val->pDrmFormatModifiers) {128size += vn_sizeof_array_size(val->drmFormatModifierCount);129size += vn_sizeof_uint64_t_array(val->pDrmFormatModifiers, val->drmFormatModifierCount);130} else {131size += vn_sizeof_array_size(0);132}133return size;134}135136static inline size_t137vn_sizeof_VkImageDrmFormatModifierListCreateInfoEXT(const VkImageDrmFormatModifierListCreateInfoEXT *val)138{139size_t size = 0;140141size += vn_sizeof_VkStructureType(&val->sType);142size += vn_sizeof_VkImageDrmFormatModifierListCreateInfoEXT_pnext(val->pNext);143size += vn_sizeof_VkImageDrmFormatModifierListCreateInfoEXT_self(val);144145return size;146}147148static inline void149vn_encode_VkImageDrmFormatModifierListCreateInfoEXT_pnext(struct vn_cs_encoder *enc, const void *val)150{151/* no known/supported struct */152vn_encode_simple_pointer(enc, NULL);153}154155static inline void156vn_encode_VkImageDrmFormatModifierListCreateInfoEXT_self(struct vn_cs_encoder *enc, const VkImageDrmFormatModifierListCreateInfoEXT *val)157{158/* skip val->{sType,pNext} */159vn_encode_uint32_t(enc, &val->drmFormatModifierCount);160if (val->pDrmFormatModifiers) {161vn_encode_array_size(enc, val->drmFormatModifierCount);162vn_encode_uint64_t_array(enc, val->pDrmFormatModifiers, val->drmFormatModifierCount);163} else {164vn_encode_array_size(enc, 0);165}166}167168static inline void169vn_encode_VkImageDrmFormatModifierListCreateInfoEXT(struct vn_cs_encoder *enc, const VkImageDrmFormatModifierListCreateInfoEXT *val)170{171assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT);172vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT });173vn_encode_VkImageDrmFormatModifierListCreateInfoEXT_pnext(enc, val->pNext);174vn_encode_VkImageDrmFormatModifierListCreateInfoEXT_self(enc, val);175}176177/* struct VkSubresourceLayout */178179static inline size_t180vn_sizeof_VkSubresourceLayout(const VkSubresourceLayout *val)181{182size_t size = 0;183size += vn_sizeof_VkDeviceSize(&val->offset);184size += vn_sizeof_VkDeviceSize(&val->size);185size += vn_sizeof_VkDeviceSize(&val->rowPitch);186size += vn_sizeof_VkDeviceSize(&val->arrayPitch);187size += vn_sizeof_VkDeviceSize(&val->depthPitch);188return size;189}190191static inline void192vn_encode_VkSubresourceLayout(struct vn_cs_encoder *enc, const VkSubresourceLayout *val)193{194vn_encode_VkDeviceSize(enc, &val->offset);195vn_encode_VkDeviceSize(enc, &val->size);196vn_encode_VkDeviceSize(enc, &val->rowPitch);197vn_encode_VkDeviceSize(enc, &val->arrayPitch);198vn_encode_VkDeviceSize(enc, &val->depthPitch);199}200201static inline void202vn_decode_VkSubresourceLayout(struct vn_cs_decoder *dec, VkSubresourceLayout *val)203{204vn_decode_VkDeviceSize(dec, &val->offset);205vn_decode_VkDeviceSize(dec, &val->size);206vn_decode_VkDeviceSize(dec, &val->rowPitch);207vn_decode_VkDeviceSize(dec, &val->arrayPitch);208vn_decode_VkDeviceSize(dec, &val->depthPitch);209}210211static inline size_t212vn_sizeof_VkSubresourceLayout_partial(const VkSubresourceLayout *val)213{214size_t size = 0;215/* skip val->offset */216/* skip val->size */217/* skip val->rowPitch */218/* skip val->arrayPitch */219/* skip val->depthPitch */220return size;221}222223static inline void224vn_encode_VkSubresourceLayout_partial(struct vn_cs_encoder *enc, const VkSubresourceLayout *val)225{226/* skip val->offset */227/* skip val->size */228/* skip val->rowPitch */229/* skip val->arrayPitch */230/* skip val->depthPitch */231}232233/* struct VkImageDrmFormatModifierExplicitCreateInfoEXT chain */234235static inline size_t236vn_sizeof_VkImageDrmFormatModifierExplicitCreateInfoEXT_pnext(const void *val)237{238/* no known/supported struct */239return vn_sizeof_simple_pointer(NULL);240}241242static inline size_t243vn_sizeof_VkImageDrmFormatModifierExplicitCreateInfoEXT_self(const VkImageDrmFormatModifierExplicitCreateInfoEXT *val)244{245size_t size = 0;246/* skip val->{sType,pNext} */247size += vn_sizeof_uint64_t(&val->drmFormatModifier);248size += vn_sizeof_uint32_t(&val->drmFormatModifierPlaneCount);249if (val->pPlaneLayouts) {250size += vn_sizeof_array_size(val->drmFormatModifierPlaneCount);251for (uint32_t i = 0; i < val->drmFormatModifierPlaneCount; i++)252size += vn_sizeof_VkSubresourceLayout(&val->pPlaneLayouts[i]);253} else {254size += vn_sizeof_array_size(0);255}256return size;257}258259static inline size_t260vn_sizeof_VkImageDrmFormatModifierExplicitCreateInfoEXT(const VkImageDrmFormatModifierExplicitCreateInfoEXT *val)261{262size_t size = 0;263264size += vn_sizeof_VkStructureType(&val->sType);265size += vn_sizeof_VkImageDrmFormatModifierExplicitCreateInfoEXT_pnext(val->pNext);266size += vn_sizeof_VkImageDrmFormatModifierExplicitCreateInfoEXT_self(val);267268return size;269}270271static inline void272vn_encode_VkImageDrmFormatModifierExplicitCreateInfoEXT_pnext(struct vn_cs_encoder *enc, const void *val)273{274/* no known/supported struct */275vn_encode_simple_pointer(enc, NULL);276}277278static inline void279vn_encode_VkImageDrmFormatModifierExplicitCreateInfoEXT_self(struct vn_cs_encoder *enc, const VkImageDrmFormatModifierExplicitCreateInfoEXT *val)280{281/* skip val->{sType,pNext} */282vn_encode_uint64_t(enc, &val->drmFormatModifier);283vn_encode_uint32_t(enc, &val->drmFormatModifierPlaneCount);284if (val->pPlaneLayouts) {285vn_encode_array_size(enc, val->drmFormatModifierPlaneCount);286for (uint32_t i = 0; i < val->drmFormatModifierPlaneCount; i++)287vn_encode_VkSubresourceLayout(enc, &val->pPlaneLayouts[i]);288} else {289vn_encode_array_size(enc, 0);290}291}292293static inline void294vn_encode_VkImageDrmFormatModifierExplicitCreateInfoEXT(struct vn_cs_encoder *enc, const VkImageDrmFormatModifierExplicitCreateInfoEXT *val)295{296assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT);297vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT });298vn_encode_VkImageDrmFormatModifierExplicitCreateInfoEXT_pnext(enc, val->pNext);299vn_encode_VkImageDrmFormatModifierExplicitCreateInfoEXT_self(enc, val);300}301302/* struct VkImageCreateInfo chain */303304static inline size_t305vn_sizeof_VkImageCreateInfo_pnext(const void *val)306{307const VkBaseInStructure *pnext = val;308size_t size = 0;309310while (pnext) {311switch ((int32_t)pnext->sType) {312case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:313size += vn_sizeof_simple_pointer(pnext);314size += vn_sizeof_VkStructureType(&pnext->sType);315size += vn_sizeof_VkImageCreateInfo_pnext(pnext->pNext);316size += vn_sizeof_VkExternalMemoryImageCreateInfo_self((const VkExternalMemoryImageCreateInfo *)pnext);317return size;318case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:319size += vn_sizeof_simple_pointer(pnext);320size += vn_sizeof_VkStructureType(&pnext->sType);321size += vn_sizeof_VkImageCreateInfo_pnext(pnext->pNext);322size += vn_sizeof_VkImageFormatListCreateInfo_self((const VkImageFormatListCreateInfo *)pnext);323return size;324case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:325size += vn_sizeof_simple_pointer(pnext);326size += vn_sizeof_VkStructureType(&pnext->sType);327size += vn_sizeof_VkImageCreateInfo_pnext(pnext->pNext);328size += vn_sizeof_VkImageDrmFormatModifierListCreateInfoEXT_self((const VkImageDrmFormatModifierListCreateInfoEXT *)pnext);329return size;330case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:331size += vn_sizeof_simple_pointer(pnext);332size += vn_sizeof_VkStructureType(&pnext->sType);333size += vn_sizeof_VkImageCreateInfo_pnext(pnext->pNext);334size += vn_sizeof_VkImageDrmFormatModifierExplicitCreateInfoEXT_self((const VkImageDrmFormatModifierExplicitCreateInfoEXT *)pnext);335return size;336case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:337size += vn_sizeof_simple_pointer(pnext);338size += vn_sizeof_VkStructureType(&pnext->sType);339size += vn_sizeof_VkImageCreateInfo_pnext(pnext->pNext);340size += vn_sizeof_VkImageStencilUsageCreateInfo_self((const VkImageStencilUsageCreateInfo *)pnext);341return size;342default:343/* ignore unknown/unsupported struct */344break;345}346pnext = pnext->pNext;347}348349return vn_sizeof_simple_pointer(NULL);350}351352static inline size_t353vn_sizeof_VkImageCreateInfo_self(const VkImageCreateInfo *val)354{355size_t size = 0;356/* skip val->{sType,pNext} */357size += vn_sizeof_VkFlags(&val->flags);358size += vn_sizeof_VkImageType(&val->imageType);359size += vn_sizeof_VkFormat(&val->format);360size += vn_sizeof_VkExtent3D(&val->extent);361size += vn_sizeof_uint32_t(&val->mipLevels);362size += vn_sizeof_uint32_t(&val->arrayLayers);363size += vn_sizeof_VkSampleCountFlagBits(&val->samples);364size += vn_sizeof_VkImageTiling(&val->tiling);365size += vn_sizeof_VkFlags(&val->usage);366size += vn_sizeof_VkSharingMode(&val->sharingMode);367size += vn_sizeof_uint32_t(&val->queueFamilyIndexCount);368if (val->pQueueFamilyIndices) {369size += vn_sizeof_array_size(val->queueFamilyIndexCount);370size += vn_sizeof_uint32_t_array(val->pQueueFamilyIndices, val->queueFamilyIndexCount);371} else {372size += vn_sizeof_array_size(0);373}374size += vn_sizeof_VkImageLayout(&val->initialLayout);375return size;376}377378static inline size_t379vn_sizeof_VkImageCreateInfo(const VkImageCreateInfo *val)380{381size_t size = 0;382383size += vn_sizeof_VkStructureType(&val->sType);384size += vn_sizeof_VkImageCreateInfo_pnext(val->pNext);385size += vn_sizeof_VkImageCreateInfo_self(val);386387return size;388}389390static inline void391vn_encode_VkImageCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)392{393const VkBaseInStructure *pnext = val;394395while (pnext) {396switch ((int32_t)pnext->sType) {397case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:398vn_encode_simple_pointer(enc, pnext);399vn_encode_VkStructureType(enc, &pnext->sType);400vn_encode_VkImageCreateInfo_pnext(enc, pnext->pNext);401vn_encode_VkExternalMemoryImageCreateInfo_self(enc, (const VkExternalMemoryImageCreateInfo *)pnext);402return;403case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:404vn_encode_simple_pointer(enc, pnext);405vn_encode_VkStructureType(enc, &pnext->sType);406vn_encode_VkImageCreateInfo_pnext(enc, pnext->pNext);407vn_encode_VkImageFormatListCreateInfo_self(enc, (const VkImageFormatListCreateInfo *)pnext);408return;409case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:410vn_encode_simple_pointer(enc, pnext);411vn_encode_VkStructureType(enc, &pnext->sType);412vn_encode_VkImageCreateInfo_pnext(enc, pnext->pNext);413vn_encode_VkImageDrmFormatModifierListCreateInfoEXT_self(enc, (const VkImageDrmFormatModifierListCreateInfoEXT *)pnext);414return;415case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:416vn_encode_simple_pointer(enc, pnext);417vn_encode_VkStructureType(enc, &pnext->sType);418vn_encode_VkImageCreateInfo_pnext(enc, pnext->pNext);419vn_encode_VkImageDrmFormatModifierExplicitCreateInfoEXT_self(enc, (const VkImageDrmFormatModifierExplicitCreateInfoEXT *)pnext);420return;421case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:422vn_encode_simple_pointer(enc, pnext);423vn_encode_VkStructureType(enc, &pnext->sType);424vn_encode_VkImageCreateInfo_pnext(enc, pnext->pNext);425vn_encode_VkImageStencilUsageCreateInfo_self(enc, (const VkImageStencilUsageCreateInfo *)pnext);426return;427default:428/* ignore unknown/unsupported struct */429break;430}431pnext = pnext->pNext;432}433434vn_encode_simple_pointer(enc, NULL);435}436437static inline void438vn_encode_VkImageCreateInfo_self(struct vn_cs_encoder *enc, const VkImageCreateInfo *val)439{440/* skip val->{sType,pNext} */441vn_encode_VkFlags(enc, &val->flags);442vn_encode_VkImageType(enc, &val->imageType);443vn_encode_VkFormat(enc, &val->format);444vn_encode_VkExtent3D(enc, &val->extent);445vn_encode_uint32_t(enc, &val->mipLevels);446vn_encode_uint32_t(enc, &val->arrayLayers);447vn_encode_VkSampleCountFlagBits(enc, &val->samples);448vn_encode_VkImageTiling(enc, &val->tiling);449vn_encode_VkFlags(enc, &val->usage);450vn_encode_VkSharingMode(enc, &val->sharingMode);451vn_encode_uint32_t(enc, &val->queueFamilyIndexCount);452if (val->pQueueFamilyIndices) {453vn_encode_array_size(enc, val->queueFamilyIndexCount);454vn_encode_uint32_t_array(enc, val->pQueueFamilyIndices, val->queueFamilyIndexCount);455} else {456vn_encode_array_size(enc, 0);457}458vn_encode_VkImageLayout(enc, &val->initialLayout);459}460461static inline void462vn_encode_VkImageCreateInfo(struct vn_cs_encoder *enc, const VkImageCreateInfo *val)463{464assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO);465vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO });466vn_encode_VkImageCreateInfo_pnext(enc, val->pNext);467vn_encode_VkImageCreateInfo_self(enc, val);468}469470/* struct VkBindImageMemoryDeviceGroupInfo chain */471472static inline size_t473vn_sizeof_VkBindImageMemoryDeviceGroupInfo_pnext(const void *val)474{475/* no known/supported struct */476return vn_sizeof_simple_pointer(NULL);477}478479static inline size_t480vn_sizeof_VkBindImageMemoryDeviceGroupInfo_self(const VkBindImageMemoryDeviceGroupInfo *val)481{482size_t size = 0;483/* skip val->{sType,pNext} */484size += vn_sizeof_uint32_t(&val->deviceIndexCount);485if (val->pDeviceIndices) {486size += vn_sizeof_array_size(val->deviceIndexCount);487size += vn_sizeof_uint32_t_array(val->pDeviceIndices, val->deviceIndexCount);488} else {489size += vn_sizeof_array_size(0);490}491size += vn_sizeof_uint32_t(&val->splitInstanceBindRegionCount);492if (val->pSplitInstanceBindRegions) {493size += vn_sizeof_array_size(val->splitInstanceBindRegionCount);494for (uint32_t i = 0; i < val->splitInstanceBindRegionCount; i++)495size += vn_sizeof_VkRect2D(&val->pSplitInstanceBindRegions[i]);496} else {497size += vn_sizeof_array_size(0);498}499return size;500}501502static inline size_t503vn_sizeof_VkBindImageMemoryDeviceGroupInfo(const VkBindImageMemoryDeviceGroupInfo *val)504{505size_t size = 0;506507size += vn_sizeof_VkStructureType(&val->sType);508size += vn_sizeof_VkBindImageMemoryDeviceGroupInfo_pnext(val->pNext);509size += vn_sizeof_VkBindImageMemoryDeviceGroupInfo_self(val);510511return size;512}513514static inline void515vn_encode_VkBindImageMemoryDeviceGroupInfo_pnext(struct vn_cs_encoder *enc, const void *val)516{517/* no known/supported struct */518vn_encode_simple_pointer(enc, NULL);519}520521static inline void522vn_encode_VkBindImageMemoryDeviceGroupInfo_self(struct vn_cs_encoder *enc, const VkBindImageMemoryDeviceGroupInfo *val)523{524/* skip val->{sType,pNext} */525vn_encode_uint32_t(enc, &val->deviceIndexCount);526if (val->pDeviceIndices) {527vn_encode_array_size(enc, val->deviceIndexCount);528vn_encode_uint32_t_array(enc, val->pDeviceIndices, val->deviceIndexCount);529} else {530vn_encode_array_size(enc, 0);531}532vn_encode_uint32_t(enc, &val->splitInstanceBindRegionCount);533if (val->pSplitInstanceBindRegions) {534vn_encode_array_size(enc, val->splitInstanceBindRegionCount);535for (uint32_t i = 0; i < val->splitInstanceBindRegionCount; i++)536vn_encode_VkRect2D(enc, &val->pSplitInstanceBindRegions[i]);537} else {538vn_encode_array_size(enc, 0);539}540}541542static inline void543vn_encode_VkBindImageMemoryDeviceGroupInfo(struct vn_cs_encoder *enc, const VkBindImageMemoryDeviceGroupInfo *val)544{545assert(val->sType == VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO);546vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO });547vn_encode_VkBindImageMemoryDeviceGroupInfo_pnext(enc, val->pNext);548vn_encode_VkBindImageMemoryDeviceGroupInfo_self(enc, val);549}550551static inline void552vn_decode_VkBindImageMemoryDeviceGroupInfo_pnext(struct vn_cs_decoder *dec, const void *val)553{554/* no known/supported struct */555if (vn_decode_simple_pointer(dec))556assert(false);557}558559static inline void560vn_decode_VkBindImageMemoryDeviceGroupInfo_self(struct vn_cs_decoder *dec, VkBindImageMemoryDeviceGroupInfo *val)561{562/* skip val->{sType,pNext} */563vn_decode_uint32_t(dec, &val->deviceIndexCount);564if (vn_peek_array_size(dec)) {565const size_t array_size = vn_decode_array_size(dec, val->deviceIndexCount);566vn_decode_uint32_t_array(dec, (uint32_t *)val->pDeviceIndices, array_size);567} else {568vn_decode_array_size(dec, 0);569val->pDeviceIndices = NULL;570}571vn_decode_uint32_t(dec, &val->splitInstanceBindRegionCount);572if (vn_peek_array_size(dec)) {573vn_decode_array_size(dec, val->splitInstanceBindRegionCount);574for (uint32_t i = 0; i < val->splitInstanceBindRegionCount; i++)575vn_decode_VkRect2D(dec, &((VkRect2D *)val->pSplitInstanceBindRegions)[i]);576} else {577vn_decode_array_size(dec, 0);578val->pSplitInstanceBindRegions = NULL;579}580}581582static inline void583vn_decode_VkBindImageMemoryDeviceGroupInfo(struct vn_cs_decoder *dec, VkBindImageMemoryDeviceGroupInfo *val)584{585VkStructureType stype;586vn_decode_VkStructureType(dec, &stype);587assert(stype == VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO);588589assert(val->sType == stype);590vn_decode_VkBindImageMemoryDeviceGroupInfo_pnext(dec, val->pNext);591vn_decode_VkBindImageMemoryDeviceGroupInfo_self(dec, val);592}593594/* struct VkBindImagePlaneMemoryInfo chain */595596static inline size_t597vn_sizeof_VkBindImagePlaneMemoryInfo_pnext(const void *val)598{599/* no known/supported struct */600return vn_sizeof_simple_pointer(NULL);601}602603static inline size_t604vn_sizeof_VkBindImagePlaneMemoryInfo_self(const VkBindImagePlaneMemoryInfo *val)605{606size_t size = 0;607/* skip val->{sType,pNext} */608size += vn_sizeof_VkImageAspectFlagBits(&val->planeAspect);609return size;610}611612static inline size_t613vn_sizeof_VkBindImagePlaneMemoryInfo(const VkBindImagePlaneMemoryInfo *val)614{615size_t size = 0;616617size += vn_sizeof_VkStructureType(&val->sType);618size += vn_sizeof_VkBindImagePlaneMemoryInfo_pnext(val->pNext);619size += vn_sizeof_VkBindImagePlaneMemoryInfo_self(val);620621return size;622}623624static inline void625vn_encode_VkBindImagePlaneMemoryInfo_pnext(struct vn_cs_encoder *enc, const void *val)626{627/* no known/supported struct */628vn_encode_simple_pointer(enc, NULL);629}630631static inline void632vn_encode_VkBindImagePlaneMemoryInfo_self(struct vn_cs_encoder *enc, const VkBindImagePlaneMemoryInfo *val)633{634/* skip val->{sType,pNext} */635vn_encode_VkImageAspectFlagBits(enc, &val->planeAspect);636}637638static inline void639vn_encode_VkBindImagePlaneMemoryInfo(struct vn_cs_encoder *enc, const VkBindImagePlaneMemoryInfo *val)640{641assert(val->sType == VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO);642vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO });643vn_encode_VkBindImagePlaneMemoryInfo_pnext(enc, val->pNext);644vn_encode_VkBindImagePlaneMemoryInfo_self(enc, val);645}646647static inline void648vn_decode_VkBindImagePlaneMemoryInfo_pnext(struct vn_cs_decoder *dec, const void *val)649{650/* no known/supported struct */651if (vn_decode_simple_pointer(dec))652assert(false);653}654655static inline void656vn_decode_VkBindImagePlaneMemoryInfo_self(struct vn_cs_decoder *dec, VkBindImagePlaneMemoryInfo *val)657{658/* skip val->{sType,pNext} */659vn_decode_VkImageAspectFlagBits(dec, &val->planeAspect);660}661662static inline void663vn_decode_VkBindImagePlaneMemoryInfo(struct vn_cs_decoder *dec, VkBindImagePlaneMemoryInfo *val)664{665VkStructureType stype;666vn_decode_VkStructureType(dec, &stype);667assert(stype == VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO);668669assert(val->sType == stype);670vn_decode_VkBindImagePlaneMemoryInfo_pnext(dec, val->pNext);671vn_decode_VkBindImagePlaneMemoryInfo_self(dec, val);672}673674/* struct VkBindImageMemoryInfo chain */675676static inline size_t677vn_sizeof_VkBindImageMemoryInfo_pnext(const void *val)678{679const VkBaseInStructure *pnext = val;680size_t size = 0;681682while (pnext) {683switch ((int32_t)pnext->sType) {684case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:685size += vn_sizeof_simple_pointer(pnext);686size += vn_sizeof_VkStructureType(&pnext->sType);687size += vn_sizeof_VkBindImageMemoryInfo_pnext(pnext->pNext);688size += vn_sizeof_VkBindImageMemoryDeviceGroupInfo_self((const VkBindImageMemoryDeviceGroupInfo *)pnext);689return size;690case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:691size += vn_sizeof_simple_pointer(pnext);692size += vn_sizeof_VkStructureType(&pnext->sType);693size += vn_sizeof_VkBindImageMemoryInfo_pnext(pnext->pNext);694size += vn_sizeof_VkBindImagePlaneMemoryInfo_self((const VkBindImagePlaneMemoryInfo *)pnext);695return size;696default:697/* ignore unknown/unsupported struct */698break;699}700pnext = pnext->pNext;701}702703return vn_sizeof_simple_pointer(NULL);704}705706static inline size_t707vn_sizeof_VkBindImageMemoryInfo_self(const VkBindImageMemoryInfo *val)708{709size_t size = 0;710/* skip val->{sType,pNext} */711size += vn_sizeof_VkImage(&val->image);712size += vn_sizeof_VkDeviceMemory(&val->memory);713size += vn_sizeof_VkDeviceSize(&val->memoryOffset);714return size;715}716717static inline size_t718vn_sizeof_VkBindImageMemoryInfo(const VkBindImageMemoryInfo *val)719{720size_t size = 0;721722size += vn_sizeof_VkStructureType(&val->sType);723size += vn_sizeof_VkBindImageMemoryInfo_pnext(val->pNext);724size += vn_sizeof_VkBindImageMemoryInfo_self(val);725726return size;727}728729static inline void730vn_encode_VkBindImageMemoryInfo_pnext(struct vn_cs_encoder *enc, const void *val)731{732const VkBaseInStructure *pnext = val;733734while (pnext) {735switch ((int32_t)pnext->sType) {736case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:737vn_encode_simple_pointer(enc, pnext);738vn_encode_VkStructureType(enc, &pnext->sType);739vn_encode_VkBindImageMemoryInfo_pnext(enc, pnext->pNext);740vn_encode_VkBindImageMemoryDeviceGroupInfo_self(enc, (const VkBindImageMemoryDeviceGroupInfo *)pnext);741return;742case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:743vn_encode_simple_pointer(enc, pnext);744vn_encode_VkStructureType(enc, &pnext->sType);745vn_encode_VkBindImageMemoryInfo_pnext(enc, pnext->pNext);746vn_encode_VkBindImagePlaneMemoryInfo_self(enc, (const VkBindImagePlaneMemoryInfo *)pnext);747return;748default:749/* ignore unknown/unsupported struct */750break;751}752pnext = pnext->pNext;753}754755vn_encode_simple_pointer(enc, NULL);756}757758static inline void759vn_encode_VkBindImageMemoryInfo_self(struct vn_cs_encoder *enc, const VkBindImageMemoryInfo *val)760{761/* skip val->{sType,pNext} */762vn_encode_VkImage(enc, &val->image);763vn_encode_VkDeviceMemory(enc, &val->memory);764vn_encode_VkDeviceSize(enc, &val->memoryOffset);765}766767static inline void768vn_encode_VkBindImageMemoryInfo(struct vn_cs_encoder *enc, const VkBindImageMemoryInfo *val)769{770assert(val->sType == VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO);771vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO });772vn_encode_VkBindImageMemoryInfo_pnext(enc, val->pNext);773vn_encode_VkBindImageMemoryInfo_self(enc, val);774}775776static inline void777vn_decode_VkBindImageMemoryInfo_pnext(struct vn_cs_decoder *dec, const void *val)778{779VkBaseOutStructure *pnext = (VkBaseOutStructure *)val;780VkStructureType stype;781782if (!vn_decode_simple_pointer(dec))783return;784785vn_decode_VkStructureType(dec, &stype);786while (true) {787assert(pnext);788if (pnext->sType == stype)789break;790}791792switch ((int32_t)pnext->sType) {793case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:794vn_decode_VkBindImageMemoryInfo_pnext(dec, pnext->pNext);795vn_decode_VkBindImageMemoryDeviceGroupInfo_self(dec, (VkBindImageMemoryDeviceGroupInfo *)pnext);796break;797case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:798vn_decode_VkBindImageMemoryInfo_pnext(dec, pnext->pNext);799vn_decode_VkBindImagePlaneMemoryInfo_self(dec, (VkBindImagePlaneMemoryInfo *)pnext);800break;801default:802assert(false);803break;804}805}806807static inline void808vn_decode_VkBindImageMemoryInfo_self(struct vn_cs_decoder *dec, VkBindImageMemoryInfo *val)809{810/* skip val->{sType,pNext} */811vn_decode_VkImage(dec, &val->image);812vn_decode_VkDeviceMemory(dec, &val->memory);813vn_decode_VkDeviceSize(dec, &val->memoryOffset);814}815816static inline void817vn_decode_VkBindImageMemoryInfo(struct vn_cs_decoder *dec, VkBindImageMemoryInfo *val)818{819VkStructureType stype;820vn_decode_VkStructureType(dec, &stype);821assert(stype == VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO);822823assert(val->sType == stype);824vn_decode_VkBindImageMemoryInfo_pnext(dec, val->pNext);825vn_decode_VkBindImageMemoryInfo_self(dec, val);826}827828/* struct VkImagePlaneMemoryRequirementsInfo chain */829830static inline size_t831vn_sizeof_VkImagePlaneMemoryRequirementsInfo_pnext(const void *val)832{833/* no known/supported struct */834return vn_sizeof_simple_pointer(NULL);835}836837static inline size_t838vn_sizeof_VkImagePlaneMemoryRequirementsInfo_self(const VkImagePlaneMemoryRequirementsInfo *val)839{840size_t size = 0;841/* skip val->{sType,pNext} */842size += vn_sizeof_VkImageAspectFlagBits(&val->planeAspect);843return size;844}845846static inline size_t847vn_sizeof_VkImagePlaneMemoryRequirementsInfo(const VkImagePlaneMemoryRequirementsInfo *val)848{849size_t size = 0;850851size += vn_sizeof_VkStructureType(&val->sType);852size += vn_sizeof_VkImagePlaneMemoryRequirementsInfo_pnext(val->pNext);853size += vn_sizeof_VkImagePlaneMemoryRequirementsInfo_self(val);854855return size;856}857858static inline void859vn_encode_VkImagePlaneMemoryRequirementsInfo_pnext(struct vn_cs_encoder *enc, const void *val)860{861/* no known/supported struct */862vn_encode_simple_pointer(enc, NULL);863}864865static inline void866vn_encode_VkImagePlaneMemoryRequirementsInfo_self(struct vn_cs_encoder *enc, const VkImagePlaneMemoryRequirementsInfo *val)867{868/* skip val->{sType,pNext} */869vn_encode_VkImageAspectFlagBits(enc, &val->planeAspect);870}871872static inline void873vn_encode_VkImagePlaneMemoryRequirementsInfo(struct vn_cs_encoder *enc, const VkImagePlaneMemoryRequirementsInfo *val)874{875assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO);876vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO });877vn_encode_VkImagePlaneMemoryRequirementsInfo_pnext(enc, val->pNext);878vn_encode_VkImagePlaneMemoryRequirementsInfo_self(enc, val);879}880881/* struct VkImageMemoryRequirementsInfo2 chain */882883static inline size_t884vn_sizeof_VkImageMemoryRequirementsInfo2_pnext(const void *val)885{886const VkBaseInStructure *pnext = val;887size_t size = 0;888889while (pnext) {890switch ((int32_t)pnext->sType) {891case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:892size += vn_sizeof_simple_pointer(pnext);893size += vn_sizeof_VkStructureType(&pnext->sType);894size += vn_sizeof_VkImageMemoryRequirementsInfo2_pnext(pnext->pNext);895size += vn_sizeof_VkImagePlaneMemoryRequirementsInfo_self((const VkImagePlaneMemoryRequirementsInfo *)pnext);896return size;897default:898/* ignore unknown/unsupported struct */899break;900}901pnext = pnext->pNext;902}903904return vn_sizeof_simple_pointer(NULL);905}906907static inline size_t908vn_sizeof_VkImageMemoryRequirementsInfo2_self(const VkImageMemoryRequirementsInfo2 *val)909{910size_t size = 0;911/* skip val->{sType,pNext} */912size += vn_sizeof_VkImage(&val->image);913return size;914}915916static inline size_t917vn_sizeof_VkImageMemoryRequirementsInfo2(const VkImageMemoryRequirementsInfo2 *val)918{919size_t size = 0;920921size += vn_sizeof_VkStructureType(&val->sType);922size += vn_sizeof_VkImageMemoryRequirementsInfo2_pnext(val->pNext);923size += vn_sizeof_VkImageMemoryRequirementsInfo2_self(val);924925return size;926}927928static inline void929vn_encode_VkImageMemoryRequirementsInfo2_pnext(struct vn_cs_encoder *enc, const void *val)930{931const VkBaseInStructure *pnext = val;932933while (pnext) {934switch ((int32_t)pnext->sType) {935case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:936vn_encode_simple_pointer(enc, pnext);937vn_encode_VkStructureType(enc, &pnext->sType);938vn_encode_VkImageMemoryRequirementsInfo2_pnext(enc, pnext->pNext);939vn_encode_VkImagePlaneMemoryRequirementsInfo_self(enc, (const VkImagePlaneMemoryRequirementsInfo *)pnext);940return;941default:942/* ignore unknown/unsupported struct */943break;944}945pnext = pnext->pNext;946}947948vn_encode_simple_pointer(enc, NULL);949}950951static inline void952vn_encode_VkImageMemoryRequirementsInfo2_self(struct vn_cs_encoder *enc, const VkImageMemoryRequirementsInfo2 *val)953{954/* skip val->{sType,pNext} */955vn_encode_VkImage(enc, &val->image);956}957958static inline void959vn_encode_VkImageMemoryRequirementsInfo2(struct vn_cs_encoder *enc, const VkImageMemoryRequirementsInfo2 *val)960{961assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2);962vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 });963vn_encode_VkImageMemoryRequirementsInfo2_pnext(enc, val->pNext);964vn_encode_VkImageMemoryRequirementsInfo2_self(enc, val);965}966967/* struct VkImageSparseMemoryRequirementsInfo2 chain */968969static inline size_t970vn_sizeof_VkImageSparseMemoryRequirementsInfo2_pnext(const void *val)971{972/* no known/supported struct */973return vn_sizeof_simple_pointer(NULL);974}975976static inline size_t977vn_sizeof_VkImageSparseMemoryRequirementsInfo2_self(const VkImageSparseMemoryRequirementsInfo2 *val)978{979size_t size = 0;980/* skip val->{sType,pNext} */981size += vn_sizeof_VkImage(&val->image);982return size;983}984985static inline size_t986vn_sizeof_VkImageSparseMemoryRequirementsInfo2(const VkImageSparseMemoryRequirementsInfo2 *val)987{988size_t size = 0;989990size += vn_sizeof_VkStructureType(&val->sType);991size += vn_sizeof_VkImageSparseMemoryRequirementsInfo2_pnext(val->pNext);992size += vn_sizeof_VkImageSparseMemoryRequirementsInfo2_self(val);993994return size;995}996997static inline void998vn_encode_VkImageSparseMemoryRequirementsInfo2_pnext(struct vn_cs_encoder *enc, const void *val)999{1000/* no known/supported struct */1001vn_encode_simple_pointer(enc, NULL);1002}10031004static inline void1005vn_encode_VkImageSparseMemoryRequirementsInfo2_self(struct vn_cs_encoder *enc, const VkImageSparseMemoryRequirementsInfo2 *val)1006{1007/* skip val->{sType,pNext} */1008vn_encode_VkImage(enc, &val->image);1009}10101011static inline void1012vn_encode_VkImageSparseMemoryRequirementsInfo2(struct vn_cs_encoder *enc, const VkImageSparseMemoryRequirementsInfo2 *val)1013{1014assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2);1015vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 });1016vn_encode_VkImageSparseMemoryRequirementsInfo2_pnext(enc, val->pNext);1017vn_encode_VkImageSparseMemoryRequirementsInfo2_self(enc, val);1018}10191020/* struct VkSparseImageMemoryRequirements2 chain */10211022static inline size_t1023vn_sizeof_VkSparseImageMemoryRequirements2_pnext(const void *val)1024{1025/* no known/supported struct */1026return vn_sizeof_simple_pointer(NULL);1027}10281029static inline size_t1030vn_sizeof_VkSparseImageMemoryRequirements2_self(const VkSparseImageMemoryRequirements2 *val)1031{1032size_t size = 0;1033/* skip val->{sType,pNext} */1034size += vn_sizeof_VkSparseImageMemoryRequirements(&val->memoryRequirements);1035return size;1036}10371038static inline size_t1039vn_sizeof_VkSparseImageMemoryRequirements2(const VkSparseImageMemoryRequirements2 *val)1040{1041size_t size = 0;10421043size += vn_sizeof_VkStructureType(&val->sType);1044size += vn_sizeof_VkSparseImageMemoryRequirements2_pnext(val->pNext);1045size += vn_sizeof_VkSparseImageMemoryRequirements2_self(val);10461047return size;1048}10491050static inline void1051vn_decode_VkSparseImageMemoryRequirements2_pnext(struct vn_cs_decoder *dec, const void *val)1052{1053/* no known/supported struct */1054if (vn_decode_simple_pointer(dec))1055assert(false);1056}10571058static inline void1059vn_decode_VkSparseImageMemoryRequirements2_self(struct vn_cs_decoder *dec, VkSparseImageMemoryRequirements2 *val)1060{1061/* skip val->{sType,pNext} */1062vn_decode_VkSparseImageMemoryRequirements(dec, &val->memoryRequirements);1063}10641065static inline void1066vn_decode_VkSparseImageMemoryRequirements2(struct vn_cs_decoder *dec, VkSparseImageMemoryRequirements2 *val)1067{1068VkStructureType stype;1069vn_decode_VkStructureType(dec, &stype);1070assert(stype == VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2);10711072assert(val->sType == stype);1073vn_decode_VkSparseImageMemoryRequirements2_pnext(dec, val->pNext);1074vn_decode_VkSparseImageMemoryRequirements2_self(dec, val);1075}10761077static inline size_t1078vn_sizeof_VkSparseImageMemoryRequirements2_pnext_partial(const void *val)1079{1080/* no known/supported struct */1081return vn_sizeof_simple_pointer(NULL);1082}10831084static inline size_t1085vn_sizeof_VkSparseImageMemoryRequirements2_self_partial(const VkSparseImageMemoryRequirements2 *val)1086{1087size_t size = 0;1088/* skip val->{sType,pNext} */1089size += vn_sizeof_VkSparseImageMemoryRequirements_partial(&val->memoryRequirements);1090return size;1091}10921093static inline size_t1094vn_sizeof_VkSparseImageMemoryRequirements2_partial(const VkSparseImageMemoryRequirements2 *val)1095{1096size_t size = 0;10971098size += vn_sizeof_VkStructureType(&val->sType);1099size += vn_sizeof_VkSparseImageMemoryRequirements2_pnext_partial(val->pNext);1100size += vn_sizeof_VkSparseImageMemoryRequirements2_self_partial(val);11011102return size;1103}11041105static inline void1106vn_encode_VkSparseImageMemoryRequirements2_pnext_partial(struct vn_cs_encoder *enc, const void *val)1107{1108/* no known/supported struct */1109vn_encode_simple_pointer(enc, NULL);1110}11111112static inline void1113vn_encode_VkSparseImageMemoryRequirements2_self_partial(struct vn_cs_encoder *enc, const VkSparseImageMemoryRequirements2 *val)1114{1115/* skip val->{sType,pNext} */1116vn_encode_VkSparseImageMemoryRequirements_partial(enc, &val->memoryRequirements);1117}11181119static inline void1120vn_encode_VkSparseImageMemoryRequirements2_partial(struct vn_cs_encoder *enc, const VkSparseImageMemoryRequirements2 *val)1121{1122assert(val->sType == VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2);1123vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 });1124vn_encode_VkSparseImageMemoryRequirements2_pnext_partial(enc, val->pNext);1125vn_encode_VkSparseImageMemoryRequirements2_self_partial(enc, val);1126}11271128/* struct VkImageDrmFormatModifierPropertiesEXT chain */11291130static inline size_t1131vn_sizeof_VkImageDrmFormatModifierPropertiesEXT_pnext(const void *val)1132{1133/* no known/supported struct */1134return vn_sizeof_simple_pointer(NULL);1135}11361137static inline size_t1138vn_sizeof_VkImageDrmFormatModifierPropertiesEXT_self(const VkImageDrmFormatModifierPropertiesEXT *val)1139{1140size_t size = 0;1141/* skip val->{sType,pNext} */1142size += vn_sizeof_uint64_t(&val->drmFormatModifier);1143return size;1144}11451146static inline size_t1147vn_sizeof_VkImageDrmFormatModifierPropertiesEXT(const VkImageDrmFormatModifierPropertiesEXT *val)1148{1149size_t size = 0;11501151size += vn_sizeof_VkStructureType(&val->sType);1152size += vn_sizeof_VkImageDrmFormatModifierPropertiesEXT_pnext(val->pNext);1153size += vn_sizeof_VkImageDrmFormatModifierPropertiesEXT_self(val);11541155return size;1156}11571158static inline void1159vn_decode_VkImageDrmFormatModifierPropertiesEXT_pnext(struct vn_cs_decoder *dec, const void *val)1160{1161/* no known/supported struct */1162if (vn_decode_simple_pointer(dec))1163assert(false);1164}11651166static inline void1167vn_decode_VkImageDrmFormatModifierPropertiesEXT_self(struct vn_cs_decoder *dec, VkImageDrmFormatModifierPropertiesEXT *val)1168{1169/* skip val->{sType,pNext} */1170vn_decode_uint64_t(dec, &val->drmFormatModifier);1171}11721173static inline void1174vn_decode_VkImageDrmFormatModifierPropertiesEXT(struct vn_cs_decoder *dec, VkImageDrmFormatModifierPropertiesEXT *val)1175{1176VkStructureType stype;1177vn_decode_VkStructureType(dec, &stype);1178assert(stype == VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT);11791180assert(val->sType == stype);1181vn_decode_VkImageDrmFormatModifierPropertiesEXT_pnext(dec, val->pNext);1182vn_decode_VkImageDrmFormatModifierPropertiesEXT_self(dec, val);1183}11841185static inline size_t1186vn_sizeof_VkImageDrmFormatModifierPropertiesEXT_pnext_partial(const void *val)1187{1188/* no known/supported struct */1189return vn_sizeof_simple_pointer(NULL);1190}11911192static inline size_t1193vn_sizeof_VkImageDrmFormatModifierPropertiesEXT_self_partial(const VkImageDrmFormatModifierPropertiesEXT *val)1194{1195size_t size = 0;1196/* skip val->{sType,pNext} */1197/* skip val->drmFormatModifier */1198return size;1199}12001201static inline size_t1202vn_sizeof_VkImageDrmFormatModifierPropertiesEXT_partial(const VkImageDrmFormatModifierPropertiesEXT *val)1203{1204size_t size = 0;12051206size += vn_sizeof_VkStructureType(&val->sType);1207size += vn_sizeof_VkImageDrmFormatModifierPropertiesEXT_pnext_partial(val->pNext);1208size += vn_sizeof_VkImageDrmFormatModifierPropertiesEXT_self_partial(val);12091210return size;1211}12121213static inline void1214vn_encode_VkImageDrmFormatModifierPropertiesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val)1215{1216/* no known/supported struct */1217vn_encode_simple_pointer(enc, NULL);1218}12191220static inline void1221vn_encode_VkImageDrmFormatModifierPropertiesEXT_self_partial(struct vn_cs_encoder *enc, const VkImageDrmFormatModifierPropertiesEXT *val)1222{1223/* skip val->{sType,pNext} */1224/* skip val->drmFormatModifier */1225}12261227static inline void1228vn_encode_VkImageDrmFormatModifierPropertiesEXT_partial(struct vn_cs_encoder *enc, const VkImageDrmFormatModifierPropertiesEXT *val)1229{1230assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT);1231vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT });1232vn_encode_VkImageDrmFormatModifierPropertiesEXT_pnext_partial(enc, val->pNext);1233vn_encode_VkImageDrmFormatModifierPropertiesEXT_self_partial(enc, val);1234}12351236static inline size_t vn_sizeof_vkGetImageMemoryRequirements(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements)1237{1238const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageMemoryRequirements_EXT;1239const VkFlags cmd_flags = 0;1240size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);12411242cmd_size += vn_sizeof_VkDevice(&device);1243cmd_size += vn_sizeof_VkImage(&image);1244cmd_size += vn_sizeof_simple_pointer(pMemoryRequirements);1245if (pMemoryRequirements)1246cmd_size += vn_sizeof_VkMemoryRequirements_partial(pMemoryRequirements);12471248return cmd_size;1249}12501251static inline void vn_encode_vkGetImageMemoryRequirements(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements)1252{1253const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageMemoryRequirements_EXT;12541255vn_encode_VkCommandTypeEXT(enc, &cmd_type);1256vn_encode_VkFlags(enc, &cmd_flags);12571258vn_encode_VkDevice(enc, &device);1259vn_encode_VkImage(enc, &image);1260if (vn_encode_simple_pointer(enc, pMemoryRequirements))1261vn_encode_VkMemoryRequirements_partial(enc, pMemoryRequirements);1262}12631264static inline size_t vn_sizeof_vkGetImageMemoryRequirements_reply(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements)1265{1266const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageMemoryRequirements_EXT;1267size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);12681269/* skip device */1270/* skip image */1271cmd_size += vn_sizeof_simple_pointer(pMemoryRequirements);1272if (pMemoryRequirements)1273cmd_size += vn_sizeof_VkMemoryRequirements(pMemoryRequirements);12741275return cmd_size;1276}12771278static inline void vn_decode_vkGetImageMemoryRequirements_reply(struct vn_cs_decoder *dec, VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements)1279{1280VkCommandTypeEXT command_type;1281vn_decode_VkCommandTypeEXT(dec, &command_type);1282assert(command_type == VK_COMMAND_TYPE_vkGetImageMemoryRequirements_EXT);12831284/* skip device */1285/* skip image */1286if (vn_decode_simple_pointer(dec)) {1287vn_decode_VkMemoryRequirements(dec, pMemoryRequirements);1288} else {1289pMemoryRequirements = NULL;1290}1291}12921293static inline size_t vn_sizeof_vkBindImageMemory(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset)1294{1295const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBindImageMemory_EXT;1296const VkFlags cmd_flags = 0;1297size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);12981299cmd_size += vn_sizeof_VkDevice(&device);1300cmd_size += vn_sizeof_VkImage(&image);1301cmd_size += vn_sizeof_VkDeviceMemory(&memory);1302cmd_size += vn_sizeof_VkDeviceSize(&memoryOffset);13031304return cmd_size;1305}13061307static inline void vn_encode_vkBindImageMemory(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset)1308{1309const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBindImageMemory_EXT;13101311vn_encode_VkCommandTypeEXT(enc, &cmd_type);1312vn_encode_VkFlags(enc, &cmd_flags);13131314vn_encode_VkDevice(enc, &device);1315vn_encode_VkImage(enc, &image);1316vn_encode_VkDeviceMemory(enc, &memory);1317vn_encode_VkDeviceSize(enc, &memoryOffset);1318}13191320static inline size_t vn_sizeof_vkBindImageMemory_reply(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset)1321{1322const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBindImageMemory_EXT;1323size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);13241325VkResult ret;1326cmd_size += vn_sizeof_VkResult(&ret);1327/* skip device */1328/* skip image */1329/* skip memory */1330/* skip memoryOffset */13311332return cmd_size;1333}13341335static inline VkResult vn_decode_vkBindImageMemory_reply(struct vn_cs_decoder *dec, VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset)1336{1337VkCommandTypeEXT command_type;1338vn_decode_VkCommandTypeEXT(dec, &command_type);1339assert(command_type == VK_COMMAND_TYPE_vkBindImageMemory_EXT);13401341VkResult ret;1342vn_decode_VkResult(dec, &ret);1343/* skip device */1344/* skip image */1345/* skip memory */1346/* skip memoryOffset */13471348return ret;1349}13501351static inline size_t vn_sizeof_vkGetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements)1352{1353const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements_EXT;1354const VkFlags cmd_flags = 0;1355size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);13561357cmd_size += vn_sizeof_VkDevice(&device);1358cmd_size += vn_sizeof_VkImage(&image);1359cmd_size += vn_sizeof_simple_pointer(pSparseMemoryRequirementCount);1360if (pSparseMemoryRequirementCount)1361cmd_size += vn_sizeof_uint32_t(pSparseMemoryRequirementCount);1362if (pSparseMemoryRequirements) {1363cmd_size += vn_sizeof_array_size(*pSparseMemoryRequirementCount);1364for (uint32_t i = 0; i < *pSparseMemoryRequirementCount; i++)1365cmd_size += vn_sizeof_VkSparseImageMemoryRequirements_partial(&pSparseMemoryRequirements[i]);1366} else {1367cmd_size += vn_sizeof_array_size(0);1368}13691370return cmd_size;1371}13721373static inline void vn_encode_vkGetImageSparseMemoryRequirements(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements)1374{1375const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements_EXT;13761377vn_encode_VkCommandTypeEXT(enc, &cmd_type);1378vn_encode_VkFlags(enc, &cmd_flags);13791380vn_encode_VkDevice(enc, &device);1381vn_encode_VkImage(enc, &image);1382if (vn_encode_simple_pointer(enc, pSparseMemoryRequirementCount))1383vn_encode_uint32_t(enc, pSparseMemoryRequirementCount);1384if (pSparseMemoryRequirements) {1385vn_encode_array_size(enc, *pSparseMemoryRequirementCount);1386for (uint32_t i = 0; i < *pSparseMemoryRequirementCount; i++)1387vn_encode_VkSparseImageMemoryRequirements_partial(enc, &pSparseMemoryRequirements[i]);1388} else {1389vn_encode_array_size(enc, 0);1390}1391}13921393static inline size_t vn_sizeof_vkGetImageSparseMemoryRequirements_reply(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements)1394{1395const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements_EXT;1396size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);13971398/* skip device */1399/* skip image */1400cmd_size += vn_sizeof_simple_pointer(pSparseMemoryRequirementCount);1401if (pSparseMemoryRequirementCount)1402cmd_size += vn_sizeof_uint32_t(pSparseMemoryRequirementCount);1403if (pSparseMemoryRequirements) {1404cmd_size += vn_sizeof_array_size(*pSparseMemoryRequirementCount);1405for (uint32_t i = 0; i < *pSparseMemoryRequirementCount; i++)1406cmd_size += vn_sizeof_VkSparseImageMemoryRequirements(&pSparseMemoryRequirements[i]);1407} else {1408cmd_size += vn_sizeof_array_size(0);1409}14101411return cmd_size;1412}14131414static inline void vn_decode_vkGetImageSparseMemoryRequirements_reply(struct vn_cs_decoder *dec, VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements)1415{1416VkCommandTypeEXT command_type;1417vn_decode_VkCommandTypeEXT(dec, &command_type);1418assert(command_type == VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements_EXT);14191420/* skip device */1421/* skip image */1422if (vn_decode_simple_pointer(dec)) {1423vn_decode_uint32_t(dec, pSparseMemoryRequirementCount);1424} else {1425pSparseMemoryRequirementCount = NULL;1426}1427if (vn_peek_array_size(dec)) {1428vn_decode_array_size(dec, *pSparseMemoryRequirementCount);1429for (uint32_t i = 0; i < *pSparseMemoryRequirementCount; i++)1430vn_decode_VkSparseImageMemoryRequirements(dec, &pSparseMemoryRequirements[i]);1431} else {1432vn_decode_array_size(dec, 0);1433pSparseMemoryRequirements = NULL;1434}1435}14361437static inline size_t vn_sizeof_vkCreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage)1438{1439const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateImage_EXT;1440const VkFlags cmd_flags = 0;1441size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);14421443cmd_size += vn_sizeof_VkDevice(&device);1444cmd_size += vn_sizeof_simple_pointer(pCreateInfo);1445if (pCreateInfo)1446cmd_size += vn_sizeof_VkImageCreateInfo(pCreateInfo);1447cmd_size += vn_sizeof_simple_pointer(pAllocator);1448if (pAllocator)1449assert(false);1450cmd_size += vn_sizeof_simple_pointer(pImage);1451if (pImage)1452cmd_size += vn_sizeof_VkImage(pImage);14531454return cmd_size;1455}14561457static inline void vn_encode_vkCreateImage(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage)1458{1459const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateImage_EXT;14601461vn_encode_VkCommandTypeEXT(enc, &cmd_type);1462vn_encode_VkFlags(enc, &cmd_flags);14631464vn_encode_VkDevice(enc, &device);1465if (vn_encode_simple_pointer(enc, pCreateInfo))1466vn_encode_VkImageCreateInfo(enc, pCreateInfo);1467if (vn_encode_simple_pointer(enc, pAllocator))1468assert(false);1469if (vn_encode_simple_pointer(enc, pImage))1470vn_encode_VkImage(enc, pImage);1471}14721473static inline size_t vn_sizeof_vkCreateImage_reply(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage)1474{1475const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateImage_EXT;1476size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);14771478VkResult ret;1479cmd_size += vn_sizeof_VkResult(&ret);1480/* skip device */1481/* skip pCreateInfo */1482/* skip pAllocator */1483cmd_size += vn_sizeof_simple_pointer(pImage);1484if (pImage)1485cmd_size += vn_sizeof_VkImage(pImage);14861487return cmd_size;1488}14891490static inline VkResult vn_decode_vkCreateImage_reply(struct vn_cs_decoder *dec, VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage)1491{1492VkCommandTypeEXT command_type;1493vn_decode_VkCommandTypeEXT(dec, &command_type);1494assert(command_type == VK_COMMAND_TYPE_vkCreateImage_EXT);14951496VkResult ret;1497vn_decode_VkResult(dec, &ret);1498/* skip device */1499/* skip pCreateInfo */1500/* skip pAllocator */1501if (vn_decode_simple_pointer(dec)) {1502vn_decode_VkImage(dec, pImage);1503} else {1504pImage = NULL;1505}15061507return ret;1508}15091510static inline size_t vn_sizeof_vkDestroyImage(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator)1511{1512const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyImage_EXT;1513const VkFlags cmd_flags = 0;1514size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);15151516cmd_size += vn_sizeof_VkDevice(&device);1517cmd_size += vn_sizeof_VkImage(&image);1518cmd_size += vn_sizeof_simple_pointer(pAllocator);1519if (pAllocator)1520assert(false);15211522return cmd_size;1523}15241525static inline void vn_encode_vkDestroyImage(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator)1526{1527const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyImage_EXT;15281529vn_encode_VkCommandTypeEXT(enc, &cmd_type);1530vn_encode_VkFlags(enc, &cmd_flags);15311532vn_encode_VkDevice(enc, &device);1533vn_encode_VkImage(enc, &image);1534if (vn_encode_simple_pointer(enc, pAllocator))1535assert(false);1536}15371538static inline size_t vn_sizeof_vkDestroyImage_reply(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator)1539{1540const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyImage_EXT;1541size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);15421543/* skip device */1544/* skip image */1545/* skip pAllocator */15461547return cmd_size;1548}15491550static inline void vn_decode_vkDestroyImage_reply(struct vn_cs_decoder *dec, VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator)1551{1552VkCommandTypeEXT command_type;1553vn_decode_VkCommandTypeEXT(dec, &command_type);1554assert(command_type == VK_COMMAND_TYPE_vkDestroyImage_EXT);15551556/* skip device */1557/* skip image */1558/* skip pAllocator */1559}15601561static inline size_t vn_sizeof_vkGetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout)1562{1563const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageSubresourceLayout_EXT;1564const VkFlags cmd_flags = 0;1565size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);15661567cmd_size += vn_sizeof_VkDevice(&device);1568cmd_size += vn_sizeof_VkImage(&image);1569cmd_size += vn_sizeof_simple_pointer(pSubresource);1570if (pSubresource)1571cmd_size += vn_sizeof_VkImageSubresource(pSubresource);1572cmd_size += vn_sizeof_simple_pointer(pLayout);1573if (pLayout)1574cmd_size += vn_sizeof_VkSubresourceLayout_partial(pLayout);15751576return cmd_size;1577}15781579static inline void vn_encode_vkGetImageSubresourceLayout(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout)1580{1581const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageSubresourceLayout_EXT;15821583vn_encode_VkCommandTypeEXT(enc, &cmd_type);1584vn_encode_VkFlags(enc, &cmd_flags);15851586vn_encode_VkDevice(enc, &device);1587vn_encode_VkImage(enc, &image);1588if (vn_encode_simple_pointer(enc, pSubresource))1589vn_encode_VkImageSubresource(enc, pSubresource);1590if (vn_encode_simple_pointer(enc, pLayout))1591vn_encode_VkSubresourceLayout_partial(enc, pLayout);1592}15931594static inline size_t vn_sizeof_vkGetImageSubresourceLayout_reply(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout)1595{1596const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageSubresourceLayout_EXT;1597size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);15981599/* skip device */1600/* skip image */1601/* skip pSubresource */1602cmd_size += vn_sizeof_simple_pointer(pLayout);1603if (pLayout)1604cmd_size += vn_sizeof_VkSubresourceLayout(pLayout);16051606return cmd_size;1607}16081609static inline void vn_decode_vkGetImageSubresourceLayout_reply(struct vn_cs_decoder *dec, VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout)1610{1611VkCommandTypeEXT command_type;1612vn_decode_VkCommandTypeEXT(dec, &command_type);1613assert(command_type == VK_COMMAND_TYPE_vkGetImageSubresourceLayout_EXT);16141615/* skip device */1616/* skip image */1617/* skip pSubresource */1618if (vn_decode_simple_pointer(dec)) {1619vn_decode_VkSubresourceLayout(dec, pLayout);1620} else {1621pLayout = NULL;1622}1623}16241625static inline size_t vn_sizeof_vkBindImageMemory2(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos)1626{1627const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBindImageMemory2_EXT;1628const VkFlags cmd_flags = 0;1629size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);16301631cmd_size += vn_sizeof_VkDevice(&device);1632cmd_size += vn_sizeof_uint32_t(&bindInfoCount);1633if (pBindInfos) {1634cmd_size += vn_sizeof_array_size(bindInfoCount);1635for (uint32_t i = 0; i < bindInfoCount; i++)1636cmd_size += vn_sizeof_VkBindImageMemoryInfo(&pBindInfos[i]);1637} else {1638cmd_size += vn_sizeof_array_size(0);1639}16401641return cmd_size;1642}16431644static inline void vn_encode_vkBindImageMemory2(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos)1645{1646const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBindImageMemory2_EXT;16471648vn_encode_VkCommandTypeEXT(enc, &cmd_type);1649vn_encode_VkFlags(enc, &cmd_flags);16501651vn_encode_VkDevice(enc, &device);1652vn_encode_uint32_t(enc, &bindInfoCount);1653if (pBindInfos) {1654vn_encode_array_size(enc, bindInfoCount);1655for (uint32_t i = 0; i < bindInfoCount; i++)1656vn_encode_VkBindImageMemoryInfo(enc, &pBindInfos[i]);1657} else {1658vn_encode_array_size(enc, 0);1659}1660}16611662static inline size_t vn_sizeof_vkBindImageMemory2_reply(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos)1663{1664const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBindImageMemory2_EXT;1665size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);16661667VkResult ret;1668cmd_size += vn_sizeof_VkResult(&ret);1669/* skip device */1670/* skip bindInfoCount */1671/* skip pBindInfos */16721673return cmd_size;1674}16751676static inline VkResult vn_decode_vkBindImageMemory2_reply(struct vn_cs_decoder *dec, VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos)1677{1678VkCommandTypeEXT command_type;1679vn_decode_VkCommandTypeEXT(dec, &command_type);1680assert(command_type == VK_COMMAND_TYPE_vkBindImageMemory2_EXT);16811682VkResult ret;1683vn_decode_VkResult(dec, &ret);1684/* skip device */1685/* skip bindInfoCount */1686/* skip pBindInfos */16871688return ret;1689}16901691static inline size_t vn_sizeof_vkGetImageMemoryRequirements2(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements)1692{1693const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageMemoryRequirements2_EXT;1694const VkFlags cmd_flags = 0;1695size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);16961697cmd_size += vn_sizeof_VkDevice(&device);1698cmd_size += vn_sizeof_simple_pointer(pInfo);1699if (pInfo)1700cmd_size += vn_sizeof_VkImageMemoryRequirementsInfo2(pInfo);1701cmd_size += vn_sizeof_simple_pointer(pMemoryRequirements);1702if (pMemoryRequirements)1703cmd_size += vn_sizeof_VkMemoryRequirements2_partial(pMemoryRequirements);17041705return cmd_size;1706}17071708static inline void vn_encode_vkGetImageMemoryRequirements2(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements)1709{1710const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageMemoryRequirements2_EXT;17111712vn_encode_VkCommandTypeEXT(enc, &cmd_type);1713vn_encode_VkFlags(enc, &cmd_flags);17141715vn_encode_VkDevice(enc, &device);1716if (vn_encode_simple_pointer(enc, pInfo))1717vn_encode_VkImageMemoryRequirementsInfo2(enc, pInfo);1718if (vn_encode_simple_pointer(enc, pMemoryRequirements))1719vn_encode_VkMemoryRequirements2_partial(enc, pMemoryRequirements);1720}17211722static inline size_t vn_sizeof_vkGetImageMemoryRequirements2_reply(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements)1723{1724const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageMemoryRequirements2_EXT;1725size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);17261727/* skip device */1728/* skip pInfo */1729cmd_size += vn_sizeof_simple_pointer(pMemoryRequirements);1730if (pMemoryRequirements)1731cmd_size += vn_sizeof_VkMemoryRequirements2(pMemoryRequirements);17321733return cmd_size;1734}17351736static inline void vn_decode_vkGetImageMemoryRequirements2_reply(struct vn_cs_decoder *dec, VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements)1737{1738VkCommandTypeEXT command_type;1739vn_decode_VkCommandTypeEXT(dec, &command_type);1740assert(command_type == VK_COMMAND_TYPE_vkGetImageMemoryRequirements2_EXT);17411742/* skip device */1743/* skip pInfo */1744if (vn_decode_simple_pointer(dec)) {1745vn_decode_VkMemoryRequirements2(dec, pMemoryRequirements);1746} else {1747pMemoryRequirements = NULL;1748}1749}17501751static inline size_t vn_sizeof_vkGetImageSparseMemoryRequirements2(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)1752{1753const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements2_EXT;1754const VkFlags cmd_flags = 0;1755size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);17561757cmd_size += vn_sizeof_VkDevice(&device);1758cmd_size += vn_sizeof_simple_pointer(pInfo);1759if (pInfo)1760cmd_size += vn_sizeof_VkImageSparseMemoryRequirementsInfo2(pInfo);1761cmd_size += vn_sizeof_simple_pointer(pSparseMemoryRequirementCount);1762if (pSparseMemoryRequirementCount)1763cmd_size += vn_sizeof_uint32_t(pSparseMemoryRequirementCount);1764if (pSparseMemoryRequirements) {1765cmd_size += vn_sizeof_array_size(*pSparseMemoryRequirementCount);1766for (uint32_t i = 0; i < *pSparseMemoryRequirementCount; i++)1767cmd_size += vn_sizeof_VkSparseImageMemoryRequirements2_partial(&pSparseMemoryRequirements[i]);1768} else {1769cmd_size += vn_sizeof_array_size(0);1770}17711772return cmd_size;1773}17741775static inline void vn_encode_vkGetImageSparseMemoryRequirements2(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)1776{1777const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements2_EXT;17781779vn_encode_VkCommandTypeEXT(enc, &cmd_type);1780vn_encode_VkFlags(enc, &cmd_flags);17811782vn_encode_VkDevice(enc, &device);1783if (vn_encode_simple_pointer(enc, pInfo))1784vn_encode_VkImageSparseMemoryRequirementsInfo2(enc, pInfo);1785if (vn_encode_simple_pointer(enc, pSparseMemoryRequirementCount))1786vn_encode_uint32_t(enc, pSparseMemoryRequirementCount);1787if (pSparseMemoryRequirements) {1788vn_encode_array_size(enc, *pSparseMemoryRequirementCount);1789for (uint32_t i = 0; i < *pSparseMemoryRequirementCount; i++)1790vn_encode_VkSparseImageMemoryRequirements2_partial(enc, &pSparseMemoryRequirements[i]);1791} else {1792vn_encode_array_size(enc, 0);1793}1794}17951796static inline size_t vn_sizeof_vkGetImageSparseMemoryRequirements2_reply(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)1797{1798const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements2_EXT;1799size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);18001801/* skip device */1802/* skip pInfo */1803cmd_size += vn_sizeof_simple_pointer(pSparseMemoryRequirementCount);1804if (pSparseMemoryRequirementCount)1805cmd_size += vn_sizeof_uint32_t(pSparseMemoryRequirementCount);1806if (pSparseMemoryRequirements) {1807cmd_size += vn_sizeof_array_size(*pSparseMemoryRequirementCount);1808for (uint32_t i = 0; i < *pSparseMemoryRequirementCount; i++)1809cmd_size += vn_sizeof_VkSparseImageMemoryRequirements2(&pSparseMemoryRequirements[i]);1810} else {1811cmd_size += vn_sizeof_array_size(0);1812}18131814return cmd_size;1815}18161817static inline void vn_decode_vkGetImageSparseMemoryRequirements2_reply(struct vn_cs_decoder *dec, VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)1818{1819VkCommandTypeEXT command_type;1820vn_decode_VkCommandTypeEXT(dec, &command_type);1821assert(command_type == VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements2_EXT);18221823/* skip device */1824/* skip pInfo */1825if (vn_decode_simple_pointer(dec)) {1826vn_decode_uint32_t(dec, pSparseMemoryRequirementCount);1827} else {1828pSparseMemoryRequirementCount = NULL;1829}1830if (vn_peek_array_size(dec)) {1831vn_decode_array_size(dec, *pSparseMemoryRequirementCount);1832for (uint32_t i = 0; i < *pSparseMemoryRequirementCount; i++)1833vn_decode_VkSparseImageMemoryRequirements2(dec, &pSparseMemoryRequirements[i]);1834} else {1835vn_decode_array_size(dec, 0);1836pSparseMemoryRequirements = NULL;1837}1838}18391840static inline size_t vn_sizeof_vkGetImageDrmFormatModifierPropertiesEXT(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties)1841{1842const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageDrmFormatModifierPropertiesEXT_EXT;1843const VkFlags cmd_flags = 0;1844size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);18451846cmd_size += vn_sizeof_VkDevice(&device);1847cmd_size += vn_sizeof_VkImage(&image);1848cmd_size += vn_sizeof_simple_pointer(pProperties);1849if (pProperties)1850cmd_size += vn_sizeof_VkImageDrmFormatModifierPropertiesEXT_partial(pProperties);18511852return cmd_size;1853}18541855static inline void vn_encode_vkGetImageDrmFormatModifierPropertiesEXT(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties)1856{1857const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageDrmFormatModifierPropertiesEXT_EXT;18581859vn_encode_VkCommandTypeEXT(enc, &cmd_type);1860vn_encode_VkFlags(enc, &cmd_flags);18611862vn_encode_VkDevice(enc, &device);1863vn_encode_VkImage(enc, &image);1864if (vn_encode_simple_pointer(enc, pProperties))1865vn_encode_VkImageDrmFormatModifierPropertiesEXT_partial(enc, pProperties);1866}18671868static inline size_t vn_sizeof_vkGetImageDrmFormatModifierPropertiesEXT_reply(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties)1869{1870const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageDrmFormatModifierPropertiesEXT_EXT;1871size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);18721873VkResult ret;1874cmd_size += vn_sizeof_VkResult(&ret);1875/* skip device */1876/* skip image */1877cmd_size += vn_sizeof_simple_pointer(pProperties);1878if (pProperties)1879cmd_size += vn_sizeof_VkImageDrmFormatModifierPropertiesEXT(pProperties);18801881return cmd_size;1882}18831884static inline VkResult vn_decode_vkGetImageDrmFormatModifierPropertiesEXT_reply(struct vn_cs_decoder *dec, VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties)1885{1886VkCommandTypeEXT command_type;1887vn_decode_VkCommandTypeEXT(dec, &command_type);1888assert(command_type == VK_COMMAND_TYPE_vkGetImageDrmFormatModifierPropertiesEXT_EXT);18891890VkResult ret;1891vn_decode_VkResult(dec, &ret);1892/* skip device */1893/* skip image */1894if (vn_decode_simple_pointer(dec)) {1895vn_decode_VkImageDrmFormatModifierPropertiesEXT(dec, pProperties);1896} else {1897pProperties = NULL;1898}18991900return ret;1901}19021903static inline void vn_submit_vkGetImageMemoryRequirements(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements, struct vn_instance_submit_command *submit)1904{1905uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];1906void *cmd_data = local_cmd_data;1907size_t cmd_size = vn_sizeof_vkGetImageMemoryRequirements(device, image, pMemoryRequirements);1908if (cmd_size > sizeof(local_cmd_data)) {1909cmd_data = malloc(cmd_size);1910if (!cmd_data)1911cmd_size = 0;1912}1913const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetImageMemoryRequirements_reply(device, image, pMemoryRequirements) : 0;19141915struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);1916if (cmd_size) {1917vn_encode_vkGetImageMemoryRequirements(enc, cmd_flags, device, image, pMemoryRequirements);1918vn_instance_submit_command(vn_instance, submit);1919if (cmd_data != local_cmd_data)1920free(cmd_data);1921}1922}19231924static inline void vn_submit_vkBindImageMemory(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset, struct vn_instance_submit_command *submit)1925{1926uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];1927void *cmd_data = local_cmd_data;1928size_t cmd_size = vn_sizeof_vkBindImageMemory(device, image, memory, memoryOffset);1929if (cmd_size > sizeof(local_cmd_data)) {1930cmd_data = malloc(cmd_size);1931if (!cmd_data)1932cmd_size = 0;1933}1934const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkBindImageMemory_reply(device, image, memory, memoryOffset) : 0;19351936struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);1937if (cmd_size) {1938vn_encode_vkBindImageMemory(enc, cmd_flags, device, image, memory, memoryOffset);1939vn_instance_submit_command(vn_instance, submit);1940if (cmd_data != local_cmd_data)1941free(cmd_data);1942}1943}19441945static inline void vn_submit_vkGetImageSparseMemoryRequirements(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements, struct vn_instance_submit_command *submit)1946{1947uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];1948void *cmd_data = local_cmd_data;1949size_t cmd_size = vn_sizeof_vkGetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);1950if (cmd_size > sizeof(local_cmd_data)) {1951cmd_data = malloc(cmd_size);1952if (!cmd_data)1953cmd_size = 0;1954}1955const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetImageSparseMemoryRequirements_reply(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements) : 0;19561957struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);1958if (cmd_size) {1959vn_encode_vkGetImageSparseMemoryRequirements(enc, cmd_flags, device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);1960vn_instance_submit_command(vn_instance, submit);1961if (cmd_data != local_cmd_data)1962free(cmd_data);1963}1964}19651966static inline void vn_submit_vkCreateImage(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage, struct vn_instance_submit_command *submit)1967{1968uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];1969void *cmd_data = local_cmd_data;1970size_t cmd_size = vn_sizeof_vkCreateImage(device, pCreateInfo, pAllocator, pImage);1971if (cmd_size > sizeof(local_cmd_data)) {1972cmd_data = malloc(cmd_size);1973if (!cmd_data)1974cmd_size = 0;1975}1976const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCreateImage_reply(device, pCreateInfo, pAllocator, pImage) : 0;19771978struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);1979if (cmd_size) {1980vn_encode_vkCreateImage(enc, cmd_flags, device, pCreateInfo, pAllocator, pImage);1981vn_instance_submit_command(vn_instance, submit);1982if (cmd_data != local_cmd_data)1983free(cmd_data);1984}1985}19861987static inline void vn_submit_vkDestroyImage(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator, struct vn_instance_submit_command *submit)1988{1989uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];1990void *cmd_data = local_cmd_data;1991size_t cmd_size = vn_sizeof_vkDestroyImage(device, image, pAllocator);1992if (cmd_size > sizeof(local_cmd_data)) {1993cmd_data = malloc(cmd_size);1994if (!cmd_data)1995cmd_size = 0;1996}1997const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkDestroyImage_reply(device, image, pAllocator) : 0;19981999struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);2000if (cmd_size) {2001vn_encode_vkDestroyImage(enc, cmd_flags, device, image, pAllocator);2002vn_instance_submit_command(vn_instance, submit);2003if (cmd_data != local_cmd_data)2004free(cmd_data);2005}2006}20072008static inline void vn_submit_vkGetImageSubresourceLayout(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout, struct vn_instance_submit_command *submit)2009{2010uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];2011void *cmd_data = local_cmd_data;2012size_t cmd_size = vn_sizeof_vkGetImageSubresourceLayout(device, image, pSubresource, pLayout);2013if (cmd_size > sizeof(local_cmd_data)) {2014cmd_data = malloc(cmd_size);2015if (!cmd_data)2016cmd_size = 0;2017}2018const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetImageSubresourceLayout_reply(device, image, pSubresource, pLayout) : 0;20192020struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);2021if (cmd_size) {2022vn_encode_vkGetImageSubresourceLayout(enc, cmd_flags, device, image, pSubresource, pLayout);2023vn_instance_submit_command(vn_instance, submit);2024if (cmd_data != local_cmd_data)2025free(cmd_data);2026}2027}20282029static inline void vn_submit_vkBindImageMemory2(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos, struct vn_instance_submit_command *submit)2030{2031uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];2032void *cmd_data = local_cmd_data;2033size_t cmd_size = vn_sizeof_vkBindImageMemory2(device, bindInfoCount, pBindInfos);2034if (cmd_size > sizeof(local_cmd_data)) {2035cmd_data = malloc(cmd_size);2036if (!cmd_data)2037cmd_size = 0;2038}2039const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkBindImageMemory2_reply(device, bindInfoCount, pBindInfos) : 0;20402041struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);2042if (cmd_size) {2043vn_encode_vkBindImageMemory2(enc, cmd_flags, device, bindInfoCount, pBindInfos);2044vn_instance_submit_command(vn_instance, submit);2045if (cmd_data != local_cmd_data)2046free(cmd_data);2047}2048}20492050static inline void vn_submit_vkGetImageMemoryRequirements2(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements, struct vn_instance_submit_command *submit)2051{2052uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];2053void *cmd_data = local_cmd_data;2054size_t cmd_size = vn_sizeof_vkGetImageMemoryRequirements2(device, pInfo, pMemoryRequirements);2055if (cmd_size > sizeof(local_cmd_data)) {2056cmd_data = malloc(cmd_size);2057if (!cmd_data)2058cmd_size = 0;2059}2060const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetImageMemoryRequirements2_reply(device, pInfo, pMemoryRequirements) : 0;20612062struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);2063if (cmd_size) {2064vn_encode_vkGetImageMemoryRequirements2(enc, cmd_flags, device, pInfo, pMemoryRequirements);2065vn_instance_submit_command(vn_instance, submit);2066if (cmd_data != local_cmd_data)2067free(cmd_data);2068}2069}20702071static inline void vn_submit_vkGetImageSparseMemoryRequirements2(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements, struct vn_instance_submit_command *submit)2072{2073uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];2074void *cmd_data = local_cmd_data;2075size_t cmd_size = vn_sizeof_vkGetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);2076if (cmd_size > sizeof(local_cmd_data)) {2077cmd_data = malloc(cmd_size);2078if (!cmd_data)2079cmd_size = 0;2080}2081const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetImageSparseMemoryRequirements2_reply(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) : 0;20822083struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);2084if (cmd_size) {2085vn_encode_vkGetImageSparseMemoryRequirements2(enc, cmd_flags, device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);2086vn_instance_submit_command(vn_instance, submit);2087if (cmd_data != local_cmd_data)2088free(cmd_data);2089}2090}20912092static inline void vn_submit_vkGetImageDrmFormatModifierPropertiesEXT(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties, struct vn_instance_submit_command *submit)2093{2094uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];2095void *cmd_data = local_cmd_data;2096size_t cmd_size = vn_sizeof_vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties);2097if (cmd_size > sizeof(local_cmd_data)) {2098cmd_data = malloc(cmd_size);2099if (!cmd_data)2100cmd_size = 0;2101}2102const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetImageDrmFormatModifierPropertiesEXT_reply(device, image, pProperties) : 0;21032104struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);2105if (cmd_size) {2106vn_encode_vkGetImageDrmFormatModifierPropertiesEXT(enc, cmd_flags, device, image, pProperties);2107vn_instance_submit_command(vn_instance, submit);2108if (cmd_data != local_cmd_data)2109free(cmd_data);2110}2111}21122113static inline void vn_call_vkGetImageMemoryRequirements(struct vn_instance *vn_instance, VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements)2114{2115struct vn_instance_submit_command submit;2116vn_submit_vkGetImageMemoryRequirements(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, image, pMemoryRequirements, &submit);2117struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);2118if (dec) {2119vn_decode_vkGetImageMemoryRequirements_reply(dec, device, image, pMemoryRequirements);2120vn_instance_free_command_reply(vn_instance, &submit);2121}2122}21232124static inline void vn_async_vkGetImageMemoryRequirements(struct vn_instance *vn_instance, VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements)2125{2126struct vn_instance_submit_command submit;2127vn_submit_vkGetImageMemoryRequirements(vn_instance, 0, device, image, pMemoryRequirements, &submit);2128}21292130static inline VkResult vn_call_vkBindImageMemory(struct vn_instance *vn_instance, VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset)2131{2132struct vn_instance_submit_command submit;2133vn_submit_vkBindImageMemory(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, image, memory, memoryOffset, &submit);2134struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);2135if (dec) {2136const VkResult ret = vn_decode_vkBindImageMemory_reply(dec, device, image, memory, memoryOffset);2137vn_instance_free_command_reply(vn_instance, &submit);2138return ret;2139} else {2140return VK_ERROR_OUT_OF_HOST_MEMORY;2141}2142}21432144static inline void vn_async_vkBindImageMemory(struct vn_instance *vn_instance, VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset)2145{2146struct vn_instance_submit_command submit;2147vn_submit_vkBindImageMemory(vn_instance, 0, device, image, memory, memoryOffset, &submit);2148}21492150static inline void vn_call_vkGetImageSparseMemoryRequirements(struct vn_instance *vn_instance, VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements)2151{2152struct vn_instance_submit_command submit;2153vn_submit_vkGetImageSparseMemoryRequirements(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements, &submit);2154struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);2155if (dec) {2156vn_decode_vkGetImageSparseMemoryRequirements_reply(dec, device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);2157vn_instance_free_command_reply(vn_instance, &submit);2158}2159}21602161static inline void vn_async_vkGetImageSparseMemoryRequirements(struct vn_instance *vn_instance, VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements)2162{2163struct vn_instance_submit_command submit;2164vn_submit_vkGetImageSparseMemoryRequirements(vn_instance, 0, device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements, &submit);2165}21662167static inline VkResult vn_call_vkCreateImage(struct vn_instance *vn_instance, VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage)2168{2169struct vn_instance_submit_command submit;2170vn_submit_vkCreateImage(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pCreateInfo, pAllocator, pImage, &submit);2171struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);2172if (dec) {2173const VkResult ret = vn_decode_vkCreateImage_reply(dec, device, pCreateInfo, pAllocator, pImage);2174vn_instance_free_command_reply(vn_instance, &submit);2175return ret;2176} else {2177return VK_ERROR_OUT_OF_HOST_MEMORY;2178}2179}21802181static inline void vn_async_vkCreateImage(struct vn_instance *vn_instance, VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage)2182{2183struct vn_instance_submit_command submit;2184vn_submit_vkCreateImage(vn_instance, 0, device, pCreateInfo, pAllocator, pImage, &submit);2185}21862187static inline void vn_call_vkDestroyImage(struct vn_instance *vn_instance, VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator)2188{2189struct vn_instance_submit_command submit;2190vn_submit_vkDestroyImage(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, image, pAllocator, &submit);2191struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);2192if (dec) {2193vn_decode_vkDestroyImage_reply(dec, device, image, pAllocator);2194vn_instance_free_command_reply(vn_instance, &submit);2195}2196}21972198static inline void vn_async_vkDestroyImage(struct vn_instance *vn_instance, VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator)2199{2200struct vn_instance_submit_command submit;2201vn_submit_vkDestroyImage(vn_instance, 0, device, image, pAllocator, &submit);2202}22032204static inline void vn_call_vkGetImageSubresourceLayout(struct vn_instance *vn_instance, VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout)2205{2206struct vn_instance_submit_command submit;2207vn_submit_vkGetImageSubresourceLayout(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, image, pSubresource, pLayout, &submit);2208struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);2209if (dec) {2210vn_decode_vkGetImageSubresourceLayout_reply(dec, device, image, pSubresource, pLayout);2211vn_instance_free_command_reply(vn_instance, &submit);2212}2213}22142215static inline void vn_async_vkGetImageSubresourceLayout(struct vn_instance *vn_instance, VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout)2216{2217struct vn_instance_submit_command submit;2218vn_submit_vkGetImageSubresourceLayout(vn_instance, 0, device, image, pSubresource, pLayout, &submit);2219}22202221static inline VkResult vn_call_vkBindImageMemory2(struct vn_instance *vn_instance, VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos)2222{2223struct vn_instance_submit_command submit;2224vn_submit_vkBindImageMemory2(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, bindInfoCount, pBindInfos, &submit);2225struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);2226if (dec) {2227const VkResult ret = vn_decode_vkBindImageMemory2_reply(dec, device, bindInfoCount, pBindInfos);2228vn_instance_free_command_reply(vn_instance, &submit);2229return ret;2230} else {2231return VK_ERROR_OUT_OF_HOST_MEMORY;2232}2233}22342235static inline void vn_async_vkBindImageMemory2(struct vn_instance *vn_instance, VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos)2236{2237struct vn_instance_submit_command submit;2238vn_submit_vkBindImageMemory2(vn_instance, 0, device, bindInfoCount, pBindInfos, &submit);2239}22402241static inline void vn_call_vkGetImageMemoryRequirements2(struct vn_instance *vn_instance, VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements)2242{2243struct vn_instance_submit_command submit;2244vn_submit_vkGetImageMemoryRequirements2(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pInfo, pMemoryRequirements, &submit);2245struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);2246if (dec) {2247vn_decode_vkGetImageMemoryRequirements2_reply(dec, device, pInfo, pMemoryRequirements);2248vn_instance_free_command_reply(vn_instance, &submit);2249}2250}22512252static inline void vn_async_vkGetImageMemoryRequirements2(struct vn_instance *vn_instance, VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements)2253{2254struct vn_instance_submit_command submit;2255vn_submit_vkGetImageMemoryRequirements2(vn_instance, 0, device, pInfo, pMemoryRequirements, &submit);2256}22572258static inline void vn_call_vkGetImageSparseMemoryRequirements2(struct vn_instance *vn_instance, VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)2259{2260struct vn_instance_submit_command submit;2261vn_submit_vkGetImageSparseMemoryRequirements2(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, &submit);2262struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);2263if (dec) {2264vn_decode_vkGetImageSparseMemoryRequirements2_reply(dec, device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);2265vn_instance_free_command_reply(vn_instance, &submit);2266}2267}22682269static inline void vn_async_vkGetImageSparseMemoryRequirements2(struct vn_instance *vn_instance, VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)2270{2271struct vn_instance_submit_command submit;2272vn_submit_vkGetImageSparseMemoryRequirements2(vn_instance, 0, device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, &submit);2273}22742275static inline VkResult vn_call_vkGetImageDrmFormatModifierPropertiesEXT(struct vn_instance *vn_instance, VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties)2276{2277struct vn_instance_submit_command submit;2278vn_submit_vkGetImageDrmFormatModifierPropertiesEXT(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, image, pProperties, &submit);2279struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);2280if (dec) {2281const VkResult ret = vn_decode_vkGetImageDrmFormatModifierPropertiesEXT_reply(dec, device, image, pProperties);2282vn_instance_free_command_reply(vn_instance, &submit);2283return ret;2284} else {2285return VK_ERROR_OUT_OF_HOST_MEMORY;2286}2287}22882289static inline void vn_async_vkGetImageDrmFormatModifierPropertiesEXT(struct vn_instance *vn_instance, VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties)2290{2291struct vn_instance_submit_command submit;2292vn_submit_vkGetImageDrmFormatModifierPropertiesEXT(vn_instance, 0, device, image, pProperties, &submit);2293}22942295#endif /* VN_PROTOCOL_DRIVER_IMAGE_H */229622972298