You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
virglrenderer/src/venus/venus-protocol/vn_protocol_renderer_render...

1445 lines
52 KiB

/* This file is generated by venus-protocol. See vn_protocol_renderer.h. */
/*
* Copyright 2020 Google LLC
* SPDX-License-Identifier: MIT
*/
#ifndef VN_PROTOCOL_RENDERER_RENDER_PASS_H
#define VN_PROTOCOL_RENDERER_RENDER_PASS_H
#include "vn_protocol_renderer_structs.h"
/* struct VkAttachmentDescription */
static inline void
vn_decode_VkAttachmentDescription_temp(struct vn_cs_decoder *dec, VkAttachmentDescription *val)
{
vn_decode_VkFlags(dec, &val->flags);
vn_decode_VkFormat(dec, &val->format);
vn_decode_VkSampleCountFlagBits(dec, &val->samples);
vn_decode_VkAttachmentLoadOp(dec, &val->loadOp);
vn_decode_VkAttachmentStoreOp(dec, &val->storeOp);
vn_decode_VkAttachmentLoadOp(dec, &val->stencilLoadOp);
vn_decode_VkAttachmentStoreOp(dec, &val->stencilStoreOp);
vn_decode_VkImageLayout(dec, &val->initialLayout);
vn_decode_VkImageLayout(dec, &val->finalLayout);
}
static inline void
vn_replace_VkAttachmentDescription_handle(VkAttachmentDescription *val)
{
/* skip val->flags */
/* skip val->format */
/* skip val->samples */
/* skip val->loadOp */
/* skip val->storeOp */
/* skip val->stencilLoadOp */
/* skip val->stencilStoreOp */
/* skip val->initialLayout */
/* skip val->finalLayout */
}
/* struct VkAttachmentReference */
static inline void
vn_decode_VkAttachmentReference_temp(struct vn_cs_decoder *dec, VkAttachmentReference *val)
{
vn_decode_uint32_t(dec, &val->attachment);
vn_decode_VkImageLayout(dec, &val->layout);
}
static inline void
vn_replace_VkAttachmentReference_handle(VkAttachmentReference *val)
{
/* skip val->attachment */
/* skip val->layout */
}
/* struct VkSubpassDescription */
static inline void
vn_decode_VkSubpassDescription_temp(struct vn_cs_decoder *dec, VkSubpassDescription *val)
{
vn_decode_VkFlags(dec, &val->flags);
vn_decode_VkPipelineBindPoint(dec, &val->pipelineBindPoint);
vn_decode_uint32_t(dec, &val->inputAttachmentCount);
if (vn_peek_array_size(dec)) {
val->pInputAttachments = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pInputAttachments) * val->inputAttachmentCount);
if (!val->pInputAttachments) return;
vn_decode_array_size(dec, val->inputAttachmentCount);
for (uint32_t i = 0; i < val->inputAttachmentCount; i++)
vn_decode_VkAttachmentReference_temp(dec, &((VkAttachmentReference *)val->pInputAttachments)[i]);
} else {
vn_decode_array_size(dec, 0);
val->pInputAttachments = NULL;
}
vn_decode_uint32_t(dec, &val->colorAttachmentCount);
if (vn_peek_array_size(dec)) {
val->pColorAttachments = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pColorAttachments) * val->colorAttachmentCount);
if (!val->pColorAttachments) return;
vn_decode_array_size(dec, val->colorAttachmentCount);
for (uint32_t i = 0; i < val->colorAttachmentCount; i++)
vn_decode_VkAttachmentReference_temp(dec, &((VkAttachmentReference *)val->pColorAttachments)[i]);
} else {
vn_decode_array_size(dec, 0);
val->pColorAttachments = NULL;
}
if (vn_peek_array_size(dec)) {
val->pResolveAttachments = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pResolveAttachments) * val->colorAttachmentCount);
if (!val->pResolveAttachments) return;
vn_decode_array_size(dec, val->colorAttachmentCount);
for (uint32_t i = 0; i < val->colorAttachmentCount; i++)
vn_decode_VkAttachmentReference_temp(dec, &((VkAttachmentReference *)val->pResolveAttachments)[i]);
} else {
vn_decode_array_size(dec, 0);
val->pResolveAttachments = NULL;
}
if (vn_decode_simple_pointer(dec)) {
val->pDepthStencilAttachment = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pDepthStencilAttachment));
if (!val->pDepthStencilAttachment) return;
vn_decode_VkAttachmentReference_temp(dec, (VkAttachmentReference *)val->pDepthStencilAttachment);
} else {
val->pDepthStencilAttachment = NULL;
}
vn_decode_uint32_t(dec, &val->preserveAttachmentCount);
if (vn_peek_array_size(dec)) {
const size_t array_size = vn_decode_array_size(dec, val->preserveAttachmentCount);
val->pPreserveAttachments = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pPreserveAttachments) * array_size);
if (!val->pPreserveAttachments) return;
vn_decode_uint32_t_array(dec, (uint32_t *)val->pPreserveAttachments, array_size);
} else {
vn_decode_array_size(dec, 0);
val->pPreserveAttachments = NULL;
}
}
static inline void
vn_replace_VkSubpassDescription_handle(VkSubpassDescription *val)
{
/* skip val->flags */
/* skip val->pipelineBindPoint */
/* skip val->inputAttachmentCount */
if (val->pInputAttachments) {
for (uint32_t i = 0; i < val->inputAttachmentCount; i++)
vn_replace_VkAttachmentReference_handle(&((VkAttachmentReference *)val->pInputAttachments)[i]);
}
/* skip val->colorAttachmentCount */
if (val->pColorAttachments) {
for (uint32_t i = 0; i < val->colorAttachmentCount; i++)
vn_replace_VkAttachmentReference_handle(&((VkAttachmentReference *)val->pColorAttachments)[i]);
}
if (val->pResolveAttachments) {
for (uint32_t i = 0; i < val->colorAttachmentCount; i++)
vn_replace_VkAttachmentReference_handle(&((VkAttachmentReference *)val->pResolveAttachments)[i]);
}
if (val->pDepthStencilAttachment)
vn_replace_VkAttachmentReference_handle((VkAttachmentReference *)val->pDepthStencilAttachment);
/* skip val->preserveAttachmentCount */
/* skip val->pPreserveAttachments */
}
/* struct VkSubpassDependency */
static inline void
vn_decode_VkSubpassDependency_temp(struct vn_cs_decoder *dec, VkSubpassDependency *val)
{
vn_decode_uint32_t(dec, &val->srcSubpass);
vn_decode_uint32_t(dec, &val->dstSubpass);
vn_decode_VkFlags(dec, &val->srcStageMask);
vn_decode_VkFlags(dec, &val->dstStageMask);
vn_decode_VkFlags(dec, &val->srcAccessMask);
vn_decode_VkFlags(dec, &val->dstAccessMask);
vn_decode_VkFlags(dec, &val->dependencyFlags);
}
static inline void
vn_replace_VkSubpassDependency_handle(VkSubpassDependency *val)
{
/* skip val->srcSubpass */
/* skip val->dstSubpass */
/* skip val->srcStageMask */
/* skip val->dstStageMask */
/* skip val->srcAccessMask */
/* skip val->dstAccessMask */
/* skip val->dependencyFlags */
}
/* struct VkRenderPassMultiviewCreateInfo chain */
static inline void *
vn_decode_VkRenderPassMultiviewCreateInfo_pnext_temp(struct vn_cs_decoder *dec)
{
/* no known/supported struct */
if (vn_decode_simple_pointer(dec))
vn_cs_decoder_set_fatal(dec);
return NULL;
}
static inline void
vn_decode_VkRenderPassMultiviewCreateInfo_self_temp(struct vn_cs_decoder *dec, VkRenderPassMultiviewCreateInfo *val)
{
/* skip val->{sType,pNext} */
vn_decode_uint32_t(dec, &val->subpassCount);
if (vn_peek_array_size(dec)) {
const size_t array_size = vn_decode_array_size(dec, val->subpassCount);
val->pViewMasks = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pViewMasks) * array_size);
if (!val->pViewMasks) return;
vn_decode_uint32_t_array(dec, (uint32_t *)val->pViewMasks, array_size);
} else {
vn_decode_array_size(dec, 0);
val->pViewMasks = NULL;
}
vn_decode_uint32_t(dec, &val->dependencyCount);
if (vn_peek_array_size(dec)) {
const size_t array_size = vn_decode_array_size(dec, val->dependencyCount);
val->pViewOffsets = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pViewOffsets) * array_size);
if (!val->pViewOffsets) return;
vn_decode_int32_t_array(dec, (int32_t *)val->pViewOffsets, array_size);
} else {
vn_decode_array_size(dec, 0);
val->pViewOffsets = NULL;
}
vn_decode_uint32_t(dec, &val->correlationMaskCount);
if (vn_peek_array_size(dec)) {
const size_t array_size = vn_decode_array_size(dec, val->correlationMaskCount);
val->pCorrelationMasks = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pCorrelationMasks) * array_size);
if (!val->pCorrelationMasks) return;
vn_decode_uint32_t_array(dec, (uint32_t *)val->pCorrelationMasks, array_size);
} else {
vn_decode_array_size(dec, 0);
val->pCorrelationMasks = NULL;
}
}
static inline void
vn_decode_VkRenderPassMultiviewCreateInfo_temp(struct vn_cs_decoder *dec, VkRenderPassMultiviewCreateInfo *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkRenderPassMultiviewCreateInfo_pnext_temp(dec);
vn_decode_VkRenderPassMultiviewCreateInfo_self_temp(dec, val);
}
static inline void
vn_replace_VkRenderPassMultiviewCreateInfo_handle_self(VkRenderPassMultiviewCreateInfo *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->subpassCount */
/* skip val->pViewMasks */
/* skip val->dependencyCount */
/* skip val->pViewOffsets */
/* skip val->correlationMaskCount */
/* skip val->pCorrelationMasks */
}
static inline void
vn_replace_VkRenderPassMultiviewCreateInfo_handle(VkRenderPassMultiviewCreateInfo *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:
vn_replace_VkRenderPassMultiviewCreateInfo_handle_self((VkRenderPassMultiviewCreateInfo *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkInputAttachmentAspectReference */
static inline void
vn_decode_VkInputAttachmentAspectReference_temp(struct vn_cs_decoder *dec, VkInputAttachmentAspectReference *val)
{
vn_decode_uint32_t(dec, &val->subpass);
vn_decode_uint32_t(dec, &val->inputAttachmentIndex);
vn_decode_VkFlags(dec, &val->aspectMask);
}
static inline void
vn_replace_VkInputAttachmentAspectReference_handle(VkInputAttachmentAspectReference *val)
{
/* skip val->subpass */
/* skip val->inputAttachmentIndex */
/* skip val->aspectMask */
}
/* struct VkRenderPassInputAttachmentAspectCreateInfo chain */
static inline void *
vn_decode_VkRenderPassInputAttachmentAspectCreateInfo_pnext_temp(struct vn_cs_decoder *dec)
{
/* no known/supported struct */
if (vn_decode_simple_pointer(dec))
vn_cs_decoder_set_fatal(dec);
return NULL;
}
static inline void
vn_decode_VkRenderPassInputAttachmentAspectCreateInfo_self_temp(struct vn_cs_decoder *dec, VkRenderPassInputAttachmentAspectCreateInfo *val)
{
/* skip val->{sType,pNext} */
vn_decode_uint32_t(dec, &val->aspectReferenceCount);
if (vn_peek_array_size(dec)) {
val->pAspectReferences = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pAspectReferences) * val->aspectReferenceCount);
if (!val->pAspectReferences) return;
vn_decode_array_size(dec, val->aspectReferenceCount);
for (uint32_t i = 0; i < val->aspectReferenceCount; i++)
vn_decode_VkInputAttachmentAspectReference_temp(dec, &((VkInputAttachmentAspectReference *)val->pAspectReferences)[i]);
} else {
vn_decode_array_size(dec, 0);
val->pAspectReferences = NULL;
}
}
static inline void
vn_decode_VkRenderPassInputAttachmentAspectCreateInfo_temp(struct vn_cs_decoder *dec, VkRenderPassInputAttachmentAspectCreateInfo *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkRenderPassInputAttachmentAspectCreateInfo_pnext_temp(dec);
vn_decode_VkRenderPassInputAttachmentAspectCreateInfo_self_temp(dec, val);
}
static inline void
vn_replace_VkRenderPassInputAttachmentAspectCreateInfo_handle_self(VkRenderPassInputAttachmentAspectCreateInfo *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->aspectReferenceCount */
if (val->pAspectReferences) {
for (uint32_t i = 0; i < val->aspectReferenceCount; i++)
vn_replace_VkInputAttachmentAspectReference_handle(&((VkInputAttachmentAspectReference *)val->pAspectReferences)[i]);
}
}
static inline void
vn_replace_VkRenderPassInputAttachmentAspectCreateInfo_handle(VkRenderPassInputAttachmentAspectCreateInfo *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:
vn_replace_VkRenderPassInputAttachmentAspectCreateInfo_handle_self((VkRenderPassInputAttachmentAspectCreateInfo *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkRenderPassCreateInfo chain */
static inline void *
vn_decode_VkRenderPassCreateInfo_pnext_temp(struct vn_cs_decoder *dec)
{
VkBaseOutStructure *pnext;
VkStructureType stype;
if (!vn_decode_simple_pointer(dec))
return NULL;
vn_decode_VkStructureType(dec, &stype);
switch ((int32_t)stype) {
case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkRenderPassMultiviewCreateInfo));
if (pnext) {
pnext->sType = stype;
pnext->pNext = vn_decode_VkRenderPassCreateInfo_pnext_temp(dec);
vn_decode_VkRenderPassMultiviewCreateInfo_self_temp(dec, (VkRenderPassMultiviewCreateInfo *)pnext);
}
break;
case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkRenderPassInputAttachmentAspectCreateInfo));
if (pnext) {
pnext->sType = stype;
pnext->pNext = vn_decode_VkRenderPassCreateInfo_pnext_temp(dec);
vn_decode_VkRenderPassInputAttachmentAspectCreateInfo_self_temp(dec, (VkRenderPassInputAttachmentAspectCreateInfo *)pnext);
}
break;
default:
/* unexpected struct */
pnext = NULL;
vn_cs_decoder_set_fatal(dec);
break;
}
return pnext;
}
static inline void
vn_decode_VkRenderPassCreateInfo_self_temp(struct vn_cs_decoder *dec, VkRenderPassCreateInfo *val)
{
/* skip val->{sType,pNext} */
vn_decode_VkFlags(dec, &val->flags);
vn_decode_uint32_t(dec, &val->attachmentCount);
if (vn_peek_array_size(dec)) {
val->pAttachments = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pAttachments) * val->attachmentCount);
if (!val->pAttachments) return;
vn_decode_array_size(dec, val->attachmentCount);
for (uint32_t i = 0; i < val->attachmentCount; i++)
vn_decode_VkAttachmentDescription_temp(dec, &((VkAttachmentDescription *)val->pAttachments)[i]);
} else {
vn_decode_array_size(dec, 0);
val->pAttachments = NULL;
}
vn_decode_uint32_t(dec, &val->subpassCount);
if (vn_peek_array_size(dec)) {
val->pSubpasses = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pSubpasses) * val->subpassCount);
if (!val->pSubpasses) return;
vn_decode_array_size(dec, val->subpassCount);
for (uint32_t i = 0; i < val->subpassCount; i++)
vn_decode_VkSubpassDescription_temp(dec, &((VkSubpassDescription *)val->pSubpasses)[i]);
} else {
vn_decode_array_size(dec, 0);
val->pSubpasses = NULL;
}
vn_decode_uint32_t(dec, &val->dependencyCount);
if (vn_peek_array_size(dec)) {
val->pDependencies = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pDependencies) * val->dependencyCount);
if (!val->pDependencies) return;
vn_decode_array_size(dec, val->dependencyCount);
for (uint32_t i = 0; i < val->dependencyCount; i++)
vn_decode_VkSubpassDependency_temp(dec, &((VkSubpassDependency *)val->pDependencies)[i]);
} else {
vn_decode_array_size(dec, 0);
val->pDependencies = NULL;
}
}
static inline void
vn_decode_VkRenderPassCreateInfo_temp(struct vn_cs_decoder *dec, VkRenderPassCreateInfo *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkRenderPassCreateInfo_pnext_temp(dec);
vn_decode_VkRenderPassCreateInfo_self_temp(dec, val);
}
static inline void
vn_replace_VkRenderPassCreateInfo_handle_self(VkRenderPassCreateInfo *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->flags */
/* skip val->attachmentCount */
if (val->pAttachments) {
for (uint32_t i = 0; i < val->attachmentCount; i++)
vn_replace_VkAttachmentDescription_handle(&((VkAttachmentDescription *)val->pAttachments)[i]);
}
/* skip val->subpassCount */
if (val->pSubpasses) {
for (uint32_t i = 0; i < val->subpassCount; i++)
vn_replace_VkSubpassDescription_handle(&((VkSubpassDescription *)val->pSubpasses)[i]);
}
/* skip val->dependencyCount */
if (val->pDependencies) {
for (uint32_t i = 0; i < val->dependencyCount; i++)
vn_replace_VkSubpassDependency_handle(&((VkSubpassDependency *)val->pDependencies)[i]);
}
}
static inline void
vn_replace_VkRenderPassCreateInfo_handle(VkRenderPassCreateInfo *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO:
vn_replace_VkRenderPassCreateInfo_handle_self((VkRenderPassCreateInfo *)pnext);
break;
case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:
vn_replace_VkRenderPassMultiviewCreateInfo_handle_self((VkRenderPassMultiviewCreateInfo *)pnext);
break;
case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:
vn_replace_VkRenderPassInputAttachmentAspectCreateInfo_handle_self((VkRenderPassInputAttachmentAspectCreateInfo *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkAttachmentDescriptionStencilLayout chain */
static inline void *
vn_decode_VkAttachmentDescriptionStencilLayout_pnext_temp(struct vn_cs_decoder *dec)
{
/* no known/supported struct */
if (vn_decode_simple_pointer(dec))
vn_cs_decoder_set_fatal(dec);
return NULL;
}
static inline void
vn_decode_VkAttachmentDescriptionStencilLayout_self_temp(struct vn_cs_decoder *dec, VkAttachmentDescriptionStencilLayout *val)
{
/* skip val->{sType,pNext} */
vn_decode_VkImageLayout(dec, &val->stencilInitialLayout);
vn_decode_VkImageLayout(dec, &val->stencilFinalLayout);
}
static inline void
vn_decode_VkAttachmentDescriptionStencilLayout_temp(struct vn_cs_decoder *dec, VkAttachmentDescriptionStencilLayout *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkAttachmentDescriptionStencilLayout_pnext_temp(dec);
vn_decode_VkAttachmentDescriptionStencilLayout_self_temp(dec, val);
}
static inline void
vn_replace_VkAttachmentDescriptionStencilLayout_handle_self(VkAttachmentDescriptionStencilLayout *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->stencilInitialLayout */
/* skip val->stencilFinalLayout */
}
static inline void
vn_replace_VkAttachmentDescriptionStencilLayout_handle(VkAttachmentDescriptionStencilLayout *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:
vn_replace_VkAttachmentDescriptionStencilLayout_handle_self((VkAttachmentDescriptionStencilLayout *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkAttachmentDescription2 chain */
static inline void *
vn_decode_VkAttachmentDescription2_pnext_temp(struct vn_cs_decoder *dec)
{
VkBaseOutStructure *pnext;
VkStructureType stype;
if (!vn_decode_simple_pointer(dec))
return NULL;
vn_decode_VkStructureType(dec, &stype);
switch ((int32_t)stype) {
case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkAttachmentDescriptionStencilLayout));
if (pnext) {
pnext->sType = stype;
pnext->pNext = vn_decode_VkAttachmentDescription2_pnext_temp(dec);
vn_decode_VkAttachmentDescriptionStencilLayout_self_temp(dec, (VkAttachmentDescriptionStencilLayout *)pnext);
}
break;
default:
/* unexpected struct */
pnext = NULL;
vn_cs_decoder_set_fatal(dec);
break;
}
return pnext;
}
static inline void
vn_decode_VkAttachmentDescription2_self_temp(struct vn_cs_decoder *dec, VkAttachmentDescription2 *val)
{
/* skip val->{sType,pNext} */
vn_decode_VkFlags(dec, &val->flags);
vn_decode_VkFormat(dec, &val->format);
vn_decode_VkSampleCountFlagBits(dec, &val->samples);
vn_decode_VkAttachmentLoadOp(dec, &val->loadOp);
vn_decode_VkAttachmentStoreOp(dec, &val->storeOp);
vn_decode_VkAttachmentLoadOp(dec, &val->stencilLoadOp);
vn_decode_VkAttachmentStoreOp(dec, &val->stencilStoreOp);
vn_decode_VkImageLayout(dec, &val->initialLayout);
vn_decode_VkImageLayout(dec, &val->finalLayout);
}
static inline void
vn_decode_VkAttachmentDescription2_temp(struct vn_cs_decoder *dec, VkAttachmentDescription2 *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkAttachmentDescription2_pnext_temp(dec);
vn_decode_VkAttachmentDescription2_self_temp(dec, val);
}
static inline void
vn_replace_VkAttachmentDescription2_handle_self(VkAttachmentDescription2 *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->flags */
/* skip val->format */
/* skip val->samples */
/* skip val->loadOp */
/* skip val->storeOp */
/* skip val->stencilLoadOp */
/* skip val->stencilStoreOp */
/* skip val->initialLayout */
/* skip val->finalLayout */
}
static inline void
vn_replace_VkAttachmentDescription2_handle(VkAttachmentDescription2 *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2:
vn_replace_VkAttachmentDescription2_handle_self((VkAttachmentDescription2 *)pnext);
break;
case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:
vn_replace_VkAttachmentDescriptionStencilLayout_handle_self((VkAttachmentDescriptionStencilLayout *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkAttachmentReferenceStencilLayout chain */
static inline void *
vn_decode_VkAttachmentReferenceStencilLayout_pnext_temp(struct vn_cs_decoder *dec)
{
/* no known/supported struct */
if (vn_decode_simple_pointer(dec))
vn_cs_decoder_set_fatal(dec);
return NULL;
}
static inline void
vn_decode_VkAttachmentReferenceStencilLayout_self_temp(struct vn_cs_decoder *dec, VkAttachmentReferenceStencilLayout *val)
{
/* skip val->{sType,pNext} */
vn_decode_VkImageLayout(dec, &val->stencilLayout);
}
static inline void
vn_decode_VkAttachmentReferenceStencilLayout_temp(struct vn_cs_decoder *dec, VkAttachmentReferenceStencilLayout *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkAttachmentReferenceStencilLayout_pnext_temp(dec);
vn_decode_VkAttachmentReferenceStencilLayout_self_temp(dec, val);
}
static inline void
vn_replace_VkAttachmentReferenceStencilLayout_handle_self(VkAttachmentReferenceStencilLayout *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->stencilLayout */
}
static inline void
vn_replace_VkAttachmentReferenceStencilLayout_handle(VkAttachmentReferenceStencilLayout *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:
vn_replace_VkAttachmentReferenceStencilLayout_handle_self((VkAttachmentReferenceStencilLayout *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkAttachmentReference2 chain */
static inline void *
vn_decode_VkAttachmentReference2_pnext_temp(struct vn_cs_decoder *dec)
{
VkBaseOutStructure *pnext;
VkStructureType stype;
if (!vn_decode_simple_pointer(dec))
return NULL;
vn_decode_VkStructureType(dec, &stype);
switch ((int32_t)stype) {
case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkAttachmentReferenceStencilLayout));
if (pnext) {
pnext->sType = stype;
pnext->pNext = vn_decode_VkAttachmentReference2_pnext_temp(dec);
vn_decode_VkAttachmentReferenceStencilLayout_self_temp(dec, (VkAttachmentReferenceStencilLayout *)pnext);
}
break;
default:
/* unexpected struct */
pnext = NULL;
vn_cs_decoder_set_fatal(dec);
break;
}
return pnext;
}
static inline void
vn_decode_VkAttachmentReference2_self_temp(struct vn_cs_decoder *dec, VkAttachmentReference2 *val)
{
/* skip val->{sType,pNext} */
vn_decode_uint32_t(dec, &val->attachment);
vn_decode_VkImageLayout(dec, &val->layout);
vn_decode_VkFlags(dec, &val->aspectMask);
}
static inline void
vn_decode_VkAttachmentReference2_temp(struct vn_cs_decoder *dec, VkAttachmentReference2 *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkAttachmentReference2_pnext_temp(dec);
vn_decode_VkAttachmentReference2_self_temp(dec, val);
}
static inline void
vn_replace_VkAttachmentReference2_handle_self(VkAttachmentReference2 *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->attachment */
/* skip val->layout */
/* skip val->aspectMask */
}
static inline void
vn_replace_VkAttachmentReference2_handle(VkAttachmentReference2 *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2:
vn_replace_VkAttachmentReference2_handle_self((VkAttachmentReference2 *)pnext);
break;
case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:
vn_replace_VkAttachmentReferenceStencilLayout_handle_self((VkAttachmentReferenceStencilLayout *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkSubpassDescriptionDepthStencilResolve chain */
static inline void *
vn_decode_VkSubpassDescriptionDepthStencilResolve_pnext_temp(struct vn_cs_decoder *dec)
{
/* no known/supported struct */
if (vn_decode_simple_pointer(dec))
vn_cs_decoder_set_fatal(dec);
return NULL;
}
static inline void
vn_decode_VkSubpassDescriptionDepthStencilResolve_self_temp(struct vn_cs_decoder *dec, VkSubpassDescriptionDepthStencilResolve *val)
{
/* skip val->{sType,pNext} */
vn_decode_VkResolveModeFlagBits(dec, &val->depthResolveMode);
vn_decode_VkResolveModeFlagBits(dec, &val->stencilResolveMode);
if (vn_decode_simple_pointer(dec)) {
val->pDepthStencilResolveAttachment = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pDepthStencilResolveAttachment));
if (!val->pDepthStencilResolveAttachment) return;
vn_decode_VkAttachmentReference2_temp(dec, (VkAttachmentReference2 *)val->pDepthStencilResolveAttachment);
} else {
val->pDepthStencilResolveAttachment = NULL;
}
}
static inline void
vn_decode_VkSubpassDescriptionDepthStencilResolve_temp(struct vn_cs_decoder *dec, VkSubpassDescriptionDepthStencilResolve *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkSubpassDescriptionDepthStencilResolve_pnext_temp(dec);
vn_decode_VkSubpassDescriptionDepthStencilResolve_self_temp(dec, val);
}
static inline void
vn_replace_VkSubpassDescriptionDepthStencilResolve_handle_self(VkSubpassDescriptionDepthStencilResolve *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->depthResolveMode */
/* skip val->stencilResolveMode */
if (val->pDepthStencilResolveAttachment)
vn_replace_VkAttachmentReference2_handle((VkAttachmentReference2 *)val->pDepthStencilResolveAttachment);
}
static inline void
vn_replace_VkSubpassDescriptionDepthStencilResolve_handle(VkSubpassDescriptionDepthStencilResolve *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:
vn_replace_VkSubpassDescriptionDepthStencilResolve_handle_self((VkSubpassDescriptionDepthStencilResolve *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkSubpassDescription2 chain */
static inline void *
vn_decode_VkSubpassDescription2_pnext_temp(struct vn_cs_decoder *dec)
{
VkBaseOutStructure *pnext;
VkStructureType stype;
if (!vn_decode_simple_pointer(dec))
return NULL;
vn_decode_VkStructureType(dec, &stype);
switch ((int32_t)stype) {
case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkSubpassDescriptionDepthStencilResolve));
if (pnext) {
pnext->sType = stype;
pnext->pNext = vn_decode_VkSubpassDescription2_pnext_temp(dec);
vn_decode_VkSubpassDescriptionDepthStencilResolve_self_temp(dec, (VkSubpassDescriptionDepthStencilResolve *)pnext);
}
break;
default:
/* unexpected struct */
pnext = NULL;
vn_cs_decoder_set_fatal(dec);
break;
}
return pnext;
}
static inline void
vn_decode_VkSubpassDescription2_self_temp(struct vn_cs_decoder *dec, VkSubpassDescription2 *val)
{
/* skip val->{sType,pNext} */
vn_decode_VkFlags(dec, &val->flags);
vn_decode_VkPipelineBindPoint(dec, &val->pipelineBindPoint);
vn_decode_uint32_t(dec, &val->viewMask);
vn_decode_uint32_t(dec, &val->inputAttachmentCount);
if (vn_peek_array_size(dec)) {
val->pInputAttachments = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pInputAttachments) * val->inputAttachmentCount);
if (!val->pInputAttachments) return;
vn_decode_array_size(dec, val->inputAttachmentCount);
for (uint32_t i = 0; i < val->inputAttachmentCount; i++)
vn_decode_VkAttachmentReference2_temp(dec, &((VkAttachmentReference2 *)val->pInputAttachments)[i]);
} else {
vn_decode_array_size(dec, 0);
val->pInputAttachments = NULL;
}
vn_decode_uint32_t(dec, &val->colorAttachmentCount);
if (vn_peek_array_size(dec)) {
val->pColorAttachments = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pColorAttachments) * val->colorAttachmentCount);
if (!val->pColorAttachments) return;
vn_decode_array_size(dec, val->colorAttachmentCount);
for (uint32_t i = 0; i < val->colorAttachmentCount; i++)
vn_decode_VkAttachmentReference2_temp(dec, &((VkAttachmentReference2 *)val->pColorAttachments)[i]);
} else {
vn_decode_array_size(dec, 0);
val->pColorAttachments = NULL;
}
if (vn_peek_array_size(dec)) {
val->pResolveAttachments = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pResolveAttachments) * val->colorAttachmentCount);
if (!val->pResolveAttachments) return;
vn_decode_array_size(dec, val->colorAttachmentCount);
for (uint32_t i = 0; i < val->colorAttachmentCount; i++)
vn_decode_VkAttachmentReference2_temp(dec, &((VkAttachmentReference2 *)val->pResolveAttachments)[i]);
} else {
vn_decode_array_size(dec, 0);
val->pResolveAttachments = NULL;
}
if (vn_decode_simple_pointer(dec)) {
val->pDepthStencilAttachment = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pDepthStencilAttachment));
if (!val->pDepthStencilAttachment) return;
vn_decode_VkAttachmentReference2_temp(dec, (VkAttachmentReference2 *)val->pDepthStencilAttachment);
} else {
val->pDepthStencilAttachment = NULL;
}
vn_decode_uint32_t(dec, &val->preserveAttachmentCount);
if (vn_peek_array_size(dec)) {
const size_t array_size = vn_decode_array_size(dec, val->preserveAttachmentCount);
val->pPreserveAttachments = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pPreserveAttachments) * array_size);
if (!val->pPreserveAttachments) return;
vn_decode_uint32_t_array(dec, (uint32_t *)val->pPreserveAttachments, array_size);
} else {
vn_decode_array_size(dec, 0);
val->pPreserveAttachments = NULL;
}
}
static inline void
vn_decode_VkSubpassDescription2_temp(struct vn_cs_decoder *dec, VkSubpassDescription2 *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkSubpassDescription2_pnext_temp(dec);
vn_decode_VkSubpassDescription2_self_temp(dec, val);
}
static inline void
vn_replace_VkSubpassDescription2_handle_self(VkSubpassDescription2 *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->flags */
/* skip val->pipelineBindPoint */
/* skip val->viewMask */
/* skip val->inputAttachmentCount */
if (val->pInputAttachments) {
for (uint32_t i = 0; i < val->inputAttachmentCount; i++)
vn_replace_VkAttachmentReference2_handle(&((VkAttachmentReference2 *)val->pInputAttachments)[i]);
}
/* skip val->colorAttachmentCount */
if (val->pColorAttachments) {
for (uint32_t i = 0; i < val->colorAttachmentCount; i++)
vn_replace_VkAttachmentReference2_handle(&((VkAttachmentReference2 *)val->pColorAttachments)[i]);
}
if (val->pResolveAttachments) {
for (uint32_t i = 0; i < val->colorAttachmentCount; i++)
vn_replace_VkAttachmentReference2_handle(&((VkAttachmentReference2 *)val->pResolveAttachments)[i]);
}
if (val->pDepthStencilAttachment)
vn_replace_VkAttachmentReference2_handle((VkAttachmentReference2 *)val->pDepthStencilAttachment);
/* skip val->preserveAttachmentCount */
/* skip val->pPreserveAttachments */
}
static inline void
vn_replace_VkSubpassDescription2_handle(VkSubpassDescription2 *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2:
vn_replace_VkSubpassDescription2_handle_self((VkSubpassDescription2 *)pnext);
break;
case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:
vn_replace_VkSubpassDescriptionDepthStencilResolve_handle_self((VkSubpassDescriptionDepthStencilResolve *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkSubpassDependency2 chain */
static inline void *
vn_decode_VkSubpassDependency2_pnext_temp(struct vn_cs_decoder *dec)
{
/* no known/supported struct */
if (vn_decode_simple_pointer(dec))
vn_cs_decoder_set_fatal(dec);
return NULL;
}
static inline void
vn_decode_VkSubpassDependency2_self_temp(struct vn_cs_decoder *dec, VkSubpassDependency2 *val)
{
/* skip val->{sType,pNext} */
vn_decode_uint32_t(dec, &val->srcSubpass);
vn_decode_uint32_t(dec, &val->dstSubpass);
vn_decode_VkFlags(dec, &val->srcStageMask);
vn_decode_VkFlags(dec, &val->dstStageMask);
vn_decode_VkFlags(dec, &val->srcAccessMask);
vn_decode_VkFlags(dec, &val->dstAccessMask);
vn_decode_VkFlags(dec, &val->dependencyFlags);
vn_decode_int32_t(dec, &val->viewOffset);
}
static inline void
vn_decode_VkSubpassDependency2_temp(struct vn_cs_decoder *dec, VkSubpassDependency2 *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkSubpassDependency2_pnext_temp(dec);
vn_decode_VkSubpassDependency2_self_temp(dec, val);
}
static inline void
vn_replace_VkSubpassDependency2_handle_self(VkSubpassDependency2 *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->srcSubpass */
/* skip val->dstSubpass */
/* skip val->srcStageMask */
/* skip val->dstStageMask */
/* skip val->srcAccessMask */
/* skip val->dstAccessMask */
/* skip val->dependencyFlags */
/* skip val->viewOffset */
}
static inline void
vn_replace_VkSubpassDependency2_handle(VkSubpassDependency2 *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2:
vn_replace_VkSubpassDependency2_handle_self((VkSubpassDependency2 *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkRenderPassCreateInfo2 chain */
static inline void *
vn_decode_VkRenderPassCreateInfo2_pnext_temp(struct vn_cs_decoder *dec)
{
/* no known/supported struct */
if (vn_decode_simple_pointer(dec))
vn_cs_decoder_set_fatal(dec);
return NULL;
}
static inline void
vn_decode_VkRenderPassCreateInfo2_self_temp(struct vn_cs_decoder *dec, VkRenderPassCreateInfo2 *val)
{
/* skip val->{sType,pNext} */
vn_decode_VkFlags(dec, &val->flags);
vn_decode_uint32_t(dec, &val->attachmentCount);
if (vn_peek_array_size(dec)) {
val->pAttachments = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pAttachments) * val->attachmentCount);
if (!val->pAttachments) return;
vn_decode_array_size(dec, val->attachmentCount);
for (uint32_t i = 0; i < val->attachmentCount; i++)
vn_decode_VkAttachmentDescription2_temp(dec, &((VkAttachmentDescription2 *)val->pAttachments)[i]);
} else {
vn_decode_array_size(dec, 0);
val->pAttachments = NULL;
}
vn_decode_uint32_t(dec, &val->subpassCount);
if (vn_peek_array_size(dec)) {
val->pSubpasses = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pSubpasses) * val->subpassCount);
if (!val->pSubpasses) return;
vn_decode_array_size(dec, val->subpassCount);
for (uint32_t i = 0; i < val->subpassCount; i++)
vn_decode_VkSubpassDescription2_temp(dec, &((VkSubpassDescription2 *)val->pSubpasses)[i]);
} else {
vn_decode_array_size(dec, 0);
val->pSubpasses = NULL;
}
vn_decode_uint32_t(dec, &val->dependencyCount);
if (vn_peek_array_size(dec)) {
val->pDependencies = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pDependencies) * val->dependencyCount);
if (!val->pDependencies) return;
vn_decode_array_size(dec, val->dependencyCount);
for (uint32_t i = 0; i < val->dependencyCount; i++)
vn_decode_VkSubpassDependency2_temp(dec, &((VkSubpassDependency2 *)val->pDependencies)[i]);
} else {
vn_decode_array_size(dec, 0);
val->pDependencies = NULL;
}
vn_decode_uint32_t(dec, &val->correlatedViewMaskCount);
if (vn_peek_array_size(dec)) {
const size_t array_size = vn_decode_array_size(dec, val->correlatedViewMaskCount);
val->pCorrelatedViewMasks = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pCorrelatedViewMasks) * array_size);
if (!val->pCorrelatedViewMasks) return;
vn_decode_uint32_t_array(dec, (uint32_t *)val->pCorrelatedViewMasks, array_size);
} else {
vn_decode_array_size(dec, 0);
val->pCorrelatedViewMasks = NULL;
}
}
static inline void
vn_decode_VkRenderPassCreateInfo2_temp(struct vn_cs_decoder *dec, VkRenderPassCreateInfo2 *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkRenderPassCreateInfo2_pnext_temp(dec);
vn_decode_VkRenderPassCreateInfo2_self_temp(dec, val);
}
static inline void
vn_replace_VkRenderPassCreateInfo2_handle_self(VkRenderPassCreateInfo2 *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->flags */
/* skip val->attachmentCount */
if (val->pAttachments) {
for (uint32_t i = 0; i < val->attachmentCount; i++)
vn_replace_VkAttachmentDescription2_handle(&((VkAttachmentDescription2 *)val->pAttachments)[i]);
}
/* skip val->subpassCount */
if (val->pSubpasses) {
for (uint32_t i = 0; i < val->subpassCount; i++)
vn_replace_VkSubpassDescription2_handle(&((VkSubpassDescription2 *)val->pSubpasses)[i]);
}
/* skip val->dependencyCount */
if (val->pDependencies) {
for (uint32_t i = 0; i < val->dependencyCount; i++)
vn_replace_VkSubpassDependency2_handle(&((VkSubpassDependency2 *)val->pDependencies)[i]);
}
/* skip val->correlatedViewMaskCount */
/* skip val->pCorrelatedViewMasks */
}
static inline void
vn_replace_VkRenderPassCreateInfo2_handle(VkRenderPassCreateInfo2 *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2:
vn_replace_VkRenderPassCreateInfo2_handle_self((VkRenderPassCreateInfo2 *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
static inline void vn_decode_vkCreateRenderPass_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCreateRenderPass *args)
{
vn_decode_VkDevice_lookup(dec, &args->device);
if (vn_decode_simple_pointer(dec)) {
args->pCreateInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCreateInfo));
if (!args->pCreateInfo) return;
vn_decode_VkRenderPassCreateInfo_temp(dec, (VkRenderPassCreateInfo *)args->pCreateInfo);
} else {
args->pCreateInfo = NULL;
}
if (vn_decode_simple_pointer(dec)) {
vn_cs_decoder_set_fatal(dec);
} else {
args->pAllocator = NULL;
}
if (vn_decode_simple_pointer(dec)) {
args->pRenderPass = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRenderPass));
if (!args->pRenderPass) return;
vn_decode_VkRenderPass(dec, args->pRenderPass);
} else {
args->pRenderPass = NULL;
}
}
static inline void vn_replace_vkCreateRenderPass_args_handle(struct vn_command_vkCreateRenderPass *args)
{
vn_replace_VkDevice_handle(&args->device);
if (args->pCreateInfo)
vn_replace_VkRenderPassCreateInfo_handle((VkRenderPassCreateInfo *)args->pCreateInfo);
/* skip args->pAllocator */
/* skip args->pRenderPass */
}
static inline void vn_encode_vkCreateRenderPass_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCreateRenderPass *args)
{
vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCreateRenderPass_EXT});
vn_encode_VkResult(enc, &args->ret);
/* skip args->device */
/* skip args->pCreateInfo */
/* skip args->pAllocator */
if (vn_encode_simple_pointer(enc, args->pRenderPass))
vn_encode_VkRenderPass(enc, args->pRenderPass);
}
static inline void vn_decode_vkDestroyRenderPass_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkDestroyRenderPass *args)
{
vn_decode_VkDevice_lookup(dec, &args->device);
vn_decode_VkRenderPass_lookup(dec, &args->renderPass);
if (vn_decode_simple_pointer(dec)) {
vn_cs_decoder_set_fatal(dec);
} else {
args->pAllocator = NULL;
}
}
static inline void vn_replace_vkDestroyRenderPass_args_handle(struct vn_command_vkDestroyRenderPass *args)
{
vn_replace_VkDevice_handle(&args->device);
vn_replace_VkRenderPass_handle(&args->renderPass);
/* skip args->pAllocator */
}
static inline void vn_encode_vkDestroyRenderPass_reply(struct vn_cs_encoder *enc, const struct vn_command_vkDestroyRenderPass *args)
{
vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkDestroyRenderPass_EXT});
/* skip args->device */
/* skip args->renderPass */
/* skip args->pAllocator */
}
static inline void vn_decode_vkGetRenderAreaGranularity_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetRenderAreaGranularity *args)
{
vn_decode_VkDevice_lookup(dec, &args->device);
vn_decode_VkRenderPass_lookup(dec, &args->renderPass);
if (vn_decode_simple_pointer(dec)) {
args->pGranularity = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pGranularity));
if (!args->pGranularity) return;
vn_decode_VkExtent2D_partial_temp(dec, args->pGranularity);
} else {
args->pGranularity = NULL;
}
}
static inline void vn_replace_vkGetRenderAreaGranularity_args_handle(struct vn_command_vkGetRenderAreaGranularity *args)
{
vn_replace_VkDevice_handle(&args->device);
vn_replace_VkRenderPass_handle(&args->renderPass);
/* skip args->pGranularity */
}
static inline void vn_encode_vkGetRenderAreaGranularity_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetRenderAreaGranularity *args)
{
vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetRenderAreaGranularity_EXT});
/* skip args->device */
/* skip args->renderPass */
if (vn_encode_simple_pointer(enc, args->pGranularity))
vn_encode_VkExtent2D(enc, args->pGranularity);
}
static inline void vn_decode_vkCreateRenderPass2_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCreateRenderPass2 *args)
{
vn_decode_VkDevice_lookup(dec, &args->device);
if (vn_decode_simple_pointer(dec)) {
args->pCreateInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCreateInfo));
if (!args->pCreateInfo) return;
vn_decode_VkRenderPassCreateInfo2_temp(dec, (VkRenderPassCreateInfo2 *)args->pCreateInfo);
} else {
args->pCreateInfo = NULL;
}
if (vn_decode_simple_pointer(dec)) {
vn_cs_decoder_set_fatal(dec);
} else {
args->pAllocator = NULL;
}
if (vn_decode_simple_pointer(dec)) {
args->pRenderPass = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pRenderPass));
if (!args->pRenderPass) return;
vn_decode_VkRenderPass(dec, args->pRenderPass);
} else {
args->pRenderPass = NULL;
}
}
static inline void vn_replace_vkCreateRenderPass2_args_handle(struct vn_command_vkCreateRenderPass2 *args)
{
vn_replace_VkDevice_handle(&args->device);
if (args->pCreateInfo)
vn_replace_VkRenderPassCreateInfo2_handle((VkRenderPassCreateInfo2 *)args->pCreateInfo);
/* skip args->pAllocator */
/* skip args->pRenderPass */
}
static inline void vn_encode_vkCreateRenderPass2_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCreateRenderPass2 *args)
{
vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCreateRenderPass2_EXT});
vn_encode_VkResult(enc, &args->ret);
/* skip args->device */
/* skip args->pCreateInfo */
/* skip args->pAllocator */
if (vn_encode_simple_pointer(enc, args->pRenderPass))
vn_encode_VkRenderPass(enc, args->pRenderPass);
}
static inline void vn_dispatch_vkCreateRenderPass(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
{
struct vn_command_vkCreateRenderPass args;
if (!ctx->dispatch_vkCreateRenderPass) {
vn_cs_decoder_set_fatal(ctx->decoder);
return;
}
vn_decode_vkCreateRenderPass_args_temp(ctx->decoder, &args);
if (!args.device) {
vn_cs_decoder_set_fatal(ctx->decoder);
return;
}
if (!vn_cs_decoder_get_fatal(ctx->decoder))
ctx->dispatch_vkCreateRenderPass(ctx, &args);
#ifdef DEBUG
if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
vn_dispatch_debug_log(ctx, "vkCreateRenderPass returned %d", args.ret);
#endif
if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
vn_encode_vkCreateRenderPass_reply(ctx->encoder, &args);
vn_cs_decoder_reset_temp_pool(ctx->decoder);
}
static inline void vn_dispatch_vkDestroyRenderPass(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
{
struct vn_command_vkDestroyRenderPass args;
if (!ctx->dispatch_vkDestroyRenderPass) {
vn_cs_decoder_set_fatal(ctx->decoder);
return;
}
vn_decode_vkDestroyRenderPass_args_temp(ctx->decoder, &args);
if (!args.device) {
vn_cs_decoder_set_fatal(ctx->decoder);
return;
}
if (!vn_cs_decoder_get_fatal(ctx->decoder))
ctx->dispatch_vkDestroyRenderPass(ctx, &args);
if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
vn_encode_vkDestroyRenderPass_reply(ctx->encoder, &args);
vn_cs_decoder_reset_temp_pool(ctx->decoder);
}
static inline void vn_dispatch_vkGetRenderAreaGranularity(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
{
struct vn_command_vkGetRenderAreaGranularity args;
if (!ctx->dispatch_vkGetRenderAreaGranularity) {
vn_cs_decoder_set_fatal(ctx->decoder);
return;
}
vn_decode_vkGetRenderAreaGranularity_args_temp(ctx->decoder, &args);
if (!args.device) {
vn_cs_decoder_set_fatal(ctx->decoder);
return;
}
if (!vn_cs_decoder_get_fatal(ctx->decoder))
ctx->dispatch_vkGetRenderAreaGranularity(ctx, &args);
if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
vn_encode_vkGetRenderAreaGranularity_reply(ctx->encoder, &args);
vn_cs_decoder_reset_temp_pool(ctx->decoder);
}
static inline void vn_dispatch_vkCreateRenderPass2(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
{
struct vn_command_vkCreateRenderPass2 args;
if (!ctx->dispatch_vkCreateRenderPass2) {
vn_cs_decoder_set_fatal(ctx->decoder);
return;
}
vn_decode_vkCreateRenderPass2_args_temp(ctx->decoder, &args);
if (!args.device) {
vn_cs_decoder_set_fatal(ctx->decoder);
return;
}
if (!vn_cs_decoder_get_fatal(ctx->decoder))
ctx->dispatch_vkCreateRenderPass2(ctx, &args);
#ifdef DEBUG
if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
vn_dispatch_debug_log(ctx, "vkCreateRenderPass2 returned %d", args.ret);
#endif
if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
vn_encode_vkCreateRenderPass2_reply(ctx->encoder, &args);
vn_cs_decoder_reset_temp_pool(ctx->decoder);
}
#endif /* VN_PROTOCOL_RENDERER_RENDER_PASS_H */