xref: /aosp_15_r20/external/mesa3d/src/virtio/venus-protocol/vn_protocol_driver_shader_module.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1 /* This file is generated by venus-protocol.  See vn_protocol_driver.h. */
2 
3 /*
4  * Copyright 2020 Google LLC
5  * SPDX-License-Identifier: MIT
6  */
7 
8 #ifndef VN_PROTOCOL_DRIVER_SHADER_MODULE_H
9 #define VN_PROTOCOL_DRIVER_SHADER_MODULE_H
10 
11 #include "vn_ring.h"
12 #include "vn_protocol_driver_structs.h"
13 
vn_sizeof_vkCreateShaderModule(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule)14 static inline size_t vn_sizeof_vkCreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule)
15 {
16     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateShaderModule_EXT;
17     const VkFlags cmd_flags = 0;
18     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
19 
20     cmd_size += vn_sizeof_VkDevice(&device);
21     cmd_size += vn_sizeof_simple_pointer(pCreateInfo);
22     if (pCreateInfo)
23         cmd_size += vn_sizeof_VkShaderModuleCreateInfo(pCreateInfo);
24     cmd_size += vn_sizeof_simple_pointer(pAllocator);
25     if (pAllocator)
26         assert(false);
27     cmd_size += vn_sizeof_simple_pointer(pShaderModule);
28     if (pShaderModule)
29         cmd_size += vn_sizeof_VkShaderModule(pShaderModule);
30 
31     return cmd_size;
32 }
33 
vn_encode_vkCreateShaderModule(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule)34 static inline void vn_encode_vkCreateShaderModule(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule)
35 {
36     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateShaderModule_EXT;
37 
38     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
39     vn_encode_VkFlags(enc, &cmd_flags);
40 
41     vn_encode_VkDevice(enc, &device);
42     if (vn_encode_simple_pointer(enc, pCreateInfo))
43         vn_encode_VkShaderModuleCreateInfo(enc, pCreateInfo);
44     if (vn_encode_simple_pointer(enc, pAllocator))
45         assert(false);
46     if (vn_encode_simple_pointer(enc, pShaderModule))
47         vn_encode_VkShaderModule(enc, pShaderModule);
48 }
49 
vn_sizeof_vkCreateShaderModule_reply(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule)50 static inline size_t vn_sizeof_vkCreateShaderModule_reply(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule)
51 {
52     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateShaderModule_EXT;
53     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
54 
55     VkResult ret;
56     cmd_size += vn_sizeof_VkResult(&ret);
57     /* skip device */
58     /* skip pCreateInfo */
59     /* skip pAllocator */
60     cmd_size += vn_sizeof_simple_pointer(pShaderModule);
61     if (pShaderModule)
62         cmd_size += vn_sizeof_VkShaderModule(pShaderModule);
63 
64     return cmd_size;
65 }
66 
vn_decode_vkCreateShaderModule_reply(struct vn_cs_decoder * dec,VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule)67 static inline VkResult vn_decode_vkCreateShaderModule_reply(struct vn_cs_decoder *dec, VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule)
68 {
69     VkCommandTypeEXT command_type;
70     vn_decode_VkCommandTypeEXT(dec, &command_type);
71     assert(command_type == VK_COMMAND_TYPE_vkCreateShaderModule_EXT);
72 
73     VkResult ret;
74     vn_decode_VkResult(dec, &ret);
75     /* skip device */
76     /* skip pCreateInfo */
77     /* skip pAllocator */
78     if (vn_decode_simple_pointer(dec)) {
79         vn_decode_VkShaderModule(dec, pShaderModule);
80     } else {
81         pShaderModule = NULL;
82     }
83 
84     return ret;
85 }
86 
vn_sizeof_vkDestroyShaderModule(VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator)87 static inline size_t vn_sizeof_vkDestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator)
88 {
89     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyShaderModule_EXT;
90     const VkFlags cmd_flags = 0;
91     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
92 
93     cmd_size += vn_sizeof_VkDevice(&device);
94     cmd_size += vn_sizeof_VkShaderModule(&shaderModule);
95     cmd_size += vn_sizeof_simple_pointer(pAllocator);
96     if (pAllocator)
97         assert(false);
98 
99     return cmd_size;
100 }
101 
vn_encode_vkDestroyShaderModule(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator)102 static inline void vn_encode_vkDestroyShaderModule(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator)
103 {
104     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyShaderModule_EXT;
105 
106     vn_encode_VkCommandTypeEXT(enc, &cmd_type);
107     vn_encode_VkFlags(enc, &cmd_flags);
108 
109     vn_encode_VkDevice(enc, &device);
110     vn_encode_VkShaderModule(enc, &shaderModule);
111     if (vn_encode_simple_pointer(enc, pAllocator))
112         assert(false);
113 }
114 
vn_sizeof_vkDestroyShaderModule_reply(VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator)115 static inline size_t vn_sizeof_vkDestroyShaderModule_reply(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator)
116 {
117     const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyShaderModule_EXT;
118     size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
119 
120     /* skip device */
121     /* skip shaderModule */
122     /* skip pAllocator */
123 
124     return cmd_size;
125 }
126 
vn_decode_vkDestroyShaderModule_reply(struct vn_cs_decoder * dec,VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator)127 static inline void vn_decode_vkDestroyShaderModule_reply(struct vn_cs_decoder *dec, VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator)
128 {
129     VkCommandTypeEXT command_type;
130     vn_decode_VkCommandTypeEXT(dec, &command_type);
131     assert(command_type == VK_COMMAND_TYPE_vkDestroyShaderModule_EXT);
132 
133     /* skip device */
134     /* skip shaderModule */
135     /* skip pAllocator */
136 }
137 
vn_submit_vkCreateShaderModule(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule,struct vn_ring_submit_command * submit)138 static inline void vn_submit_vkCreateShaderModule(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule, struct vn_ring_submit_command *submit)
139 {
140     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
141     void *cmd_data = local_cmd_data;
142     size_t cmd_size = vn_sizeof_vkCreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule);
143     if (cmd_size > sizeof(local_cmd_data)) {
144         cmd_data = malloc(cmd_size);
145         if (!cmd_data)
146             cmd_size = 0;
147     }
148     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCreateShaderModule_reply(device, pCreateInfo, pAllocator, pShaderModule) : 0;
149 
150     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
151     if (cmd_size) {
152         vn_encode_vkCreateShaderModule(enc, cmd_flags, device, pCreateInfo, pAllocator, pShaderModule);
153         vn_ring_submit_command(vn_ring, submit);
154         if (cmd_data != local_cmd_data)
155             free(cmd_data);
156     }
157 }
158 
vn_submit_vkDestroyShaderModule(struct vn_ring * vn_ring,VkCommandFlagsEXT cmd_flags,VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator,struct vn_ring_submit_command * submit)159 static inline void vn_submit_vkDestroyShaderModule(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator, struct vn_ring_submit_command *submit)
160 {
161     uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
162     void *cmd_data = local_cmd_data;
163     size_t cmd_size = vn_sizeof_vkDestroyShaderModule(device, shaderModule, pAllocator);
164     if (cmd_size > sizeof(local_cmd_data)) {
165         cmd_data = malloc(cmd_size);
166         if (!cmd_data)
167             cmd_size = 0;
168     }
169     const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkDestroyShaderModule_reply(device, shaderModule, pAllocator) : 0;
170 
171     struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
172     if (cmd_size) {
173         vn_encode_vkDestroyShaderModule(enc, cmd_flags, device, shaderModule, pAllocator);
174         vn_ring_submit_command(vn_ring, submit);
175         if (cmd_data != local_cmd_data)
176             free(cmd_data);
177     }
178 }
179 
vn_call_vkCreateShaderModule(struct vn_ring * vn_ring,VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule)180 static inline VkResult vn_call_vkCreateShaderModule(struct vn_ring *vn_ring, VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule)
181 {
182     VN_TRACE_FUNC();
183 
184     struct vn_ring_submit_command submit;
185     vn_submit_vkCreateShaderModule(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pCreateInfo, pAllocator, pShaderModule, &submit);
186     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
187     if (dec) {
188         const VkResult ret = vn_decode_vkCreateShaderModule_reply(dec, device, pCreateInfo, pAllocator, pShaderModule);
189         vn_ring_free_command_reply(vn_ring, &submit);
190         return ret;
191     } else {
192         return VK_ERROR_OUT_OF_HOST_MEMORY;
193     }
194 }
195 
vn_async_vkCreateShaderModule(struct vn_ring * vn_ring,VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule)196 static inline void vn_async_vkCreateShaderModule(struct vn_ring *vn_ring, VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule)
197 {
198     struct vn_ring_submit_command submit;
199     vn_submit_vkCreateShaderModule(vn_ring, 0, device, pCreateInfo, pAllocator, pShaderModule, &submit);
200 }
201 
vn_call_vkDestroyShaderModule(struct vn_ring * vn_ring,VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator)202 static inline void vn_call_vkDestroyShaderModule(struct vn_ring *vn_ring, VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator)
203 {
204     VN_TRACE_FUNC();
205 
206     struct vn_ring_submit_command submit;
207     vn_submit_vkDestroyShaderModule(vn_ring, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, shaderModule, pAllocator, &submit);
208     struct vn_cs_decoder *dec = vn_ring_get_command_reply(vn_ring, &submit);
209     if (dec) {
210         vn_decode_vkDestroyShaderModule_reply(dec, device, shaderModule, pAllocator);
211         vn_ring_free_command_reply(vn_ring, &submit);
212     }
213 }
214 
vn_async_vkDestroyShaderModule(struct vn_ring * vn_ring,VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator)215 static inline void vn_async_vkDestroyShaderModule(struct vn_ring *vn_ring, VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator)
216 {
217     struct vn_ring_submit_command submit;
218     vn_submit_vkDestroyShaderModule(vn_ring, 0, device, shaderModule, pAllocator, &submit);
219 }
220 
221 #endif /* VN_PROTOCOL_DRIVER_SHADER_MODULE_H */
222