Path: blob/21.2-virgl/src/virtio/venus-protocol/vn_protocol_driver_transport.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_TRANSPORT_H8#define VN_PROTOCOL_DRIVER_TRANSPORT_H910#include "vn_device.h"11#include "vn_protocol_driver_structs.h"1213/*14* These structs/unions/commands are not included15*16* vkGetMemoryFdKHR17* vkGetMemoryFdPropertiesKHR18*/1920/* struct VkCommandStreamDescriptionMESA */2122static inline size_t23vn_sizeof_VkCommandStreamDescriptionMESA(const VkCommandStreamDescriptionMESA *val)24{25size_t size = 0;26size += vn_sizeof_uint32_t(&val->resourceId);27size += vn_sizeof_size_t(&val->offset);28size += vn_sizeof_size_t(&val->size);29return size;30}3132static inline void33vn_encode_VkCommandStreamDescriptionMESA(struct vn_cs_encoder *enc, const VkCommandStreamDescriptionMESA *val)34{35vn_encode_uint32_t(enc, &val->resourceId);36vn_encode_size_t(enc, &val->offset);37vn_encode_size_t(enc, &val->size);38}3940/* struct VkCommandStreamDependencyMESA */4142static inline size_t43vn_sizeof_VkCommandStreamDependencyMESA(const VkCommandStreamDependencyMESA *val)44{45size_t size = 0;46size += vn_sizeof_uint32_t(&val->srcCommandStream);47size += vn_sizeof_uint32_t(&val->dstCommandStream);48return size;49}5051static inline void52vn_encode_VkCommandStreamDependencyMESA(struct vn_cs_encoder *enc, const VkCommandStreamDependencyMESA *val)53{54vn_encode_uint32_t(enc, &val->srcCommandStream);55vn_encode_uint32_t(enc, &val->dstCommandStream);56}5758/* struct VkRingCreateInfoMESA chain */5960static inline size_t61vn_sizeof_VkRingCreateInfoMESA_pnext(const void *val)62{63/* no known/supported struct */64return vn_sizeof_simple_pointer(NULL);65}6667static inline size_t68vn_sizeof_VkRingCreateInfoMESA_self(const VkRingCreateInfoMESA *val)69{70size_t size = 0;71/* skip val->{sType,pNext} */72size += vn_sizeof_VkFlags(&val->flags);73size += vn_sizeof_uint32_t(&val->resourceId);74size += vn_sizeof_size_t(&val->offset);75size += vn_sizeof_size_t(&val->size);76size += vn_sizeof_uint64_t(&val->idleTimeout);77size += vn_sizeof_size_t(&val->headOffset);78size += vn_sizeof_size_t(&val->tailOffset);79size += vn_sizeof_size_t(&val->statusOffset);80size += vn_sizeof_size_t(&val->bufferOffset);81size += vn_sizeof_size_t(&val->bufferSize);82size += vn_sizeof_size_t(&val->extraOffset);83size += vn_sizeof_size_t(&val->extraSize);84return size;85}8687static inline size_t88vn_sizeof_VkRingCreateInfoMESA(const VkRingCreateInfoMESA *val)89{90size_t size = 0;9192size += vn_sizeof_VkStructureType(&val->sType);93size += vn_sizeof_VkRingCreateInfoMESA_pnext(val->pNext);94size += vn_sizeof_VkRingCreateInfoMESA_self(val);9596return size;97}9899static inline void100vn_encode_VkRingCreateInfoMESA_pnext(struct vn_cs_encoder *enc, const void *val)101{102/* no known/supported struct */103vn_encode_simple_pointer(enc, NULL);104}105106static inline void107vn_encode_VkRingCreateInfoMESA_self(struct vn_cs_encoder *enc, const VkRingCreateInfoMESA *val)108{109/* skip val->{sType,pNext} */110vn_encode_VkFlags(enc, &val->flags);111vn_encode_uint32_t(enc, &val->resourceId);112vn_encode_size_t(enc, &val->offset);113vn_encode_size_t(enc, &val->size);114vn_encode_uint64_t(enc, &val->idleTimeout);115vn_encode_size_t(enc, &val->headOffset);116vn_encode_size_t(enc, &val->tailOffset);117vn_encode_size_t(enc, &val->statusOffset);118vn_encode_size_t(enc, &val->bufferOffset);119vn_encode_size_t(enc, &val->bufferSize);120vn_encode_size_t(enc, &val->extraOffset);121vn_encode_size_t(enc, &val->extraSize);122}123124static inline void125vn_encode_VkRingCreateInfoMESA(struct vn_cs_encoder *enc, const VkRingCreateInfoMESA *val)126{127assert(val->sType == VK_STRUCTURE_TYPE_RING_CREATE_INFO_MESA);128vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_RING_CREATE_INFO_MESA });129vn_encode_VkRingCreateInfoMESA_pnext(enc, val->pNext);130vn_encode_VkRingCreateInfoMESA_self(enc, val);131}132133/* struct VkMemoryResourceAllocationSizeProperties100000MESA chain */134135static inline size_t136vn_sizeof_VkMemoryResourceAllocationSizeProperties100000MESA_pnext(const void *val)137{138/* no known/supported struct */139return vn_sizeof_simple_pointer(NULL);140}141142static inline size_t143vn_sizeof_VkMemoryResourceAllocationSizeProperties100000MESA_self(const VkMemoryResourceAllocationSizeProperties100000MESA *val)144{145size_t size = 0;146/* skip val->{sType,pNext} */147size += vn_sizeof_uint64_t(&val->allocationSize);148return size;149}150151static inline size_t152vn_sizeof_VkMemoryResourceAllocationSizeProperties100000MESA(const VkMemoryResourceAllocationSizeProperties100000MESA *val)153{154size_t size = 0;155156size += vn_sizeof_VkStructureType(&val->sType);157size += vn_sizeof_VkMemoryResourceAllocationSizeProperties100000MESA_pnext(val->pNext);158size += vn_sizeof_VkMemoryResourceAllocationSizeProperties100000MESA_self(val);159160return size;161}162163static inline void164vn_decode_VkMemoryResourceAllocationSizeProperties100000MESA_pnext(struct vn_cs_decoder *dec, const void *val)165{166/* no known/supported struct */167if (vn_decode_simple_pointer(dec))168assert(false);169}170171static inline void172vn_decode_VkMemoryResourceAllocationSizeProperties100000MESA_self(struct vn_cs_decoder *dec, VkMemoryResourceAllocationSizeProperties100000MESA *val)173{174/* skip val->{sType,pNext} */175vn_decode_uint64_t(dec, &val->allocationSize);176}177178static inline void179vn_decode_VkMemoryResourceAllocationSizeProperties100000MESA(struct vn_cs_decoder *dec, VkMemoryResourceAllocationSizeProperties100000MESA *val)180{181VkStructureType stype;182vn_decode_VkStructureType(dec, &stype);183assert(stype == VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_100000_MESA);184185assert(val->sType == stype);186vn_decode_VkMemoryResourceAllocationSizeProperties100000MESA_pnext(dec, val->pNext);187vn_decode_VkMemoryResourceAllocationSizeProperties100000MESA_self(dec, val);188}189190static inline size_t191vn_sizeof_VkMemoryResourceAllocationSizeProperties100000MESA_pnext_partial(const void *val)192{193/* no known/supported struct */194return vn_sizeof_simple_pointer(NULL);195}196197static inline size_t198vn_sizeof_VkMemoryResourceAllocationSizeProperties100000MESA_self_partial(const VkMemoryResourceAllocationSizeProperties100000MESA *val)199{200size_t size = 0;201/* skip val->{sType,pNext} */202/* skip val->allocationSize */203return size;204}205206static inline size_t207vn_sizeof_VkMemoryResourceAllocationSizeProperties100000MESA_partial(const VkMemoryResourceAllocationSizeProperties100000MESA *val)208{209size_t size = 0;210211size += vn_sizeof_VkStructureType(&val->sType);212size += vn_sizeof_VkMemoryResourceAllocationSizeProperties100000MESA_pnext_partial(val->pNext);213size += vn_sizeof_VkMemoryResourceAllocationSizeProperties100000MESA_self_partial(val);214215return size;216}217218static inline void219vn_encode_VkMemoryResourceAllocationSizeProperties100000MESA_pnext_partial(struct vn_cs_encoder *enc, const void *val)220{221/* no known/supported struct */222vn_encode_simple_pointer(enc, NULL);223}224225static inline void226vn_encode_VkMemoryResourceAllocationSizeProperties100000MESA_self_partial(struct vn_cs_encoder *enc, const VkMemoryResourceAllocationSizeProperties100000MESA *val)227{228/* skip val->{sType,pNext} */229/* skip val->allocationSize */230}231232static inline void233vn_encode_VkMemoryResourceAllocationSizeProperties100000MESA_partial(struct vn_cs_encoder *enc, const VkMemoryResourceAllocationSizeProperties100000MESA *val)234{235assert(val->sType == VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_100000_MESA);236vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_100000_MESA });237vn_encode_VkMemoryResourceAllocationSizeProperties100000MESA_pnext_partial(enc, val->pNext);238vn_encode_VkMemoryResourceAllocationSizeProperties100000MESA_self_partial(enc, val);239}240241/* struct VkMemoryResourcePropertiesMESA chain */242243static inline size_t244vn_sizeof_VkMemoryResourcePropertiesMESA_pnext(const void *val)245{246const VkBaseInStructure *pnext = val;247size_t size = 0;248249while (pnext) {250switch ((int32_t)pnext->sType) {251case VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_100000_MESA:252size += vn_sizeof_simple_pointer(pnext);253size += vn_sizeof_VkStructureType(&pnext->sType);254size += vn_sizeof_VkMemoryResourcePropertiesMESA_pnext(pnext->pNext);255size += vn_sizeof_VkMemoryResourceAllocationSizeProperties100000MESA_self((const VkMemoryResourceAllocationSizeProperties100000MESA *)pnext);256return size;257default:258/* ignore unknown/unsupported struct */259break;260}261pnext = pnext->pNext;262}263264return vn_sizeof_simple_pointer(NULL);265}266267static inline size_t268vn_sizeof_VkMemoryResourcePropertiesMESA_self(const VkMemoryResourcePropertiesMESA *val)269{270size_t size = 0;271/* skip val->{sType,pNext} */272size += vn_sizeof_uint32_t(&val->memoryTypeBits);273return size;274}275276static inline size_t277vn_sizeof_VkMemoryResourcePropertiesMESA(const VkMemoryResourcePropertiesMESA *val)278{279size_t size = 0;280281size += vn_sizeof_VkStructureType(&val->sType);282size += vn_sizeof_VkMemoryResourcePropertiesMESA_pnext(val->pNext);283size += vn_sizeof_VkMemoryResourcePropertiesMESA_self(val);284285return size;286}287288static inline void289vn_decode_VkMemoryResourcePropertiesMESA_pnext(struct vn_cs_decoder *dec, const void *val)290{291VkBaseOutStructure *pnext = (VkBaseOutStructure *)val;292VkStructureType stype;293294if (!vn_decode_simple_pointer(dec))295return;296297vn_decode_VkStructureType(dec, &stype);298while (true) {299assert(pnext);300if (pnext->sType == stype)301break;302}303304switch ((int32_t)pnext->sType) {305case VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_100000_MESA:306vn_decode_VkMemoryResourcePropertiesMESA_pnext(dec, pnext->pNext);307vn_decode_VkMemoryResourceAllocationSizeProperties100000MESA_self(dec, (VkMemoryResourceAllocationSizeProperties100000MESA *)pnext);308break;309default:310assert(false);311break;312}313}314315static inline void316vn_decode_VkMemoryResourcePropertiesMESA_self(struct vn_cs_decoder *dec, VkMemoryResourcePropertiesMESA *val)317{318/* skip val->{sType,pNext} */319vn_decode_uint32_t(dec, &val->memoryTypeBits);320}321322static inline void323vn_decode_VkMemoryResourcePropertiesMESA(struct vn_cs_decoder *dec, VkMemoryResourcePropertiesMESA *val)324{325VkStructureType stype;326vn_decode_VkStructureType(dec, &stype);327assert(stype == VK_STRUCTURE_TYPE_MEMORY_RESOURCE_PROPERTIES_MESA);328329assert(val->sType == stype);330vn_decode_VkMemoryResourcePropertiesMESA_pnext(dec, val->pNext);331vn_decode_VkMemoryResourcePropertiesMESA_self(dec, val);332}333334static inline size_t335vn_sizeof_VkMemoryResourcePropertiesMESA_pnext_partial(const void *val)336{337const VkBaseInStructure *pnext = val;338size_t size = 0;339340while (pnext) {341switch ((int32_t)pnext->sType) {342case VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_100000_MESA:343size += vn_sizeof_simple_pointer(pnext);344size += vn_sizeof_VkStructureType(&pnext->sType);345size += vn_sizeof_VkMemoryResourcePropertiesMESA_pnext_partial(pnext->pNext);346size += vn_sizeof_VkMemoryResourceAllocationSizeProperties100000MESA_self_partial((const VkMemoryResourceAllocationSizeProperties100000MESA *)pnext);347return size;348default:349/* ignore unknown/unsupported struct */350break;351}352pnext = pnext->pNext;353}354355return vn_sizeof_simple_pointer(NULL);356}357358static inline size_t359vn_sizeof_VkMemoryResourcePropertiesMESA_self_partial(const VkMemoryResourcePropertiesMESA *val)360{361size_t size = 0;362/* skip val->{sType,pNext} */363/* skip val->memoryTypeBits */364return size;365}366367static inline size_t368vn_sizeof_VkMemoryResourcePropertiesMESA_partial(const VkMemoryResourcePropertiesMESA *val)369{370size_t size = 0;371372size += vn_sizeof_VkStructureType(&val->sType);373size += vn_sizeof_VkMemoryResourcePropertiesMESA_pnext_partial(val->pNext);374size += vn_sizeof_VkMemoryResourcePropertiesMESA_self_partial(val);375376return size;377}378379static inline void380vn_encode_VkMemoryResourcePropertiesMESA_pnext_partial(struct vn_cs_encoder *enc, const void *val)381{382const VkBaseInStructure *pnext = val;383384while (pnext) {385switch ((int32_t)pnext->sType) {386case VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_100000_MESA:387vn_encode_simple_pointer(enc, pnext);388vn_encode_VkStructureType(enc, &pnext->sType);389vn_encode_VkMemoryResourcePropertiesMESA_pnext_partial(enc, pnext->pNext);390vn_encode_VkMemoryResourceAllocationSizeProperties100000MESA_self_partial(enc, (const VkMemoryResourceAllocationSizeProperties100000MESA *)pnext);391return;392default:393/* ignore unknown/unsupported struct */394break;395}396pnext = pnext->pNext;397}398399vn_encode_simple_pointer(enc, NULL);400}401402static inline void403vn_encode_VkMemoryResourcePropertiesMESA_self_partial(struct vn_cs_encoder *enc, const VkMemoryResourcePropertiesMESA *val)404{405/* skip val->{sType,pNext} */406/* skip val->memoryTypeBits */407}408409static inline void410vn_encode_VkMemoryResourcePropertiesMESA_partial(struct vn_cs_encoder *enc, const VkMemoryResourcePropertiesMESA *val)411{412assert(val->sType == VK_STRUCTURE_TYPE_MEMORY_RESOURCE_PROPERTIES_MESA);413vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_MEMORY_RESOURCE_PROPERTIES_MESA });414vn_encode_VkMemoryResourcePropertiesMESA_pnext_partial(enc, val->pNext);415vn_encode_VkMemoryResourcePropertiesMESA_self_partial(enc, val);416}417418static inline size_t vn_sizeof_vkSetReplyCommandStreamMESA(const VkCommandStreamDescriptionMESA* pStream)419{420const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSetReplyCommandStreamMESA_EXT;421const VkFlags cmd_flags = 0;422size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);423424cmd_size += vn_sizeof_simple_pointer(pStream);425if (pStream)426cmd_size += vn_sizeof_VkCommandStreamDescriptionMESA(pStream);427428return cmd_size;429}430431static inline void vn_encode_vkSetReplyCommandStreamMESA(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, const VkCommandStreamDescriptionMESA* pStream)432{433const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSetReplyCommandStreamMESA_EXT;434435vn_encode_VkCommandTypeEXT(enc, &cmd_type);436vn_encode_VkFlags(enc, &cmd_flags);437438if (vn_encode_simple_pointer(enc, pStream))439vn_encode_VkCommandStreamDescriptionMESA(enc, pStream);440}441442static inline size_t vn_sizeof_vkSetReplyCommandStreamMESA_reply(const VkCommandStreamDescriptionMESA* pStream)443{444const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSetReplyCommandStreamMESA_EXT;445size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);446447/* skip pStream */448449return cmd_size;450}451452static inline void vn_decode_vkSetReplyCommandStreamMESA_reply(struct vn_cs_decoder *dec, const VkCommandStreamDescriptionMESA* pStream)453{454VkCommandTypeEXT command_type;455vn_decode_VkCommandTypeEXT(dec, &command_type);456assert(command_type == VK_COMMAND_TYPE_vkSetReplyCommandStreamMESA_EXT);457458/* skip pStream */459}460461static inline size_t vn_sizeof_vkSeekReplyCommandStreamMESA(size_t position)462{463const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSeekReplyCommandStreamMESA_EXT;464const VkFlags cmd_flags = 0;465size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);466467cmd_size += vn_sizeof_size_t(&position);468469return cmd_size;470}471472static inline void vn_encode_vkSeekReplyCommandStreamMESA(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, size_t position)473{474const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSeekReplyCommandStreamMESA_EXT;475476vn_encode_VkCommandTypeEXT(enc, &cmd_type);477vn_encode_VkFlags(enc, &cmd_flags);478479vn_encode_size_t(enc, &position);480}481482static inline size_t vn_sizeof_vkSeekReplyCommandStreamMESA_reply(size_t position)483{484const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSeekReplyCommandStreamMESA_EXT;485size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);486487/* skip position */488489return cmd_size;490}491492static inline void vn_decode_vkSeekReplyCommandStreamMESA_reply(struct vn_cs_decoder *dec, size_t position)493{494VkCommandTypeEXT command_type;495vn_decode_VkCommandTypeEXT(dec, &command_type);496assert(command_type == VK_COMMAND_TYPE_vkSeekReplyCommandStreamMESA_EXT);497498/* skip position */499}500501static inline size_t vn_sizeof_vkExecuteCommandStreamsMESA(uint32_t streamCount, const VkCommandStreamDescriptionMESA* pStreams, const size_t* pReplyPositions, uint32_t dependencyCount, const VkCommandStreamDependencyMESA* pDependencies, VkCommandStreamExecutionFlagsMESA flags)502{503const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkExecuteCommandStreamsMESA_EXT;504const VkFlags cmd_flags = 0;505size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);506507cmd_size += vn_sizeof_uint32_t(&streamCount);508if (pStreams) {509cmd_size += vn_sizeof_array_size(streamCount);510for (uint32_t i = 0; i < streamCount; i++)511cmd_size += vn_sizeof_VkCommandStreamDescriptionMESA(&pStreams[i]);512} else {513cmd_size += vn_sizeof_array_size(0);514}515if (pReplyPositions) {516cmd_size += vn_sizeof_array_size(streamCount);517cmd_size += vn_sizeof_size_t_array(pReplyPositions, streamCount);518} else {519cmd_size += vn_sizeof_array_size(0);520}521cmd_size += vn_sizeof_uint32_t(&dependencyCount);522if (pDependencies) {523cmd_size += vn_sizeof_array_size(dependencyCount);524for (uint32_t i = 0; i < dependencyCount; i++)525cmd_size += vn_sizeof_VkCommandStreamDependencyMESA(&pDependencies[i]);526} else {527cmd_size += vn_sizeof_array_size(0);528}529cmd_size += vn_sizeof_VkFlags(&flags);530531return cmd_size;532}533534static inline void vn_encode_vkExecuteCommandStreamsMESA(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, uint32_t streamCount, const VkCommandStreamDescriptionMESA* pStreams, const size_t* pReplyPositions, uint32_t dependencyCount, const VkCommandStreamDependencyMESA* pDependencies, VkCommandStreamExecutionFlagsMESA flags)535{536const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkExecuteCommandStreamsMESA_EXT;537538vn_encode_VkCommandTypeEXT(enc, &cmd_type);539vn_encode_VkFlags(enc, &cmd_flags);540541vn_encode_uint32_t(enc, &streamCount);542if (pStreams) {543vn_encode_array_size(enc, streamCount);544for (uint32_t i = 0; i < streamCount; i++)545vn_encode_VkCommandStreamDescriptionMESA(enc, &pStreams[i]);546} else {547vn_encode_array_size(enc, 0);548}549if (pReplyPositions) {550vn_encode_array_size(enc, streamCount);551vn_encode_size_t_array(enc, pReplyPositions, streamCount);552} else {553vn_encode_array_size(enc, 0);554}555vn_encode_uint32_t(enc, &dependencyCount);556if (pDependencies) {557vn_encode_array_size(enc, dependencyCount);558for (uint32_t i = 0; i < dependencyCount; i++)559vn_encode_VkCommandStreamDependencyMESA(enc, &pDependencies[i]);560} else {561vn_encode_array_size(enc, 0);562}563vn_encode_VkFlags(enc, &flags);564}565566static inline size_t vn_sizeof_vkExecuteCommandStreamsMESA_reply(uint32_t streamCount, const VkCommandStreamDescriptionMESA* pStreams, const size_t* pReplyPositions, uint32_t dependencyCount, const VkCommandStreamDependencyMESA* pDependencies, VkCommandStreamExecutionFlagsMESA flags)567{568const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkExecuteCommandStreamsMESA_EXT;569size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);570571/* skip streamCount */572/* skip pStreams */573/* skip pReplyPositions */574/* skip dependencyCount */575/* skip pDependencies */576/* skip flags */577578return cmd_size;579}580581static inline void vn_decode_vkExecuteCommandStreamsMESA_reply(struct vn_cs_decoder *dec, uint32_t streamCount, const VkCommandStreamDescriptionMESA* pStreams, const size_t* pReplyPositions, uint32_t dependencyCount, const VkCommandStreamDependencyMESA* pDependencies, VkCommandStreamExecutionFlagsMESA flags)582{583VkCommandTypeEXT command_type;584vn_decode_VkCommandTypeEXT(dec, &command_type);585assert(command_type == VK_COMMAND_TYPE_vkExecuteCommandStreamsMESA_EXT);586587/* skip streamCount */588/* skip pStreams */589/* skip pReplyPositions */590/* skip dependencyCount */591/* skip pDependencies */592/* skip flags */593}594595static inline size_t vn_sizeof_vkCreateRingMESA(uint64_t ring, const VkRingCreateInfoMESA* pCreateInfo)596{597const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateRingMESA_EXT;598const VkFlags cmd_flags = 0;599size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);600601cmd_size += vn_sizeof_uint64_t(&ring);602cmd_size += vn_sizeof_simple_pointer(pCreateInfo);603if (pCreateInfo)604cmd_size += vn_sizeof_VkRingCreateInfoMESA(pCreateInfo);605606return cmd_size;607}608609static inline void vn_encode_vkCreateRingMESA(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, uint64_t ring, const VkRingCreateInfoMESA* pCreateInfo)610{611const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateRingMESA_EXT;612613vn_encode_VkCommandTypeEXT(enc, &cmd_type);614vn_encode_VkFlags(enc, &cmd_flags);615616vn_encode_uint64_t(enc, &ring);617if (vn_encode_simple_pointer(enc, pCreateInfo))618vn_encode_VkRingCreateInfoMESA(enc, pCreateInfo);619}620621static inline size_t vn_sizeof_vkCreateRingMESA_reply(uint64_t ring, const VkRingCreateInfoMESA* pCreateInfo)622{623const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateRingMESA_EXT;624size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);625626/* skip ring */627/* skip pCreateInfo */628629return cmd_size;630}631632static inline void vn_decode_vkCreateRingMESA_reply(struct vn_cs_decoder *dec, uint64_t ring, const VkRingCreateInfoMESA* pCreateInfo)633{634VkCommandTypeEXT command_type;635vn_decode_VkCommandTypeEXT(dec, &command_type);636assert(command_type == VK_COMMAND_TYPE_vkCreateRingMESA_EXT);637638/* skip ring */639/* skip pCreateInfo */640}641642static inline size_t vn_sizeof_vkDestroyRingMESA(uint64_t ring)643{644const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyRingMESA_EXT;645const VkFlags cmd_flags = 0;646size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);647648cmd_size += vn_sizeof_uint64_t(&ring);649650return cmd_size;651}652653static inline void vn_encode_vkDestroyRingMESA(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, uint64_t ring)654{655const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyRingMESA_EXT;656657vn_encode_VkCommandTypeEXT(enc, &cmd_type);658vn_encode_VkFlags(enc, &cmd_flags);659660vn_encode_uint64_t(enc, &ring);661}662663static inline size_t vn_sizeof_vkDestroyRingMESA_reply(uint64_t ring)664{665const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyRingMESA_EXT;666size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);667668/* skip ring */669670return cmd_size;671}672673static inline void vn_decode_vkDestroyRingMESA_reply(struct vn_cs_decoder *dec, uint64_t ring)674{675VkCommandTypeEXT command_type;676vn_decode_VkCommandTypeEXT(dec, &command_type);677assert(command_type == VK_COMMAND_TYPE_vkDestroyRingMESA_EXT);678679/* skip ring */680}681682static inline size_t vn_sizeof_vkNotifyRingMESA(uint64_t ring, uint32_t seqno, VkRingNotifyFlagsMESA flags)683{684const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkNotifyRingMESA_EXT;685const VkFlags cmd_flags = 0;686size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);687688cmd_size += vn_sizeof_uint64_t(&ring);689cmd_size += vn_sizeof_uint32_t(&seqno);690cmd_size += vn_sizeof_VkFlags(&flags);691692return cmd_size;693}694695static inline void vn_encode_vkNotifyRingMESA(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, uint64_t ring, uint32_t seqno, VkRingNotifyFlagsMESA flags)696{697const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkNotifyRingMESA_EXT;698699vn_encode_VkCommandTypeEXT(enc, &cmd_type);700vn_encode_VkFlags(enc, &cmd_flags);701702vn_encode_uint64_t(enc, &ring);703vn_encode_uint32_t(enc, &seqno);704vn_encode_VkFlags(enc, &flags);705}706707static inline size_t vn_sizeof_vkNotifyRingMESA_reply(uint64_t ring, uint32_t seqno, VkRingNotifyFlagsMESA flags)708{709const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkNotifyRingMESA_EXT;710size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);711712/* skip ring */713/* skip seqno */714/* skip flags */715716return cmd_size;717}718719static inline void vn_decode_vkNotifyRingMESA_reply(struct vn_cs_decoder *dec, uint64_t ring, uint32_t seqno, VkRingNotifyFlagsMESA flags)720{721VkCommandTypeEXT command_type;722vn_decode_VkCommandTypeEXT(dec, &command_type);723assert(command_type == VK_COMMAND_TYPE_vkNotifyRingMESA_EXT);724725/* skip ring */726/* skip seqno */727/* skip flags */728}729730static inline size_t vn_sizeof_vkWriteRingExtraMESA(uint64_t ring, size_t offset, uint32_t value)731{732const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkWriteRingExtraMESA_EXT;733const VkFlags cmd_flags = 0;734size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);735736cmd_size += vn_sizeof_uint64_t(&ring);737cmd_size += vn_sizeof_size_t(&offset);738cmd_size += vn_sizeof_uint32_t(&value);739740return cmd_size;741}742743static inline void vn_encode_vkWriteRingExtraMESA(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, uint64_t ring, size_t offset, uint32_t value)744{745const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkWriteRingExtraMESA_EXT;746747vn_encode_VkCommandTypeEXT(enc, &cmd_type);748vn_encode_VkFlags(enc, &cmd_flags);749750vn_encode_uint64_t(enc, &ring);751vn_encode_size_t(enc, &offset);752vn_encode_uint32_t(enc, &value);753}754755static inline size_t vn_sizeof_vkWriteRingExtraMESA_reply(uint64_t ring, size_t offset, uint32_t value)756{757const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkWriteRingExtraMESA_EXT;758size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);759760/* skip ring */761/* skip offset */762/* skip value */763764return cmd_size;765}766767static inline void vn_decode_vkWriteRingExtraMESA_reply(struct vn_cs_decoder *dec, uint64_t ring, size_t offset, uint32_t value)768{769VkCommandTypeEXT command_type;770vn_decode_VkCommandTypeEXT(dec, &command_type);771assert(command_type == VK_COMMAND_TYPE_vkWriteRingExtraMESA_EXT);772773/* skip ring */774/* skip offset */775/* skip value */776}777778static inline size_t vn_sizeof_vkGetMemoryResourcePropertiesMESA(VkDevice device, uint32_t resourceId, VkMemoryResourcePropertiesMESA* pMemoryResourceProperties)779{780const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetMemoryResourcePropertiesMESA_EXT;781const VkFlags cmd_flags = 0;782size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);783784cmd_size += vn_sizeof_VkDevice(&device);785cmd_size += vn_sizeof_uint32_t(&resourceId);786cmd_size += vn_sizeof_simple_pointer(pMemoryResourceProperties);787if (pMemoryResourceProperties)788cmd_size += vn_sizeof_VkMemoryResourcePropertiesMESA_partial(pMemoryResourceProperties);789790return cmd_size;791}792793static inline void vn_encode_vkGetMemoryResourcePropertiesMESA(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, uint32_t resourceId, VkMemoryResourcePropertiesMESA* pMemoryResourceProperties)794{795const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetMemoryResourcePropertiesMESA_EXT;796797vn_encode_VkCommandTypeEXT(enc, &cmd_type);798vn_encode_VkFlags(enc, &cmd_flags);799800vn_encode_VkDevice(enc, &device);801vn_encode_uint32_t(enc, &resourceId);802if (vn_encode_simple_pointer(enc, pMemoryResourceProperties))803vn_encode_VkMemoryResourcePropertiesMESA_partial(enc, pMemoryResourceProperties);804}805806static inline size_t vn_sizeof_vkGetMemoryResourcePropertiesMESA_reply(VkDevice device, uint32_t resourceId, VkMemoryResourcePropertiesMESA* pMemoryResourceProperties)807{808const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetMemoryResourcePropertiesMESA_EXT;809size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);810811VkResult ret;812cmd_size += vn_sizeof_VkResult(&ret);813/* skip device */814/* skip resourceId */815cmd_size += vn_sizeof_simple_pointer(pMemoryResourceProperties);816if (pMemoryResourceProperties)817cmd_size += vn_sizeof_VkMemoryResourcePropertiesMESA(pMemoryResourceProperties);818819return cmd_size;820}821822static inline VkResult vn_decode_vkGetMemoryResourcePropertiesMESA_reply(struct vn_cs_decoder *dec, VkDevice device, uint32_t resourceId, VkMemoryResourcePropertiesMESA* pMemoryResourceProperties)823{824VkCommandTypeEXT command_type;825vn_decode_VkCommandTypeEXT(dec, &command_type);826assert(command_type == VK_COMMAND_TYPE_vkGetMemoryResourcePropertiesMESA_EXT);827828VkResult ret;829vn_decode_VkResult(dec, &ret);830/* skip device */831/* skip resourceId */832if (vn_decode_simple_pointer(dec)) {833vn_decode_VkMemoryResourcePropertiesMESA(dec, pMemoryResourceProperties);834} else {835pMemoryResourceProperties = NULL;836}837838return ret;839}840841static inline size_t vn_sizeof_vkGetVenusExperimentalFeatureData100000MESA(size_t* pDataSize, void* pData)842{843const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetVenusExperimentalFeatureData100000MESA_EXT;844const VkFlags cmd_flags = 0;845size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);846847cmd_size += vn_sizeof_simple_pointer(pDataSize);848if (pDataSize)849cmd_size += vn_sizeof_size_t(pDataSize);850cmd_size += vn_sizeof_simple_pointer(pData); /* out */851852return cmd_size;853}854855static inline void vn_encode_vkGetVenusExperimentalFeatureData100000MESA(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, size_t* pDataSize, void* pData)856{857const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetVenusExperimentalFeatureData100000MESA_EXT;858859vn_encode_VkCommandTypeEXT(enc, &cmd_type);860vn_encode_VkFlags(enc, &cmd_flags);861862if (vn_encode_simple_pointer(enc, pDataSize))863vn_encode_size_t(enc, pDataSize);864vn_encode_array_size(enc, pData ? *pDataSize : 0); /* out */865}866867static inline size_t vn_sizeof_vkGetVenusExperimentalFeatureData100000MESA_reply(size_t* pDataSize, void* pData)868{869const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetVenusExperimentalFeatureData100000MESA_EXT;870size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);871872cmd_size += vn_sizeof_simple_pointer(pDataSize);873if (pDataSize)874cmd_size += vn_sizeof_size_t(pDataSize);875if (pData) {876cmd_size += vn_sizeof_array_size(*pDataSize);877cmd_size += vn_sizeof_blob_array(pData, *pDataSize);878} else {879cmd_size += vn_sizeof_array_size(0);880}881882return cmd_size;883}884885static inline void vn_decode_vkGetVenusExperimentalFeatureData100000MESA_reply(struct vn_cs_decoder *dec, size_t* pDataSize, void* pData)886{887VkCommandTypeEXT command_type;888vn_decode_VkCommandTypeEXT(dec, &command_type);889assert(command_type == VK_COMMAND_TYPE_vkGetVenusExperimentalFeatureData100000MESA_EXT);890891if (vn_decode_simple_pointer(dec)) {892vn_decode_size_t(dec, pDataSize);893} else {894pDataSize = NULL;895}896if (vn_peek_array_size(dec)) {897const size_t array_size = vn_decode_array_size(dec, *pDataSize);898vn_decode_blob_array(dec, pData, array_size);899} else {900vn_decode_array_size(dec, 0);901pData = NULL;902}903}904905static inline void vn_submit_vkSetReplyCommandStreamMESA(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, const VkCommandStreamDescriptionMESA* pStream, struct vn_instance_submit_command *submit)906{907uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];908void *cmd_data = local_cmd_data;909size_t cmd_size = vn_sizeof_vkSetReplyCommandStreamMESA(pStream);910if (cmd_size > sizeof(local_cmd_data)) {911cmd_data = malloc(cmd_size);912if (!cmd_data)913cmd_size = 0;914}915const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkSetReplyCommandStreamMESA_reply(pStream) : 0;916917struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);918if (cmd_size) {919vn_encode_vkSetReplyCommandStreamMESA(enc, cmd_flags, pStream);920vn_instance_submit_command(vn_instance, submit);921if (cmd_data != local_cmd_data)922free(cmd_data);923}924}925926static inline void vn_submit_vkSeekReplyCommandStreamMESA(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, size_t position, struct vn_instance_submit_command *submit)927{928uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];929void *cmd_data = local_cmd_data;930size_t cmd_size = vn_sizeof_vkSeekReplyCommandStreamMESA(position);931if (cmd_size > sizeof(local_cmd_data)) {932cmd_data = malloc(cmd_size);933if (!cmd_data)934cmd_size = 0;935}936const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkSeekReplyCommandStreamMESA_reply(position) : 0;937938struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);939if (cmd_size) {940vn_encode_vkSeekReplyCommandStreamMESA(enc, cmd_flags, position);941vn_instance_submit_command(vn_instance, submit);942if (cmd_data != local_cmd_data)943free(cmd_data);944}945}946947static inline void vn_submit_vkExecuteCommandStreamsMESA(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, uint32_t streamCount, const VkCommandStreamDescriptionMESA* pStreams, const size_t* pReplyPositions, uint32_t dependencyCount, const VkCommandStreamDependencyMESA* pDependencies, VkCommandStreamExecutionFlagsMESA flags, struct vn_instance_submit_command *submit)948{949uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];950void *cmd_data = local_cmd_data;951size_t cmd_size = vn_sizeof_vkExecuteCommandStreamsMESA(streamCount, pStreams, pReplyPositions, dependencyCount, pDependencies, flags);952if (cmd_size > sizeof(local_cmd_data)) {953cmd_data = malloc(cmd_size);954if (!cmd_data)955cmd_size = 0;956}957const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkExecuteCommandStreamsMESA_reply(streamCount, pStreams, pReplyPositions, dependencyCount, pDependencies, flags) : 0;958959struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);960if (cmd_size) {961vn_encode_vkExecuteCommandStreamsMESA(enc, cmd_flags, streamCount, pStreams, pReplyPositions, dependencyCount, pDependencies, flags);962vn_instance_submit_command(vn_instance, submit);963if (cmd_data != local_cmd_data)964free(cmd_data);965}966}967968static inline void vn_submit_vkCreateRingMESA(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, uint64_t ring, const VkRingCreateInfoMESA* pCreateInfo, struct vn_instance_submit_command *submit)969{970uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];971void *cmd_data = local_cmd_data;972size_t cmd_size = vn_sizeof_vkCreateRingMESA(ring, pCreateInfo);973if (cmd_size > sizeof(local_cmd_data)) {974cmd_data = malloc(cmd_size);975if (!cmd_data)976cmd_size = 0;977}978const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCreateRingMESA_reply(ring, pCreateInfo) : 0;979980struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);981if (cmd_size) {982vn_encode_vkCreateRingMESA(enc, cmd_flags, ring, pCreateInfo);983vn_instance_submit_command(vn_instance, submit);984if (cmd_data != local_cmd_data)985free(cmd_data);986}987}988989static inline void vn_submit_vkDestroyRingMESA(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, uint64_t ring, struct vn_instance_submit_command *submit)990{991uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];992void *cmd_data = local_cmd_data;993size_t cmd_size = vn_sizeof_vkDestroyRingMESA(ring);994if (cmd_size > sizeof(local_cmd_data)) {995cmd_data = malloc(cmd_size);996if (!cmd_data)997cmd_size = 0;998}999const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkDestroyRingMESA_reply(ring) : 0;10001001struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);1002if (cmd_size) {1003vn_encode_vkDestroyRingMESA(enc, cmd_flags, ring);1004vn_instance_submit_command(vn_instance, submit);1005if (cmd_data != local_cmd_data)1006free(cmd_data);1007}1008}10091010static inline void vn_submit_vkNotifyRingMESA(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, uint64_t ring, uint32_t seqno, VkRingNotifyFlagsMESA flags, struct vn_instance_submit_command *submit)1011{1012uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];1013void *cmd_data = local_cmd_data;1014size_t cmd_size = vn_sizeof_vkNotifyRingMESA(ring, seqno, flags);1015if (cmd_size > sizeof(local_cmd_data)) {1016cmd_data = malloc(cmd_size);1017if (!cmd_data)1018cmd_size = 0;1019}1020const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkNotifyRingMESA_reply(ring, seqno, flags) : 0;10211022struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);1023if (cmd_size) {1024vn_encode_vkNotifyRingMESA(enc, cmd_flags, ring, seqno, flags);1025vn_instance_submit_command(vn_instance, submit);1026if (cmd_data != local_cmd_data)1027free(cmd_data);1028}1029}10301031static inline void vn_submit_vkWriteRingExtraMESA(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, uint64_t ring, size_t offset, uint32_t value, struct vn_instance_submit_command *submit)1032{1033uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];1034void *cmd_data = local_cmd_data;1035size_t cmd_size = vn_sizeof_vkWriteRingExtraMESA(ring, offset, value);1036if (cmd_size > sizeof(local_cmd_data)) {1037cmd_data = malloc(cmd_size);1038if (!cmd_data)1039cmd_size = 0;1040}1041const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkWriteRingExtraMESA_reply(ring, offset, value) : 0;10421043struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);1044if (cmd_size) {1045vn_encode_vkWriteRingExtraMESA(enc, cmd_flags, ring, offset, value);1046vn_instance_submit_command(vn_instance, submit);1047if (cmd_data != local_cmd_data)1048free(cmd_data);1049}1050}10511052static inline void vn_submit_vkGetMemoryResourcePropertiesMESA(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, uint32_t resourceId, VkMemoryResourcePropertiesMESA* pMemoryResourceProperties, struct vn_instance_submit_command *submit)1053{1054uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];1055void *cmd_data = local_cmd_data;1056size_t cmd_size = vn_sizeof_vkGetMemoryResourcePropertiesMESA(device, resourceId, pMemoryResourceProperties);1057if (cmd_size > sizeof(local_cmd_data)) {1058cmd_data = malloc(cmd_size);1059if (!cmd_data)1060cmd_size = 0;1061}1062const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetMemoryResourcePropertiesMESA_reply(device, resourceId, pMemoryResourceProperties) : 0;10631064struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);1065if (cmd_size) {1066vn_encode_vkGetMemoryResourcePropertiesMESA(enc, cmd_flags, device, resourceId, pMemoryResourceProperties);1067vn_instance_submit_command(vn_instance, submit);1068if (cmd_data != local_cmd_data)1069free(cmd_data);1070}1071}10721073static inline void vn_submit_vkGetVenusExperimentalFeatureData100000MESA(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, size_t* pDataSize, void* pData, struct vn_instance_submit_command *submit)1074{1075uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];1076void *cmd_data = local_cmd_data;1077size_t cmd_size = vn_sizeof_vkGetVenusExperimentalFeatureData100000MESA(pDataSize, pData);1078if (cmd_size > sizeof(local_cmd_data)) {1079cmd_data = malloc(cmd_size);1080if (!cmd_data)1081cmd_size = 0;1082}1083const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetVenusExperimentalFeatureData100000MESA_reply(pDataSize, pData) : 0;10841085struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);1086if (cmd_size) {1087vn_encode_vkGetVenusExperimentalFeatureData100000MESA(enc, cmd_flags, pDataSize, pData);1088vn_instance_submit_command(vn_instance, submit);1089if (cmd_data != local_cmd_data)1090free(cmd_data);1091}1092}10931094static inline void vn_call_vkSetReplyCommandStreamMESA(struct vn_instance *vn_instance, const VkCommandStreamDescriptionMESA* pStream)1095{1096struct vn_instance_submit_command submit;1097vn_submit_vkSetReplyCommandStreamMESA(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, pStream, &submit);1098struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);1099if (dec) {1100vn_decode_vkSetReplyCommandStreamMESA_reply(dec, pStream);1101vn_instance_free_command_reply(vn_instance, &submit);1102}1103}11041105static inline void vn_async_vkSetReplyCommandStreamMESA(struct vn_instance *vn_instance, const VkCommandStreamDescriptionMESA* pStream)1106{1107struct vn_instance_submit_command submit;1108vn_submit_vkSetReplyCommandStreamMESA(vn_instance, 0, pStream, &submit);1109}11101111static inline void vn_call_vkSeekReplyCommandStreamMESA(struct vn_instance *vn_instance, size_t position)1112{1113struct vn_instance_submit_command submit;1114vn_submit_vkSeekReplyCommandStreamMESA(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, position, &submit);1115struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);1116if (dec) {1117vn_decode_vkSeekReplyCommandStreamMESA_reply(dec, position);1118vn_instance_free_command_reply(vn_instance, &submit);1119}1120}11211122static inline void vn_async_vkSeekReplyCommandStreamMESA(struct vn_instance *vn_instance, size_t position)1123{1124struct vn_instance_submit_command submit;1125vn_submit_vkSeekReplyCommandStreamMESA(vn_instance, 0, position, &submit);1126}11271128static inline void vn_call_vkExecuteCommandStreamsMESA(struct vn_instance *vn_instance, uint32_t streamCount, const VkCommandStreamDescriptionMESA* pStreams, const size_t* pReplyPositions, uint32_t dependencyCount, const VkCommandStreamDependencyMESA* pDependencies, VkCommandStreamExecutionFlagsMESA flags)1129{1130struct vn_instance_submit_command submit;1131vn_submit_vkExecuteCommandStreamsMESA(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, streamCount, pStreams, pReplyPositions, dependencyCount, pDependencies, flags, &submit);1132struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);1133if (dec) {1134vn_decode_vkExecuteCommandStreamsMESA_reply(dec, streamCount, pStreams, pReplyPositions, dependencyCount, pDependencies, flags);1135vn_instance_free_command_reply(vn_instance, &submit);1136}1137}11381139static inline void vn_async_vkExecuteCommandStreamsMESA(struct vn_instance *vn_instance, uint32_t streamCount, const VkCommandStreamDescriptionMESA* pStreams, const size_t* pReplyPositions, uint32_t dependencyCount, const VkCommandStreamDependencyMESA* pDependencies, VkCommandStreamExecutionFlagsMESA flags)1140{1141struct vn_instance_submit_command submit;1142vn_submit_vkExecuteCommandStreamsMESA(vn_instance, 0, streamCount, pStreams, pReplyPositions, dependencyCount, pDependencies, flags, &submit);1143}11441145static inline void vn_call_vkCreateRingMESA(struct vn_instance *vn_instance, uint64_t ring, const VkRingCreateInfoMESA* pCreateInfo)1146{1147struct vn_instance_submit_command submit;1148vn_submit_vkCreateRingMESA(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, ring, pCreateInfo, &submit);1149struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);1150if (dec) {1151vn_decode_vkCreateRingMESA_reply(dec, ring, pCreateInfo);1152vn_instance_free_command_reply(vn_instance, &submit);1153}1154}11551156static inline void vn_async_vkCreateRingMESA(struct vn_instance *vn_instance, uint64_t ring, const VkRingCreateInfoMESA* pCreateInfo)1157{1158struct vn_instance_submit_command submit;1159vn_submit_vkCreateRingMESA(vn_instance, 0, ring, pCreateInfo, &submit);1160}11611162static inline void vn_call_vkDestroyRingMESA(struct vn_instance *vn_instance, uint64_t ring)1163{1164struct vn_instance_submit_command submit;1165vn_submit_vkDestroyRingMESA(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, ring, &submit);1166struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);1167if (dec) {1168vn_decode_vkDestroyRingMESA_reply(dec, ring);1169vn_instance_free_command_reply(vn_instance, &submit);1170}1171}11721173static inline void vn_async_vkDestroyRingMESA(struct vn_instance *vn_instance, uint64_t ring)1174{1175struct vn_instance_submit_command submit;1176vn_submit_vkDestroyRingMESA(vn_instance, 0, ring, &submit);1177}11781179static inline void vn_call_vkNotifyRingMESA(struct vn_instance *vn_instance, uint64_t ring, uint32_t seqno, VkRingNotifyFlagsMESA flags)1180{1181struct vn_instance_submit_command submit;1182vn_submit_vkNotifyRingMESA(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, ring, seqno, flags, &submit);1183struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);1184if (dec) {1185vn_decode_vkNotifyRingMESA_reply(dec, ring, seqno, flags);1186vn_instance_free_command_reply(vn_instance, &submit);1187}1188}11891190static inline void vn_async_vkNotifyRingMESA(struct vn_instance *vn_instance, uint64_t ring, uint32_t seqno, VkRingNotifyFlagsMESA flags)1191{1192struct vn_instance_submit_command submit;1193vn_submit_vkNotifyRingMESA(vn_instance, 0, ring, seqno, flags, &submit);1194}11951196static inline void vn_call_vkWriteRingExtraMESA(struct vn_instance *vn_instance, uint64_t ring, size_t offset, uint32_t value)1197{1198struct vn_instance_submit_command submit;1199vn_submit_vkWriteRingExtraMESA(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, ring, offset, value, &submit);1200struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);1201if (dec) {1202vn_decode_vkWriteRingExtraMESA_reply(dec, ring, offset, value);1203vn_instance_free_command_reply(vn_instance, &submit);1204}1205}12061207static inline void vn_async_vkWriteRingExtraMESA(struct vn_instance *vn_instance, uint64_t ring, size_t offset, uint32_t value)1208{1209struct vn_instance_submit_command submit;1210vn_submit_vkWriteRingExtraMESA(vn_instance, 0, ring, offset, value, &submit);1211}12121213static inline VkResult vn_call_vkGetMemoryResourcePropertiesMESA(struct vn_instance *vn_instance, VkDevice device, uint32_t resourceId, VkMemoryResourcePropertiesMESA* pMemoryResourceProperties)1214{1215struct vn_instance_submit_command submit;1216vn_submit_vkGetMemoryResourcePropertiesMESA(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, resourceId, pMemoryResourceProperties, &submit);1217struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);1218if (dec) {1219const VkResult ret = vn_decode_vkGetMemoryResourcePropertiesMESA_reply(dec, device, resourceId, pMemoryResourceProperties);1220vn_instance_free_command_reply(vn_instance, &submit);1221return ret;1222} else {1223return VK_ERROR_OUT_OF_HOST_MEMORY;1224}1225}12261227static inline void vn_async_vkGetMemoryResourcePropertiesMESA(struct vn_instance *vn_instance, VkDevice device, uint32_t resourceId, VkMemoryResourcePropertiesMESA* pMemoryResourceProperties)1228{1229struct vn_instance_submit_command submit;1230vn_submit_vkGetMemoryResourcePropertiesMESA(vn_instance, 0, device, resourceId, pMemoryResourceProperties, &submit);1231}12321233static inline void vn_call_vkGetVenusExperimentalFeatureData100000MESA(struct vn_instance *vn_instance, size_t* pDataSize, void* pData)1234{1235struct vn_instance_submit_command submit;1236vn_submit_vkGetVenusExperimentalFeatureData100000MESA(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, pDataSize, pData, &submit);1237struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);1238if (dec) {1239vn_decode_vkGetVenusExperimentalFeatureData100000MESA_reply(dec, pDataSize, pData);1240vn_instance_free_command_reply(vn_instance, &submit);1241}1242}12431244static inline void vn_async_vkGetVenusExperimentalFeatureData100000MESA(struct vn_instance *vn_instance, size_t* pDataSize, void* pData)1245{1246struct vn_instance_submit_command submit;1247vn_submit_vkGetVenusExperimentalFeatureData100000MESA(vn_instance, 0, pDataSize, pData, &submit);1248}12491250#endif /* VN_PROTOCOL_DRIVER_TRANSPORT_H */125112521253