• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* This file is generated by venus-protocol.  See vn_protocol_renderer.h. */
2 
3 /*
4  * Copyright 2020 Google LLC
5  * SPDX-License-Identifier: MIT
6  */
7 
8 #ifndef VN_PROTOCOL_RENDERER_IMAGE_VIEW_H
9 #define VN_PROTOCOL_RENDERER_IMAGE_VIEW_H
10 
11 #include "vn_protocol_renderer_structs.h"
12 
13 #pragma GCC diagnostic push
14 #pragma GCC diagnostic ignored "-Wpointer-arith"
15 #pragma GCC diagnostic ignored "-Wunused-parameter"
16 
17 /* struct VkImageViewUsageCreateInfo chain */
18 
19 static inline void *
vn_decode_VkImageViewUsageCreateInfo_pnext_temp(struct vn_cs_decoder * dec)20 vn_decode_VkImageViewUsageCreateInfo_pnext_temp(struct vn_cs_decoder *dec)
21 {
22     /* no known/supported struct */
23     if (vn_decode_simple_pointer(dec))
24         vn_cs_decoder_set_fatal(dec);
25     return NULL;
26 }
27 
28 static inline void
vn_decode_VkImageViewUsageCreateInfo_self_temp(struct vn_cs_decoder * dec,VkImageViewUsageCreateInfo * val)29 vn_decode_VkImageViewUsageCreateInfo_self_temp(struct vn_cs_decoder *dec, VkImageViewUsageCreateInfo *val)
30 {
31     /* skip val->{sType,pNext} */
32     vn_decode_VkFlags(dec, &val->usage);
33 }
34 
35 static inline void
vn_decode_VkImageViewUsageCreateInfo_temp(struct vn_cs_decoder * dec,VkImageViewUsageCreateInfo * val)36 vn_decode_VkImageViewUsageCreateInfo_temp(struct vn_cs_decoder *dec, VkImageViewUsageCreateInfo *val)
37 {
38     VkStructureType stype;
39     vn_decode_VkStructureType(dec, &stype);
40     if (stype != VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO)
41         vn_cs_decoder_set_fatal(dec);
42 
43     val->sType = stype;
44     val->pNext = vn_decode_VkImageViewUsageCreateInfo_pnext_temp(dec);
45     vn_decode_VkImageViewUsageCreateInfo_self_temp(dec, val);
46 }
47 
48 static inline void
vn_replace_VkImageViewUsageCreateInfo_handle_self(VkImageViewUsageCreateInfo * val)49 vn_replace_VkImageViewUsageCreateInfo_handle_self(VkImageViewUsageCreateInfo *val)
50 {
51     /* skip val->sType */
52     /* skip val->pNext */
53     /* skip val->usage */
54 }
55 
56 static inline void
vn_replace_VkImageViewUsageCreateInfo_handle(VkImageViewUsageCreateInfo * val)57 vn_replace_VkImageViewUsageCreateInfo_handle(VkImageViewUsageCreateInfo *val)
58 {
59     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
60 
61     do {
62         switch ((int32_t)pnext->sType) {
63         case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:
64             vn_replace_VkImageViewUsageCreateInfo_handle_self((VkImageViewUsageCreateInfo *)pnext);
65             break;
66         default:
67             /* ignore unknown/unsupported struct */
68             break;
69         }
70         pnext = pnext->pNext;
71     } while (pnext);
72 }
73 
74 /* struct VkImageViewCreateInfo chain */
75 
76 static inline void *
vn_decode_VkImageViewCreateInfo_pnext_temp(struct vn_cs_decoder * dec)77 vn_decode_VkImageViewCreateInfo_pnext_temp(struct vn_cs_decoder *dec)
78 {
79     VkBaseOutStructure *pnext;
80     VkStructureType stype;
81 
82     if (!vn_decode_simple_pointer(dec))
83         return NULL;
84 
85     vn_decode_VkStructureType(dec, &stype);
86     switch ((int32_t)stype) {
87     case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:
88         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkImageViewUsageCreateInfo));
89         if (pnext) {
90             pnext->sType = stype;
91             pnext->pNext = vn_decode_VkImageViewCreateInfo_pnext_temp(dec);
92             vn_decode_VkImageViewUsageCreateInfo_self_temp(dec, (VkImageViewUsageCreateInfo *)pnext);
93         }
94         break;
95     case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:
96         pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkSamplerYcbcrConversionInfo));
97         if (pnext) {
98             pnext->sType = stype;
99             pnext->pNext = vn_decode_VkImageViewCreateInfo_pnext_temp(dec);
100             vn_decode_VkSamplerYcbcrConversionInfo_self_temp(dec, (VkSamplerYcbcrConversionInfo *)pnext);
101         }
102         break;
103     default:
104         /* unexpected struct */
105         pnext = NULL;
106         vn_cs_decoder_set_fatal(dec);
107         break;
108     }
109 
110     return pnext;
111 }
112 
113 static inline void
vn_decode_VkImageViewCreateInfo_self_temp(struct vn_cs_decoder * dec,VkImageViewCreateInfo * val)114 vn_decode_VkImageViewCreateInfo_self_temp(struct vn_cs_decoder *dec, VkImageViewCreateInfo *val)
115 {
116     /* skip val->{sType,pNext} */
117     vn_decode_VkFlags(dec, &val->flags);
118     vn_decode_VkImage_lookup(dec, &val->image);
119     vn_decode_VkImageViewType(dec, &val->viewType);
120     vn_decode_VkFormat(dec, &val->format);
121     vn_decode_VkComponentMapping_temp(dec, &val->components);
122     vn_decode_VkImageSubresourceRange_temp(dec, &val->subresourceRange);
123 }
124 
125 static inline void
vn_decode_VkImageViewCreateInfo_temp(struct vn_cs_decoder * dec,VkImageViewCreateInfo * val)126 vn_decode_VkImageViewCreateInfo_temp(struct vn_cs_decoder *dec, VkImageViewCreateInfo *val)
127 {
128     VkStructureType stype;
129     vn_decode_VkStructureType(dec, &stype);
130     if (stype != VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO)
131         vn_cs_decoder_set_fatal(dec);
132 
133     val->sType = stype;
134     val->pNext = vn_decode_VkImageViewCreateInfo_pnext_temp(dec);
135     vn_decode_VkImageViewCreateInfo_self_temp(dec, val);
136 }
137 
138 static inline void
vn_replace_VkImageViewCreateInfo_handle_self(VkImageViewCreateInfo * val)139 vn_replace_VkImageViewCreateInfo_handle_self(VkImageViewCreateInfo *val)
140 {
141     /* skip val->sType */
142     /* skip val->pNext */
143     /* skip val->flags */
144     vn_replace_VkImage_handle(&val->image);
145     /* skip val->viewType */
146     /* skip val->format */
147     vn_replace_VkComponentMapping_handle(&val->components);
148     vn_replace_VkImageSubresourceRange_handle(&val->subresourceRange);
149 }
150 
151 static inline void
vn_replace_VkImageViewCreateInfo_handle(VkImageViewCreateInfo * val)152 vn_replace_VkImageViewCreateInfo_handle(VkImageViewCreateInfo *val)
153 {
154     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
155 
156     do {
157         switch ((int32_t)pnext->sType) {
158         case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO:
159             vn_replace_VkImageViewCreateInfo_handle_self((VkImageViewCreateInfo *)pnext);
160             break;
161         case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:
162             vn_replace_VkImageViewUsageCreateInfo_handle_self((VkImageViewUsageCreateInfo *)pnext);
163             break;
164         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:
165             vn_replace_VkSamplerYcbcrConversionInfo_handle_self((VkSamplerYcbcrConversionInfo *)pnext);
166             break;
167         default:
168             /* ignore unknown/unsupported struct */
169             break;
170         }
171         pnext = pnext->pNext;
172     } while (pnext);
173 }
174 
vn_decode_vkCreateImageView_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCreateImageView * args)175 static inline void vn_decode_vkCreateImageView_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCreateImageView *args)
176 {
177     vn_decode_VkDevice_lookup(dec, &args->device);
178     if (vn_decode_simple_pointer(dec)) {
179         args->pCreateInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCreateInfo));
180         if (!args->pCreateInfo) return;
181         vn_decode_VkImageViewCreateInfo_temp(dec, (VkImageViewCreateInfo *)args->pCreateInfo);
182     } else {
183         args->pCreateInfo = NULL;
184         vn_cs_decoder_set_fatal(dec);
185     }
186     if (vn_decode_simple_pointer(dec)) {
187         vn_cs_decoder_set_fatal(dec);
188     } else {
189         args->pAllocator = NULL;
190     }
191     if (vn_decode_simple_pointer(dec)) {
192         args->pView = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pView));
193         if (!args->pView) return;
194         vn_decode_VkImageView(dec, args->pView);
195     } else {
196         args->pView = NULL;
197         vn_cs_decoder_set_fatal(dec);
198     }
199 }
200 
vn_replace_vkCreateImageView_args_handle(struct vn_command_vkCreateImageView * args)201 static inline void vn_replace_vkCreateImageView_args_handle(struct vn_command_vkCreateImageView *args)
202 {
203     vn_replace_VkDevice_handle(&args->device);
204     if (args->pCreateInfo)
205         vn_replace_VkImageViewCreateInfo_handle((VkImageViewCreateInfo *)args->pCreateInfo);
206     /* skip args->pAllocator */
207     /* skip args->pView */
208 }
209 
vn_encode_vkCreateImageView_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCreateImageView * args)210 static inline void vn_encode_vkCreateImageView_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCreateImageView *args)
211 {
212     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCreateImageView_EXT});
213 
214     vn_encode_VkResult(enc, &args->ret);
215     /* skip args->device */
216     /* skip args->pCreateInfo */
217     /* skip args->pAllocator */
218     if (vn_encode_simple_pointer(enc, args->pView))
219         vn_encode_VkImageView(enc, args->pView);
220 }
221 
vn_decode_vkDestroyImageView_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkDestroyImageView * args)222 static inline void vn_decode_vkDestroyImageView_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkDestroyImageView *args)
223 {
224     vn_decode_VkDevice_lookup(dec, &args->device);
225     vn_decode_VkImageView_lookup(dec, &args->imageView);
226     if (vn_decode_simple_pointer(dec)) {
227         vn_cs_decoder_set_fatal(dec);
228     } else {
229         args->pAllocator = NULL;
230     }
231 }
232 
vn_replace_vkDestroyImageView_args_handle(struct vn_command_vkDestroyImageView * args)233 static inline void vn_replace_vkDestroyImageView_args_handle(struct vn_command_vkDestroyImageView *args)
234 {
235     vn_replace_VkDevice_handle(&args->device);
236     vn_replace_VkImageView_handle(&args->imageView);
237     /* skip args->pAllocator */
238 }
239 
vn_encode_vkDestroyImageView_reply(struct vn_cs_encoder * enc,const struct vn_command_vkDestroyImageView * args)240 static inline void vn_encode_vkDestroyImageView_reply(struct vn_cs_encoder *enc, const struct vn_command_vkDestroyImageView *args)
241 {
242     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkDestroyImageView_EXT});
243 
244     /* skip args->device */
245     /* skip args->imageView */
246     /* skip args->pAllocator */
247 }
248 
vn_dispatch_vkCreateImageView(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)249 static inline void vn_dispatch_vkCreateImageView(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
250 {
251     struct vn_command_vkCreateImageView args;
252 
253     if (!ctx->dispatch_vkCreateImageView) {
254         vn_cs_decoder_set_fatal(ctx->decoder);
255         return;
256     }
257 
258     vn_decode_vkCreateImageView_args_temp(ctx->decoder, &args);
259     if (!args.device) {
260         vn_cs_decoder_set_fatal(ctx->decoder);
261         return;
262     }
263 
264     if (!vn_cs_decoder_get_fatal(ctx->decoder))
265         ctx->dispatch_vkCreateImageView(ctx, &args);
266 
267 #ifdef DEBUG
268     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
269         vn_dispatch_debug_log(ctx, "vkCreateImageView returned %d", args.ret);
270 #endif
271 
272     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
273        vn_encode_vkCreateImageView_reply(ctx->encoder, &args);
274 
275     vn_cs_decoder_reset_temp_pool(ctx->decoder);
276 }
277 
vn_dispatch_vkDestroyImageView(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)278 static inline void vn_dispatch_vkDestroyImageView(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
279 {
280     struct vn_command_vkDestroyImageView args;
281 
282     if (!ctx->dispatch_vkDestroyImageView) {
283         vn_cs_decoder_set_fatal(ctx->decoder);
284         return;
285     }
286 
287     vn_decode_vkDestroyImageView_args_temp(ctx->decoder, &args);
288     if (!args.device) {
289         vn_cs_decoder_set_fatal(ctx->decoder);
290         return;
291     }
292 
293     if (!vn_cs_decoder_get_fatal(ctx->decoder))
294         ctx->dispatch_vkDestroyImageView(ctx, &args);
295 
296 
297     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
298        vn_encode_vkDestroyImageView_reply(ctx->encoder, &args);
299 
300     vn_cs_decoder_reset_temp_pool(ctx->decoder);
301 }
302 
303 #pragma GCC diagnostic pop
304 
305 #endif /* VN_PROTOCOL_RENDERER_IMAGE_VIEW_H */
306