xref: /aosp_15_r20/external/virglrenderer/src/venus/venus-protocol/vn_protocol_renderer_instance.h (revision bbecb9d118dfdb95f99bd754f8fa9be01f189df3)
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_INSTANCE_H
9 #define VN_PROTOCOL_RENDERER_INSTANCE_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 /*
18  * These structs/unions/commands are not included
19  *
20  *   vkGetInstanceProcAddr
21  */
22 
23 /* struct VkApplicationInfo chain */
24 
25 static inline void *
vn_decode_VkApplicationInfo_pnext_temp(struct vn_cs_decoder * dec)26 vn_decode_VkApplicationInfo_pnext_temp(struct vn_cs_decoder *dec)
27 {
28     /* no known/supported struct */
29     if (vn_decode_simple_pointer(dec))
30         vn_cs_decoder_set_fatal(dec);
31     return NULL;
32 }
33 
34 static inline void
vn_decode_VkApplicationInfo_self_temp(struct vn_cs_decoder * dec,VkApplicationInfo * val)35 vn_decode_VkApplicationInfo_self_temp(struct vn_cs_decoder *dec, VkApplicationInfo *val)
36 {
37     /* skip val->{sType,pNext} */
38     if (vn_peek_array_size(dec)) {
39         const size_t string_size = vn_decode_array_size_unchecked(dec);
40         val->pApplicationName = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pApplicationName) * string_size);
41         if (!val->pApplicationName) return;
42         vn_decode_char_array(dec, (char *)val->pApplicationName, string_size);
43     } else {
44         vn_decode_array_size_unchecked(dec);
45         val->pApplicationName = NULL;
46     }
47     vn_decode_uint32_t(dec, &val->applicationVersion);
48     if (vn_peek_array_size(dec)) {
49         const size_t string_size = vn_decode_array_size_unchecked(dec);
50         val->pEngineName = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pEngineName) * string_size);
51         if (!val->pEngineName) return;
52         vn_decode_char_array(dec, (char *)val->pEngineName, string_size);
53     } else {
54         vn_decode_array_size_unchecked(dec);
55         val->pEngineName = NULL;
56     }
57     vn_decode_uint32_t(dec, &val->engineVersion);
58     vn_decode_uint32_t(dec, &val->apiVersion);
59 }
60 
61 static inline void
vn_decode_VkApplicationInfo_temp(struct vn_cs_decoder * dec,VkApplicationInfo * val)62 vn_decode_VkApplicationInfo_temp(struct vn_cs_decoder *dec, VkApplicationInfo *val)
63 {
64     VkStructureType stype;
65     vn_decode_VkStructureType(dec, &stype);
66     if (stype != VK_STRUCTURE_TYPE_APPLICATION_INFO)
67         vn_cs_decoder_set_fatal(dec);
68 
69     val->sType = stype;
70     val->pNext = vn_decode_VkApplicationInfo_pnext_temp(dec);
71     vn_decode_VkApplicationInfo_self_temp(dec, val);
72 }
73 
74 static inline void
vn_replace_VkApplicationInfo_handle_self(VkApplicationInfo * val)75 vn_replace_VkApplicationInfo_handle_self(VkApplicationInfo *val)
76 {
77     /* skip val->sType */
78     /* skip val->pNext */
79     /* skip val->pApplicationName */
80     /* skip val->applicationVersion */
81     /* skip val->pEngineName */
82     /* skip val->engineVersion */
83     /* skip val->apiVersion */
84 }
85 
86 static inline void
vn_replace_VkApplicationInfo_handle(VkApplicationInfo * val)87 vn_replace_VkApplicationInfo_handle(VkApplicationInfo *val)
88 {
89     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
90 
91     do {
92         switch ((int32_t)pnext->sType) {
93         case VK_STRUCTURE_TYPE_APPLICATION_INFO:
94             vn_replace_VkApplicationInfo_handle_self((VkApplicationInfo *)pnext);
95             break;
96         default:
97             /* ignore unknown/unsupported struct */
98             break;
99         }
100         pnext = pnext->pNext;
101     } while (pnext);
102 }
103 
104 /* struct VkInstanceCreateInfo chain */
105 
106 static inline void *
vn_decode_VkInstanceCreateInfo_pnext_temp(struct vn_cs_decoder * dec)107 vn_decode_VkInstanceCreateInfo_pnext_temp(struct vn_cs_decoder *dec)
108 {
109     /* no known/supported struct */
110     if (vn_decode_simple_pointer(dec))
111         vn_cs_decoder_set_fatal(dec);
112     return NULL;
113 }
114 
115 static inline void
vn_decode_VkInstanceCreateInfo_self_temp(struct vn_cs_decoder * dec,VkInstanceCreateInfo * val)116 vn_decode_VkInstanceCreateInfo_self_temp(struct vn_cs_decoder *dec, VkInstanceCreateInfo *val)
117 {
118     /* skip val->{sType,pNext} */
119     vn_decode_VkFlags(dec, &val->flags);
120     if (vn_decode_simple_pointer(dec)) {
121         val->pApplicationInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pApplicationInfo));
122         if (!val->pApplicationInfo) return;
123         vn_decode_VkApplicationInfo_temp(dec, (VkApplicationInfo *)val->pApplicationInfo);
124     } else {
125         val->pApplicationInfo = NULL;
126     }
127     vn_decode_uint32_t(dec, &val->enabledLayerCount);
128     if (vn_peek_array_size(dec)) {
129         const uint32_t iter_count = vn_decode_array_size(dec, val->enabledLayerCount);
130         val->ppEnabledLayerNames = vn_cs_decoder_alloc_temp(dec, sizeof(*val->ppEnabledLayerNames) * iter_count);
131         if (!val->ppEnabledLayerNames) return;
132         for (uint32_t i = 0; i < iter_count; i++) {
133             const size_t string_size = vn_decode_array_size_unchecked(dec);
134             ((char **)val->ppEnabledLayerNames)[i] = vn_cs_decoder_alloc_temp(dec, sizeof(*val->ppEnabledLayerNames[i]) * string_size);
135             if (!val->ppEnabledLayerNames[i]) return;
136             vn_decode_char_array(dec, ((char **)val->ppEnabledLayerNames)[i], string_size);
137         }
138     } else {
139         vn_decode_array_size(dec, val->enabledLayerCount);
140         val->ppEnabledLayerNames = NULL;
141     }
142     vn_decode_uint32_t(dec, &val->enabledExtensionCount);
143     if (vn_peek_array_size(dec)) {
144         const uint32_t iter_count = vn_decode_array_size(dec, val->enabledExtensionCount);
145         val->ppEnabledExtensionNames = vn_cs_decoder_alloc_temp(dec, sizeof(*val->ppEnabledExtensionNames) * iter_count);
146         if (!val->ppEnabledExtensionNames) return;
147         for (uint32_t i = 0; i < iter_count; i++) {
148             const size_t string_size = vn_decode_array_size_unchecked(dec);
149             ((char **)val->ppEnabledExtensionNames)[i] = vn_cs_decoder_alloc_temp(dec, sizeof(*val->ppEnabledExtensionNames[i]) * string_size);
150             if (!val->ppEnabledExtensionNames[i]) return;
151             vn_decode_char_array(dec, ((char **)val->ppEnabledExtensionNames)[i], string_size);
152         }
153     } else {
154         vn_decode_array_size(dec, val->enabledExtensionCount);
155         val->ppEnabledExtensionNames = NULL;
156     }
157 }
158 
159 static inline void
vn_decode_VkInstanceCreateInfo_temp(struct vn_cs_decoder * dec,VkInstanceCreateInfo * val)160 vn_decode_VkInstanceCreateInfo_temp(struct vn_cs_decoder *dec, VkInstanceCreateInfo *val)
161 {
162     VkStructureType stype;
163     vn_decode_VkStructureType(dec, &stype);
164     if (stype != VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
165         vn_cs_decoder_set_fatal(dec);
166 
167     val->sType = stype;
168     val->pNext = vn_decode_VkInstanceCreateInfo_pnext_temp(dec);
169     vn_decode_VkInstanceCreateInfo_self_temp(dec, val);
170 }
171 
172 static inline void
vn_replace_VkInstanceCreateInfo_handle_self(VkInstanceCreateInfo * val)173 vn_replace_VkInstanceCreateInfo_handle_self(VkInstanceCreateInfo *val)
174 {
175     /* skip val->sType */
176     /* skip val->pNext */
177     /* skip val->flags */
178     if (val->pApplicationInfo)
179         vn_replace_VkApplicationInfo_handle((VkApplicationInfo *)val->pApplicationInfo);
180     /* skip val->enabledLayerCount */
181     /* skip val->ppEnabledLayerNames */
182     /* skip val->enabledExtensionCount */
183     /* skip val->ppEnabledExtensionNames */
184 }
185 
186 static inline void
vn_replace_VkInstanceCreateInfo_handle(VkInstanceCreateInfo * val)187 vn_replace_VkInstanceCreateInfo_handle(VkInstanceCreateInfo *val)
188 {
189     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
190 
191     do {
192         switch ((int32_t)pnext->sType) {
193         case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO:
194             vn_replace_VkInstanceCreateInfo_handle_self((VkInstanceCreateInfo *)pnext);
195             break;
196         default:
197             /* ignore unknown/unsupported struct */
198             break;
199         }
200         pnext = pnext->pNext;
201     } while (pnext);
202 }
203 
vn_decode_vkCreateInstance_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCreateInstance * args)204 static inline void vn_decode_vkCreateInstance_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCreateInstance *args)
205 {
206     if (vn_decode_simple_pointer(dec)) {
207         args->pCreateInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCreateInfo));
208         if (!args->pCreateInfo) return;
209         vn_decode_VkInstanceCreateInfo_temp(dec, (VkInstanceCreateInfo *)args->pCreateInfo);
210     } else {
211         args->pCreateInfo = NULL;
212         vn_cs_decoder_set_fatal(dec);
213     }
214     if (vn_decode_simple_pointer(dec)) {
215         vn_cs_decoder_set_fatal(dec);
216     } else {
217         args->pAllocator = NULL;
218     }
219     if (vn_decode_simple_pointer(dec)) {
220         args->pInstance = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pInstance));
221         if (!args->pInstance) return;
222         vn_decode_VkInstance_temp(dec, args->pInstance);
223     } else {
224         args->pInstance = NULL;
225         vn_cs_decoder_set_fatal(dec);
226     }
227 }
228 
vn_replace_vkCreateInstance_args_handle(struct vn_command_vkCreateInstance * args)229 static inline void vn_replace_vkCreateInstance_args_handle(struct vn_command_vkCreateInstance *args)
230 {
231     if (args->pCreateInfo)
232         vn_replace_VkInstanceCreateInfo_handle((VkInstanceCreateInfo *)args->pCreateInfo);
233     /* skip args->pAllocator */
234     /* skip args->pInstance */
235 }
236 
vn_encode_vkCreateInstance_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCreateInstance * args)237 static inline void vn_encode_vkCreateInstance_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCreateInstance *args)
238 {
239     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCreateInstance_EXT});
240 
241     vn_encode_VkResult(enc, &args->ret);
242     /* skip args->pCreateInfo */
243     /* skip args->pAllocator */
244     if (vn_encode_simple_pointer(enc, args->pInstance))
245         vn_encode_VkInstance(enc, args->pInstance);
246 }
247 
vn_decode_vkDestroyInstance_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkDestroyInstance * args)248 static inline void vn_decode_vkDestroyInstance_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkDestroyInstance *args)
249 {
250     vn_decode_VkInstance_lookup(dec, &args->instance);
251     if (vn_decode_simple_pointer(dec)) {
252         vn_cs_decoder_set_fatal(dec);
253     } else {
254         args->pAllocator = NULL;
255     }
256 }
257 
vn_replace_vkDestroyInstance_args_handle(struct vn_command_vkDestroyInstance * args)258 static inline void vn_replace_vkDestroyInstance_args_handle(struct vn_command_vkDestroyInstance *args)
259 {
260     vn_replace_VkInstance_handle(&args->instance);
261     /* skip args->pAllocator */
262 }
263 
vn_encode_vkDestroyInstance_reply(struct vn_cs_encoder * enc,const struct vn_command_vkDestroyInstance * args)264 static inline void vn_encode_vkDestroyInstance_reply(struct vn_cs_encoder *enc, const struct vn_command_vkDestroyInstance *args)
265 {
266     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkDestroyInstance_EXT});
267 
268     /* skip args->instance */
269     /* skip args->pAllocator */
270 }
271 
vn_decode_vkEnumerateInstanceVersion_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkEnumerateInstanceVersion * args)272 static inline void vn_decode_vkEnumerateInstanceVersion_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkEnumerateInstanceVersion *args)
273 {
274     if (vn_decode_simple_pointer(dec)) {
275         args->pApiVersion = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pApiVersion));
276         if (!args->pApiVersion) return;
277     } else {
278         args->pApiVersion = NULL;
279         vn_cs_decoder_set_fatal(dec);
280     }
281 }
282 
vn_replace_vkEnumerateInstanceVersion_args_handle(struct vn_command_vkEnumerateInstanceVersion * args)283 static inline void vn_replace_vkEnumerateInstanceVersion_args_handle(struct vn_command_vkEnumerateInstanceVersion *args)
284 {
285     /* skip args->pApiVersion */
286 }
287 
vn_encode_vkEnumerateInstanceVersion_reply(struct vn_cs_encoder * enc,const struct vn_command_vkEnumerateInstanceVersion * args)288 static inline void vn_encode_vkEnumerateInstanceVersion_reply(struct vn_cs_encoder *enc, const struct vn_command_vkEnumerateInstanceVersion *args)
289 {
290     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkEnumerateInstanceVersion_EXT});
291 
292     vn_encode_VkResult(enc, &args->ret);
293     if (vn_encode_simple_pointer(enc, args->pApiVersion))
294         vn_encode_uint32_t(enc, args->pApiVersion);
295 }
296 
vn_decode_vkEnumerateInstanceLayerProperties_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkEnumerateInstanceLayerProperties * args)297 static inline void vn_decode_vkEnumerateInstanceLayerProperties_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkEnumerateInstanceLayerProperties *args)
298 {
299     if (vn_decode_simple_pointer(dec)) {
300         args->pPropertyCount = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pPropertyCount));
301         if (!args->pPropertyCount) return;
302         vn_decode_uint32_t(dec, args->pPropertyCount);
303     } else {
304         args->pPropertyCount = NULL;
305         vn_cs_decoder_set_fatal(dec);
306     }
307     if (vn_peek_array_size(dec)) {
308         const uint32_t iter_count = vn_decode_array_size(dec, (args->pPropertyCount ? *args->pPropertyCount : 0));
309         args->pProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pProperties) * iter_count);
310         if (!args->pProperties) return;
311         for (uint32_t i = 0; i < iter_count; i++)
312             vn_decode_VkLayerProperties_partial_temp(dec, &args->pProperties[i]);
313     } else {
314         vn_decode_array_size_unchecked(dec);
315         args->pProperties = NULL;
316     }
317 }
318 
vn_replace_vkEnumerateInstanceLayerProperties_args_handle(struct vn_command_vkEnumerateInstanceLayerProperties * args)319 static inline void vn_replace_vkEnumerateInstanceLayerProperties_args_handle(struct vn_command_vkEnumerateInstanceLayerProperties *args)
320 {
321     /* skip args->pPropertyCount */
322     /* skip args->pProperties */
323 }
324 
vn_encode_vkEnumerateInstanceLayerProperties_reply(struct vn_cs_encoder * enc,const struct vn_command_vkEnumerateInstanceLayerProperties * args)325 static inline void vn_encode_vkEnumerateInstanceLayerProperties_reply(struct vn_cs_encoder *enc, const struct vn_command_vkEnumerateInstanceLayerProperties *args)
326 {
327     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkEnumerateInstanceLayerProperties_EXT});
328 
329     vn_encode_VkResult(enc, &args->ret);
330     if (vn_encode_simple_pointer(enc, args->pPropertyCount))
331         vn_encode_uint32_t(enc, args->pPropertyCount);
332     if (args->pProperties) {
333         vn_encode_array_size(enc, (args->pPropertyCount ? *args->pPropertyCount : 0));
334         for (uint32_t i = 0; i < (args->pPropertyCount ? *args->pPropertyCount : 0); i++)
335             vn_encode_VkLayerProperties(enc, &args->pProperties[i]);
336     } else {
337         vn_encode_array_size(enc, 0);
338     }
339 }
340 
vn_decode_vkEnumerateInstanceExtensionProperties_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkEnumerateInstanceExtensionProperties * args)341 static inline void vn_decode_vkEnumerateInstanceExtensionProperties_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkEnumerateInstanceExtensionProperties *args)
342 {
343     if (vn_peek_array_size(dec)) {
344         const size_t string_size = vn_decode_array_size_unchecked(dec);
345         args->pLayerName = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pLayerName) * string_size);
346         if (!args->pLayerName) return;
347         vn_decode_char_array(dec, (char *)args->pLayerName, string_size);
348     } else {
349         vn_decode_array_size_unchecked(dec);
350         args->pLayerName = NULL;
351     }
352     if (vn_decode_simple_pointer(dec)) {
353         args->pPropertyCount = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pPropertyCount));
354         if (!args->pPropertyCount) return;
355         vn_decode_uint32_t(dec, args->pPropertyCount);
356     } else {
357         args->pPropertyCount = NULL;
358         vn_cs_decoder_set_fatal(dec);
359     }
360     if (vn_peek_array_size(dec)) {
361         const uint32_t iter_count = vn_decode_array_size(dec, (args->pPropertyCount ? *args->pPropertyCount : 0));
362         args->pProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pProperties) * iter_count);
363         if (!args->pProperties) return;
364         for (uint32_t i = 0; i < iter_count; i++)
365             vn_decode_VkExtensionProperties_partial_temp(dec, &args->pProperties[i]);
366     } else {
367         vn_decode_array_size_unchecked(dec);
368         args->pProperties = NULL;
369     }
370 }
371 
vn_replace_vkEnumerateInstanceExtensionProperties_args_handle(struct vn_command_vkEnumerateInstanceExtensionProperties * args)372 static inline void vn_replace_vkEnumerateInstanceExtensionProperties_args_handle(struct vn_command_vkEnumerateInstanceExtensionProperties *args)
373 {
374     /* skip args->pLayerName */
375     /* skip args->pPropertyCount */
376     /* skip args->pProperties */
377 }
378 
vn_encode_vkEnumerateInstanceExtensionProperties_reply(struct vn_cs_encoder * enc,const struct vn_command_vkEnumerateInstanceExtensionProperties * args)379 static inline void vn_encode_vkEnumerateInstanceExtensionProperties_reply(struct vn_cs_encoder *enc, const struct vn_command_vkEnumerateInstanceExtensionProperties *args)
380 {
381     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkEnumerateInstanceExtensionProperties_EXT});
382 
383     vn_encode_VkResult(enc, &args->ret);
384     /* skip args->pLayerName */
385     if (vn_encode_simple_pointer(enc, args->pPropertyCount))
386         vn_encode_uint32_t(enc, args->pPropertyCount);
387     if (args->pProperties) {
388         vn_encode_array_size(enc, (args->pPropertyCount ? *args->pPropertyCount : 0));
389         for (uint32_t i = 0; i < (args->pPropertyCount ? *args->pPropertyCount : 0); i++)
390             vn_encode_VkExtensionProperties(enc, &args->pProperties[i]);
391     } else {
392         vn_encode_array_size(enc, 0);
393     }
394 }
395 
vn_dispatch_vkCreateInstance(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)396 static inline void vn_dispatch_vkCreateInstance(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
397 {
398     struct vn_command_vkCreateInstance args;
399 
400     if (!ctx->dispatch_vkCreateInstance) {
401         vn_cs_decoder_set_fatal(ctx->decoder);
402         return;
403     }
404 
405     vn_decode_vkCreateInstance_args_temp(ctx->decoder, &args);
406 
407     if (!vn_cs_decoder_get_fatal(ctx->decoder))
408         ctx->dispatch_vkCreateInstance(ctx, &args);
409 
410 #ifdef DEBUG
411     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
412         vn_dispatch_debug_log(ctx, "vkCreateInstance returned %d", args.ret);
413 #endif
414 
415     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
416        vn_encode_vkCreateInstance_reply(ctx->encoder, &args);
417 
418     vn_cs_decoder_reset_temp_pool(ctx->decoder);
419 }
420 
vn_dispatch_vkDestroyInstance(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)421 static inline void vn_dispatch_vkDestroyInstance(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
422 {
423     struct vn_command_vkDestroyInstance args;
424 
425     if (!ctx->dispatch_vkDestroyInstance) {
426         vn_cs_decoder_set_fatal(ctx->decoder);
427         return;
428     }
429 
430     vn_decode_vkDestroyInstance_args_temp(ctx->decoder, &args);
431     if (!args.instance) {
432         vn_cs_decoder_set_fatal(ctx->decoder);
433         return;
434     }
435 
436     if (!vn_cs_decoder_get_fatal(ctx->decoder))
437         ctx->dispatch_vkDestroyInstance(ctx, &args);
438 
439 
440     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
441        vn_encode_vkDestroyInstance_reply(ctx->encoder, &args);
442 
443     vn_cs_decoder_reset_temp_pool(ctx->decoder);
444 }
445 
vn_dispatch_vkEnumerateInstanceVersion(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)446 static inline void vn_dispatch_vkEnumerateInstanceVersion(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
447 {
448     struct vn_command_vkEnumerateInstanceVersion args;
449 
450     if (!ctx->dispatch_vkEnumerateInstanceVersion) {
451         vn_cs_decoder_set_fatal(ctx->decoder);
452         return;
453     }
454 
455     vn_decode_vkEnumerateInstanceVersion_args_temp(ctx->decoder, &args);
456 
457     if (!vn_cs_decoder_get_fatal(ctx->decoder))
458         ctx->dispatch_vkEnumerateInstanceVersion(ctx, &args);
459 
460 #ifdef DEBUG
461     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
462         vn_dispatch_debug_log(ctx, "vkEnumerateInstanceVersion returned %d", args.ret);
463 #endif
464 
465     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
466        vn_encode_vkEnumerateInstanceVersion_reply(ctx->encoder, &args);
467 
468     vn_cs_decoder_reset_temp_pool(ctx->decoder);
469 }
470 
vn_dispatch_vkEnumerateInstanceLayerProperties(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)471 static inline void vn_dispatch_vkEnumerateInstanceLayerProperties(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
472 {
473     struct vn_command_vkEnumerateInstanceLayerProperties args;
474 
475     if (!ctx->dispatch_vkEnumerateInstanceLayerProperties) {
476         vn_cs_decoder_set_fatal(ctx->decoder);
477         return;
478     }
479 
480     vn_decode_vkEnumerateInstanceLayerProperties_args_temp(ctx->decoder, &args);
481 
482     if (!vn_cs_decoder_get_fatal(ctx->decoder))
483         ctx->dispatch_vkEnumerateInstanceLayerProperties(ctx, &args);
484 
485 #ifdef DEBUG
486     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
487         vn_dispatch_debug_log(ctx, "vkEnumerateInstanceLayerProperties returned %d", args.ret);
488 #endif
489 
490     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
491        vn_encode_vkEnumerateInstanceLayerProperties_reply(ctx->encoder, &args);
492 
493     vn_cs_decoder_reset_temp_pool(ctx->decoder);
494 }
495 
vn_dispatch_vkEnumerateInstanceExtensionProperties(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)496 static inline void vn_dispatch_vkEnumerateInstanceExtensionProperties(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
497 {
498     struct vn_command_vkEnumerateInstanceExtensionProperties args;
499 
500     if (!ctx->dispatch_vkEnumerateInstanceExtensionProperties) {
501         vn_cs_decoder_set_fatal(ctx->decoder);
502         return;
503     }
504 
505     vn_decode_vkEnumerateInstanceExtensionProperties_args_temp(ctx->decoder, &args);
506 
507     if (!vn_cs_decoder_get_fatal(ctx->decoder))
508         ctx->dispatch_vkEnumerateInstanceExtensionProperties(ctx, &args);
509 
510 #ifdef DEBUG
511     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
512         vn_dispatch_debug_log(ctx, "vkEnumerateInstanceExtensionProperties returned %d", args.ret);
513 #endif
514 
515     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
516        vn_encode_vkEnumerateInstanceExtensionProperties_reply(ctx->encoder, &args);
517 
518     vn_cs_decoder_reset_temp_pool(ctx->decoder);
519 }
520 
521 #pragma GCC diagnostic pop
522 
523 #endif /* VN_PROTOCOL_RENDERER_INSTANCE_H */
524