Path: blob/21.2-virgl/src/virtio/venus-protocol/vn_protocol_driver_sampler_ycbcr_conversion.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_SAMPLER_YCBCR_CONVERSION_H8#define VN_PROTOCOL_DRIVER_SAMPLER_YCBCR_CONVERSION_H910#include "vn_device.h"11#include "vn_protocol_driver_structs.h"1213/* struct VkSamplerYcbcrConversionCreateInfo chain */1415static inline size_t16vn_sizeof_VkSamplerYcbcrConversionCreateInfo_pnext(const void *val)17{18/* no known/supported struct */19return vn_sizeof_simple_pointer(NULL);20}2122static inline size_t23vn_sizeof_VkSamplerYcbcrConversionCreateInfo_self(const VkSamplerYcbcrConversionCreateInfo *val)24{25size_t size = 0;26/* skip val->{sType,pNext} */27size += vn_sizeof_VkFormat(&val->format);28size += vn_sizeof_VkSamplerYcbcrModelConversion(&val->ycbcrModel);29size += vn_sizeof_VkSamplerYcbcrRange(&val->ycbcrRange);30size += vn_sizeof_VkComponentMapping(&val->components);31size += vn_sizeof_VkChromaLocation(&val->xChromaOffset);32size += vn_sizeof_VkChromaLocation(&val->yChromaOffset);33size += vn_sizeof_VkFilter(&val->chromaFilter);34size += vn_sizeof_VkBool32(&val->forceExplicitReconstruction);35return size;36}3738static inline size_t39vn_sizeof_VkSamplerYcbcrConversionCreateInfo(const VkSamplerYcbcrConversionCreateInfo *val)40{41size_t size = 0;4243size += vn_sizeof_VkStructureType(&val->sType);44size += vn_sizeof_VkSamplerYcbcrConversionCreateInfo_pnext(val->pNext);45size += vn_sizeof_VkSamplerYcbcrConversionCreateInfo_self(val);4647return size;48}4950static inline void51vn_encode_VkSamplerYcbcrConversionCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)52{53/* no known/supported struct */54vn_encode_simple_pointer(enc, NULL);55}5657static inline void58vn_encode_VkSamplerYcbcrConversionCreateInfo_self(struct vn_cs_encoder *enc, const VkSamplerYcbcrConversionCreateInfo *val)59{60/* skip val->{sType,pNext} */61vn_encode_VkFormat(enc, &val->format);62vn_encode_VkSamplerYcbcrModelConversion(enc, &val->ycbcrModel);63vn_encode_VkSamplerYcbcrRange(enc, &val->ycbcrRange);64vn_encode_VkComponentMapping(enc, &val->components);65vn_encode_VkChromaLocation(enc, &val->xChromaOffset);66vn_encode_VkChromaLocation(enc, &val->yChromaOffset);67vn_encode_VkFilter(enc, &val->chromaFilter);68vn_encode_VkBool32(enc, &val->forceExplicitReconstruction);69}7071static inline void72vn_encode_VkSamplerYcbcrConversionCreateInfo(struct vn_cs_encoder *enc, const VkSamplerYcbcrConversionCreateInfo *val)73{74assert(val->sType == VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO);75vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO });76vn_encode_VkSamplerYcbcrConversionCreateInfo_pnext(enc, val->pNext);77vn_encode_VkSamplerYcbcrConversionCreateInfo_self(enc, val);78}7980static inline size_t vn_sizeof_vkCreateSamplerYcbcrConversion(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion)81{82const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateSamplerYcbcrConversion_EXT;83const VkFlags cmd_flags = 0;84size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);8586cmd_size += vn_sizeof_VkDevice(&device);87cmd_size += vn_sizeof_simple_pointer(pCreateInfo);88if (pCreateInfo)89cmd_size += vn_sizeof_VkSamplerYcbcrConversionCreateInfo(pCreateInfo);90cmd_size += vn_sizeof_simple_pointer(pAllocator);91if (pAllocator)92assert(false);93cmd_size += vn_sizeof_simple_pointer(pYcbcrConversion);94if (pYcbcrConversion)95cmd_size += vn_sizeof_VkSamplerYcbcrConversion(pYcbcrConversion);9697return cmd_size;98}99100static inline void vn_encode_vkCreateSamplerYcbcrConversion(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion)101{102const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateSamplerYcbcrConversion_EXT;103104vn_encode_VkCommandTypeEXT(enc, &cmd_type);105vn_encode_VkFlags(enc, &cmd_flags);106107vn_encode_VkDevice(enc, &device);108if (vn_encode_simple_pointer(enc, pCreateInfo))109vn_encode_VkSamplerYcbcrConversionCreateInfo(enc, pCreateInfo);110if (vn_encode_simple_pointer(enc, pAllocator))111assert(false);112if (vn_encode_simple_pointer(enc, pYcbcrConversion))113vn_encode_VkSamplerYcbcrConversion(enc, pYcbcrConversion);114}115116static inline size_t vn_sizeof_vkCreateSamplerYcbcrConversion_reply(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion)117{118const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateSamplerYcbcrConversion_EXT;119size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);120121VkResult ret;122cmd_size += vn_sizeof_VkResult(&ret);123/* skip device */124/* skip pCreateInfo */125/* skip pAllocator */126cmd_size += vn_sizeof_simple_pointer(pYcbcrConversion);127if (pYcbcrConversion)128cmd_size += vn_sizeof_VkSamplerYcbcrConversion(pYcbcrConversion);129130return cmd_size;131}132133static inline VkResult vn_decode_vkCreateSamplerYcbcrConversion_reply(struct vn_cs_decoder *dec, VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion)134{135VkCommandTypeEXT command_type;136vn_decode_VkCommandTypeEXT(dec, &command_type);137assert(command_type == VK_COMMAND_TYPE_vkCreateSamplerYcbcrConversion_EXT);138139VkResult ret;140vn_decode_VkResult(dec, &ret);141/* skip device */142/* skip pCreateInfo */143/* skip pAllocator */144if (vn_decode_simple_pointer(dec)) {145vn_decode_VkSamplerYcbcrConversion(dec, pYcbcrConversion);146} else {147pYcbcrConversion = NULL;148}149150return ret;151}152153static inline size_t vn_sizeof_vkDestroySamplerYcbcrConversion(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator)154{155const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroySamplerYcbcrConversion_EXT;156const VkFlags cmd_flags = 0;157size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);158159cmd_size += vn_sizeof_VkDevice(&device);160cmd_size += vn_sizeof_VkSamplerYcbcrConversion(&ycbcrConversion);161cmd_size += vn_sizeof_simple_pointer(pAllocator);162if (pAllocator)163assert(false);164165return cmd_size;166}167168static inline void vn_encode_vkDestroySamplerYcbcrConversion(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator)169{170const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroySamplerYcbcrConversion_EXT;171172vn_encode_VkCommandTypeEXT(enc, &cmd_type);173vn_encode_VkFlags(enc, &cmd_flags);174175vn_encode_VkDevice(enc, &device);176vn_encode_VkSamplerYcbcrConversion(enc, &ycbcrConversion);177if (vn_encode_simple_pointer(enc, pAllocator))178assert(false);179}180181static inline size_t vn_sizeof_vkDestroySamplerYcbcrConversion_reply(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator)182{183const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroySamplerYcbcrConversion_EXT;184size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);185186/* skip device */187/* skip ycbcrConversion */188/* skip pAllocator */189190return cmd_size;191}192193static inline void vn_decode_vkDestroySamplerYcbcrConversion_reply(struct vn_cs_decoder *dec, VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator)194{195VkCommandTypeEXT command_type;196vn_decode_VkCommandTypeEXT(dec, &command_type);197assert(command_type == VK_COMMAND_TYPE_vkDestroySamplerYcbcrConversion_EXT);198199/* skip device */200/* skip ycbcrConversion */201/* skip pAllocator */202}203204static inline void vn_submit_vkCreateSamplerYcbcrConversion(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion, struct vn_instance_submit_command *submit)205{206uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];207void *cmd_data = local_cmd_data;208size_t cmd_size = vn_sizeof_vkCreateSamplerYcbcrConversion(device, pCreateInfo, pAllocator, pYcbcrConversion);209if (cmd_size > sizeof(local_cmd_data)) {210cmd_data = malloc(cmd_size);211if (!cmd_data)212cmd_size = 0;213}214const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCreateSamplerYcbcrConversion_reply(device, pCreateInfo, pAllocator, pYcbcrConversion) : 0;215216struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);217if (cmd_size) {218vn_encode_vkCreateSamplerYcbcrConversion(enc, cmd_flags, device, pCreateInfo, pAllocator, pYcbcrConversion);219vn_instance_submit_command(vn_instance, submit);220if (cmd_data != local_cmd_data)221free(cmd_data);222}223}224225static inline void vn_submit_vkDestroySamplerYcbcrConversion(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator, struct vn_instance_submit_command *submit)226{227uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];228void *cmd_data = local_cmd_data;229size_t cmd_size = vn_sizeof_vkDestroySamplerYcbcrConversion(device, ycbcrConversion, pAllocator);230if (cmd_size > sizeof(local_cmd_data)) {231cmd_data = malloc(cmd_size);232if (!cmd_data)233cmd_size = 0;234}235const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkDestroySamplerYcbcrConversion_reply(device, ycbcrConversion, pAllocator) : 0;236237struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);238if (cmd_size) {239vn_encode_vkDestroySamplerYcbcrConversion(enc, cmd_flags, device, ycbcrConversion, pAllocator);240vn_instance_submit_command(vn_instance, submit);241if (cmd_data != local_cmd_data)242free(cmd_data);243}244}245246static inline VkResult vn_call_vkCreateSamplerYcbcrConversion(struct vn_instance *vn_instance, VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion)247{248struct vn_instance_submit_command submit;249vn_submit_vkCreateSamplerYcbcrConversion(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pCreateInfo, pAllocator, pYcbcrConversion, &submit);250struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);251if (dec) {252const VkResult ret = vn_decode_vkCreateSamplerYcbcrConversion_reply(dec, device, pCreateInfo, pAllocator, pYcbcrConversion);253vn_instance_free_command_reply(vn_instance, &submit);254return ret;255} else {256return VK_ERROR_OUT_OF_HOST_MEMORY;257}258}259260static inline void vn_async_vkCreateSamplerYcbcrConversion(struct vn_instance *vn_instance, VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion)261{262struct vn_instance_submit_command submit;263vn_submit_vkCreateSamplerYcbcrConversion(vn_instance, 0, device, pCreateInfo, pAllocator, pYcbcrConversion, &submit);264}265266static inline void vn_call_vkDestroySamplerYcbcrConversion(struct vn_instance *vn_instance, VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator)267{268struct vn_instance_submit_command submit;269vn_submit_vkDestroySamplerYcbcrConversion(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, ycbcrConversion, pAllocator, &submit);270struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);271if (dec) {272vn_decode_vkDestroySamplerYcbcrConversion_reply(dec, device, ycbcrConversion, pAllocator);273vn_instance_free_command_reply(vn_instance, &submit);274}275}276277static inline void vn_async_vkDestroySamplerYcbcrConversion(struct vn_instance *vn_instance, VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator)278{279struct vn_instance_submit_command submit;280vn_submit_vkDestroySamplerYcbcrConversion(vn_instance, 0, device, ycbcrConversion, pAllocator, &submit);281}282283#endif /* VN_PROTOCOL_DRIVER_SAMPLER_YCBCR_CONVERSION_H */284285286