xref: /aosp_15_r20/external/virglrenderer/src/venus/venus-protocol/vn_protocol_renderer_shader_module.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_SHADER_MODULE_H
9 #define VN_PROTOCOL_RENDERER_SHADER_MODULE_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 
vn_decode_vkCreateShaderModule_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCreateShaderModule * args)17 static inline void vn_decode_vkCreateShaderModule_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCreateShaderModule *args)
18 {
19     vn_decode_VkDevice_lookup(dec, &args->device);
20     if (vn_decode_simple_pointer(dec)) {
21         args->pCreateInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCreateInfo));
22         if (!args->pCreateInfo) return;
23         vn_decode_VkShaderModuleCreateInfo_temp(dec, (VkShaderModuleCreateInfo *)args->pCreateInfo);
24     } else {
25         args->pCreateInfo = NULL;
26         vn_cs_decoder_set_fatal(dec);
27     }
28     if (vn_decode_simple_pointer(dec)) {
29         vn_cs_decoder_set_fatal(dec);
30     } else {
31         args->pAllocator = NULL;
32     }
33     if (vn_decode_simple_pointer(dec)) {
34         args->pShaderModule = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pShaderModule));
35         if (!args->pShaderModule) return;
36         vn_decode_VkShaderModule(dec, args->pShaderModule);
37     } else {
38         args->pShaderModule = NULL;
39         vn_cs_decoder_set_fatal(dec);
40     }
41 }
42 
vn_replace_vkCreateShaderModule_args_handle(struct vn_command_vkCreateShaderModule * args)43 static inline void vn_replace_vkCreateShaderModule_args_handle(struct vn_command_vkCreateShaderModule *args)
44 {
45     vn_replace_VkDevice_handle(&args->device);
46     if (args->pCreateInfo)
47         vn_replace_VkShaderModuleCreateInfo_handle((VkShaderModuleCreateInfo *)args->pCreateInfo);
48     /* skip args->pAllocator */
49     /* skip args->pShaderModule */
50 }
51 
vn_encode_vkCreateShaderModule_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCreateShaderModule * args)52 static inline void vn_encode_vkCreateShaderModule_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCreateShaderModule *args)
53 {
54     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCreateShaderModule_EXT});
55 
56     vn_encode_VkResult(enc, &args->ret);
57     /* skip args->device */
58     /* skip args->pCreateInfo */
59     /* skip args->pAllocator */
60     if (vn_encode_simple_pointer(enc, args->pShaderModule))
61         vn_encode_VkShaderModule(enc, args->pShaderModule);
62 }
63 
vn_decode_vkDestroyShaderModule_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkDestroyShaderModule * args)64 static inline void vn_decode_vkDestroyShaderModule_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkDestroyShaderModule *args)
65 {
66     vn_decode_VkDevice_lookup(dec, &args->device);
67     vn_decode_VkShaderModule_lookup(dec, &args->shaderModule);
68     if (vn_decode_simple_pointer(dec)) {
69         vn_cs_decoder_set_fatal(dec);
70     } else {
71         args->pAllocator = NULL;
72     }
73 }
74 
vn_replace_vkDestroyShaderModule_args_handle(struct vn_command_vkDestroyShaderModule * args)75 static inline void vn_replace_vkDestroyShaderModule_args_handle(struct vn_command_vkDestroyShaderModule *args)
76 {
77     vn_replace_VkDevice_handle(&args->device);
78     vn_replace_VkShaderModule_handle(&args->shaderModule);
79     /* skip args->pAllocator */
80 }
81 
vn_encode_vkDestroyShaderModule_reply(struct vn_cs_encoder * enc,const struct vn_command_vkDestroyShaderModule * args)82 static inline void vn_encode_vkDestroyShaderModule_reply(struct vn_cs_encoder *enc, const struct vn_command_vkDestroyShaderModule *args)
83 {
84     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkDestroyShaderModule_EXT});
85 
86     /* skip args->device */
87     /* skip args->shaderModule */
88     /* skip args->pAllocator */
89 }
90 
vn_dispatch_vkCreateShaderModule(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)91 static inline void vn_dispatch_vkCreateShaderModule(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
92 {
93     struct vn_command_vkCreateShaderModule args;
94 
95     if (!ctx->dispatch_vkCreateShaderModule) {
96         vn_cs_decoder_set_fatal(ctx->decoder);
97         return;
98     }
99 
100     vn_decode_vkCreateShaderModule_args_temp(ctx->decoder, &args);
101     if (!args.device) {
102         vn_cs_decoder_set_fatal(ctx->decoder);
103         return;
104     }
105 
106     if (!vn_cs_decoder_get_fatal(ctx->decoder))
107         ctx->dispatch_vkCreateShaderModule(ctx, &args);
108 
109 #ifdef DEBUG
110     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
111         vn_dispatch_debug_log(ctx, "vkCreateShaderModule returned %d", args.ret);
112 #endif
113 
114     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
115        vn_encode_vkCreateShaderModule_reply(ctx->encoder, &args);
116 
117     vn_cs_decoder_reset_temp_pool(ctx->decoder);
118 }
119 
vn_dispatch_vkDestroyShaderModule(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)120 static inline void vn_dispatch_vkDestroyShaderModule(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
121 {
122     struct vn_command_vkDestroyShaderModule args;
123 
124     if (!ctx->dispatch_vkDestroyShaderModule) {
125         vn_cs_decoder_set_fatal(ctx->decoder);
126         return;
127     }
128 
129     vn_decode_vkDestroyShaderModule_args_temp(ctx->decoder, &args);
130     if (!args.device) {
131         vn_cs_decoder_set_fatal(ctx->decoder);
132         return;
133     }
134 
135     if (!vn_cs_decoder_get_fatal(ctx->decoder))
136         ctx->dispatch_vkDestroyShaderModule(ctx, &args);
137 
138 
139     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
140        vn_encode_vkDestroyShaderModule_reply(ctx->encoder, &args);
141 
142     vn_cs_decoder_reset_temp_pool(ctx->decoder);
143 }
144 
145 #pragma GCC diagnostic pop
146 
147 #endif /* VN_PROTOCOL_RENDERER_SHADER_MODULE_H */
148