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