Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mesa
Path: blob/21.2-virgl/src/virtio/venus-protocol/vn_protocol_driver_framebuffer.h
4560 views
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_FRAMEBUFFER_H
9
#define VN_PROTOCOL_DRIVER_FRAMEBUFFER_H
10
11
#include "vn_device.h"
12
#include "vn_protocol_driver_structs.h"
13
14
/* struct VkFramebufferAttachmentImageInfo chain */
15
16
static inline size_t
17
vn_sizeof_VkFramebufferAttachmentImageInfo_pnext(const void *val)
18
{
19
/* no known/supported struct */
20
return vn_sizeof_simple_pointer(NULL);
21
}
22
23
static inline size_t
24
vn_sizeof_VkFramebufferAttachmentImageInfo_self(const VkFramebufferAttachmentImageInfo *val)
25
{
26
size_t size = 0;
27
/* skip val->{sType,pNext} */
28
size += vn_sizeof_VkFlags(&val->flags);
29
size += vn_sizeof_VkFlags(&val->usage);
30
size += vn_sizeof_uint32_t(&val->width);
31
size += vn_sizeof_uint32_t(&val->height);
32
size += vn_sizeof_uint32_t(&val->layerCount);
33
size += vn_sizeof_uint32_t(&val->viewFormatCount);
34
if (val->pViewFormats) {
35
size += vn_sizeof_array_size(val->viewFormatCount);
36
size += vn_sizeof_VkFormat_array(val->pViewFormats, val->viewFormatCount);
37
} else {
38
size += vn_sizeof_array_size(0);
39
}
40
return size;
41
}
42
43
static inline size_t
44
vn_sizeof_VkFramebufferAttachmentImageInfo(const VkFramebufferAttachmentImageInfo *val)
45
{
46
size_t size = 0;
47
48
size += vn_sizeof_VkStructureType(&val->sType);
49
size += vn_sizeof_VkFramebufferAttachmentImageInfo_pnext(val->pNext);
50
size += vn_sizeof_VkFramebufferAttachmentImageInfo_self(val);
51
52
return size;
53
}
54
55
static inline void
56
vn_encode_VkFramebufferAttachmentImageInfo_pnext(struct vn_cs_encoder *enc, const void *val)
57
{
58
/* no known/supported struct */
59
vn_encode_simple_pointer(enc, NULL);
60
}
61
62
static inline void
63
vn_encode_VkFramebufferAttachmentImageInfo_self(struct vn_cs_encoder *enc, const VkFramebufferAttachmentImageInfo *val)
64
{
65
/* skip val->{sType,pNext} */
66
vn_encode_VkFlags(enc, &val->flags);
67
vn_encode_VkFlags(enc, &val->usage);
68
vn_encode_uint32_t(enc, &val->width);
69
vn_encode_uint32_t(enc, &val->height);
70
vn_encode_uint32_t(enc, &val->layerCount);
71
vn_encode_uint32_t(enc, &val->viewFormatCount);
72
if (val->pViewFormats) {
73
vn_encode_array_size(enc, val->viewFormatCount);
74
vn_encode_VkFormat_array(enc, val->pViewFormats, val->viewFormatCount);
75
} else {
76
vn_encode_array_size(enc, 0);
77
}
78
}
79
80
static inline void
81
vn_encode_VkFramebufferAttachmentImageInfo(struct vn_cs_encoder *enc, const VkFramebufferAttachmentImageInfo *val)
82
{
83
assert(val->sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO);
84
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO });
85
vn_encode_VkFramebufferAttachmentImageInfo_pnext(enc, val->pNext);
86
vn_encode_VkFramebufferAttachmentImageInfo_self(enc, val);
87
}
88
89
/* struct VkFramebufferAttachmentsCreateInfo chain */
90
91
static inline size_t
92
vn_sizeof_VkFramebufferAttachmentsCreateInfo_pnext(const void *val)
93
{
94
/* no known/supported struct */
95
return vn_sizeof_simple_pointer(NULL);
96
}
97
98
static inline size_t
99
vn_sizeof_VkFramebufferAttachmentsCreateInfo_self(const VkFramebufferAttachmentsCreateInfo *val)
100
{
101
size_t size = 0;
102
/* skip val->{sType,pNext} */
103
size += vn_sizeof_uint32_t(&val->attachmentImageInfoCount);
104
if (val->pAttachmentImageInfos) {
105
size += vn_sizeof_array_size(val->attachmentImageInfoCount);
106
for (uint32_t i = 0; i < val->attachmentImageInfoCount; i++)
107
size += vn_sizeof_VkFramebufferAttachmentImageInfo(&val->pAttachmentImageInfos[i]);
108
} else {
109
size += vn_sizeof_array_size(0);
110
}
111
return size;
112
}
113
114
static inline size_t
115
vn_sizeof_VkFramebufferAttachmentsCreateInfo(const VkFramebufferAttachmentsCreateInfo *val)
116
{
117
size_t size = 0;
118
119
size += vn_sizeof_VkStructureType(&val->sType);
120
size += vn_sizeof_VkFramebufferAttachmentsCreateInfo_pnext(val->pNext);
121
size += vn_sizeof_VkFramebufferAttachmentsCreateInfo_self(val);
122
123
return size;
124
}
125
126
static inline void
127
vn_encode_VkFramebufferAttachmentsCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
128
{
129
/* no known/supported struct */
130
vn_encode_simple_pointer(enc, NULL);
131
}
132
133
static inline void
134
vn_encode_VkFramebufferAttachmentsCreateInfo_self(struct vn_cs_encoder *enc, const VkFramebufferAttachmentsCreateInfo *val)
135
{
136
/* skip val->{sType,pNext} */
137
vn_encode_uint32_t(enc, &val->attachmentImageInfoCount);
138
if (val->pAttachmentImageInfos) {
139
vn_encode_array_size(enc, val->attachmentImageInfoCount);
140
for (uint32_t i = 0; i < val->attachmentImageInfoCount; i++)
141
vn_encode_VkFramebufferAttachmentImageInfo(enc, &val->pAttachmentImageInfos[i]);
142
} else {
143
vn_encode_array_size(enc, 0);
144
}
145
}
146
147
static inline void
148
vn_encode_VkFramebufferAttachmentsCreateInfo(struct vn_cs_encoder *enc, const VkFramebufferAttachmentsCreateInfo *val)
149
{
150
assert(val->sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO);
151
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO });
152
vn_encode_VkFramebufferAttachmentsCreateInfo_pnext(enc, val->pNext);
153
vn_encode_VkFramebufferAttachmentsCreateInfo_self(enc, val);
154
}
155
156
/* struct VkFramebufferCreateInfo chain */
157
158
static inline size_t
159
vn_sizeof_VkFramebufferCreateInfo_pnext(const void *val)
160
{
161
const VkBaseInStructure *pnext = val;
162
size_t size = 0;
163
164
while (pnext) {
165
switch ((int32_t)pnext->sType) {
166
case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:
167
size += vn_sizeof_simple_pointer(pnext);
168
size += vn_sizeof_VkStructureType(&pnext->sType);
169
size += vn_sizeof_VkFramebufferCreateInfo_pnext(pnext->pNext);
170
size += vn_sizeof_VkFramebufferAttachmentsCreateInfo_self((const VkFramebufferAttachmentsCreateInfo *)pnext);
171
return size;
172
default:
173
/* ignore unknown/unsupported struct */
174
break;
175
}
176
pnext = pnext->pNext;
177
}
178
179
return vn_sizeof_simple_pointer(NULL);
180
}
181
182
static inline size_t
183
vn_sizeof_VkFramebufferCreateInfo_self(const VkFramebufferCreateInfo *val)
184
{
185
size_t size = 0;
186
/* skip val->{sType,pNext} */
187
size += vn_sizeof_VkFlags(&val->flags);
188
size += vn_sizeof_VkRenderPass(&val->renderPass);
189
size += vn_sizeof_uint32_t(&val->attachmentCount);
190
if (val->pAttachments) {
191
size += vn_sizeof_array_size(val->attachmentCount);
192
for (uint32_t i = 0; i < val->attachmentCount; i++)
193
size += vn_sizeof_VkImageView(&val->pAttachments[i]);
194
} else {
195
size += vn_sizeof_array_size(0);
196
}
197
size += vn_sizeof_uint32_t(&val->width);
198
size += vn_sizeof_uint32_t(&val->height);
199
size += vn_sizeof_uint32_t(&val->layers);
200
return size;
201
}
202
203
static inline size_t
204
vn_sizeof_VkFramebufferCreateInfo(const VkFramebufferCreateInfo *val)
205
{
206
size_t size = 0;
207
208
size += vn_sizeof_VkStructureType(&val->sType);
209
size += vn_sizeof_VkFramebufferCreateInfo_pnext(val->pNext);
210
size += vn_sizeof_VkFramebufferCreateInfo_self(val);
211
212
return size;
213
}
214
215
static inline void
216
vn_encode_VkFramebufferCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
217
{
218
const VkBaseInStructure *pnext = val;
219
220
while (pnext) {
221
switch ((int32_t)pnext->sType) {
222
case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:
223
vn_encode_simple_pointer(enc, pnext);
224
vn_encode_VkStructureType(enc, &pnext->sType);
225
vn_encode_VkFramebufferCreateInfo_pnext(enc, pnext->pNext);
226
vn_encode_VkFramebufferAttachmentsCreateInfo_self(enc, (const VkFramebufferAttachmentsCreateInfo *)pnext);
227
return;
228
default:
229
/* ignore unknown/unsupported struct */
230
break;
231
}
232
pnext = pnext->pNext;
233
}
234
235
vn_encode_simple_pointer(enc, NULL);
236
}
237
238
static inline void
239
vn_encode_VkFramebufferCreateInfo_self(struct vn_cs_encoder *enc, const VkFramebufferCreateInfo *val)
240
{
241
/* skip val->{sType,pNext} */
242
vn_encode_VkFlags(enc, &val->flags);
243
vn_encode_VkRenderPass(enc, &val->renderPass);
244
vn_encode_uint32_t(enc, &val->attachmentCount);
245
if (val->pAttachments) {
246
vn_encode_array_size(enc, val->attachmentCount);
247
for (uint32_t i = 0; i < val->attachmentCount; i++)
248
vn_encode_VkImageView(enc, &val->pAttachments[i]);
249
} else {
250
vn_encode_array_size(enc, 0);
251
}
252
vn_encode_uint32_t(enc, &val->width);
253
vn_encode_uint32_t(enc, &val->height);
254
vn_encode_uint32_t(enc, &val->layers);
255
}
256
257
static inline void
258
vn_encode_VkFramebufferCreateInfo(struct vn_cs_encoder *enc, const VkFramebufferCreateInfo *val)
259
{
260
assert(val->sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO);
261
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO });
262
vn_encode_VkFramebufferCreateInfo_pnext(enc, val->pNext);
263
vn_encode_VkFramebufferCreateInfo_self(enc, val);
264
}
265
266
static inline size_t vn_sizeof_vkCreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer)
267
{
268
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateFramebuffer_EXT;
269
const VkFlags cmd_flags = 0;
270
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
271
272
cmd_size += vn_sizeof_VkDevice(&device);
273
cmd_size += vn_sizeof_simple_pointer(pCreateInfo);
274
if (pCreateInfo)
275
cmd_size += vn_sizeof_VkFramebufferCreateInfo(pCreateInfo);
276
cmd_size += vn_sizeof_simple_pointer(pAllocator);
277
if (pAllocator)
278
assert(false);
279
cmd_size += vn_sizeof_simple_pointer(pFramebuffer);
280
if (pFramebuffer)
281
cmd_size += vn_sizeof_VkFramebuffer(pFramebuffer);
282
283
return cmd_size;
284
}
285
286
static inline void vn_encode_vkCreateFramebuffer(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer)
287
{
288
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateFramebuffer_EXT;
289
290
vn_encode_VkCommandTypeEXT(enc, &cmd_type);
291
vn_encode_VkFlags(enc, &cmd_flags);
292
293
vn_encode_VkDevice(enc, &device);
294
if (vn_encode_simple_pointer(enc, pCreateInfo))
295
vn_encode_VkFramebufferCreateInfo(enc, pCreateInfo);
296
if (vn_encode_simple_pointer(enc, pAllocator))
297
assert(false);
298
if (vn_encode_simple_pointer(enc, pFramebuffer))
299
vn_encode_VkFramebuffer(enc, pFramebuffer);
300
}
301
302
static inline size_t vn_sizeof_vkCreateFramebuffer_reply(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer)
303
{
304
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateFramebuffer_EXT;
305
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
306
307
VkResult ret;
308
cmd_size += vn_sizeof_VkResult(&ret);
309
/* skip device */
310
/* skip pCreateInfo */
311
/* skip pAllocator */
312
cmd_size += vn_sizeof_simple_pointer(pFramebuffer);
313
if (pFramebuffer)
314
cmd_size += vn_sizeof_VkFramebuffer(pFramebuffer);
315
316
return cmd_size;
317
}
318
319
static inline VkResult vn_decode_vkCreateFramebuffer_reply(struct vn_cs_decoder *dec, VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer)
320
{
321
VkCommandTypeEXT command_type;
322
vn_decode_VkCommandTypeEXT(dec, &command_type);
323
assert(command_type == VK_COMMAND_TYPE_vkCreateFramebuffer_EXT);
324
325
VkResult ret;
326
vn_decode_VkResult(dec, &ret);
327
/* skip device */
328
/* skip pCreateInfo */
329
/* skip pAllocator */
330
if (vn_decode_simple_pointer(dec)) {
331
vn_decode_VkFramebuffer(dec, pFramebuffer);
332
} else {
333
pFramebuffer = NULL;
334
}
335
336
return ret;
337
}
338
339
static inline size_t vn_sizeof_vkDestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator)
340
{
341
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyFramebuffer_EXT;
342
const VkFlags cmd_flags = 0;
343
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
344
345
cmd_size += vn_sizeof_VkDevice(&device);
346
cmd_size += vn_sizeof_VkFramebuffer(&framebuffer);
347
cmd_size += vn_sizeof_simple_pointer(pAllocator);
348
if (pAllocator)
349
assert(false);
350
351
return cmd_size;
352
}
353
354
static inline void vn_encode_vkDestroyFramebuffer(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator)
355
{
356
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyFramebuffer_EXT;
357
358
vn_encode_VkCommandTypeEXT(enc, &cmd_type);
359
vn_encode_VkFlags(enc, &cmd_flags);
360
361
vn_encode_VkDevice(enc, &device);
362
vn_encode_VkFramebuffer(enc, &framebuffer);
363
if (vn_encode_simple_pointer(enc, pAllocator))
364
assert(false);
365
}
366
367
static inline size_t vn_sizeof_vkDestroyFramebuffer_reply(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator)
368
{
369
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyFramebuffer_EXT;
370
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
371
372
/* skip device */
373
/* skip framebuffer */
374
/* skip pAllocator */
375
376
return cmd_size;
377
}
378
379
static inline void vn_decode_vkDestroyFramebuffer_reply(struct vn_cs_decoder *dec, VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator)
380
{
381
VkCommandTypeEXT command_type;
382
vn_decode_VkCommandTypeEXT(dec, &command_type);
383
assert(command_type == VK_COMMAND_TYPE_vkDestroyFramebuffer_EXT);
384
385
/* skip device */
386
/* skip framebuffer */
387
/* skip pAllocator */
388
}
389
390
static inline void vn_submit_vkCreateFramebuffer(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer, struct vn_instance_submit_command *submit)
391
{
392
uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
393
void *cmd_data = local_cmd_data;
394
size_t cmd_size = vn_sizeof_vkCreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer);
395
if (cmd_size > sizeof(local_cmd_data)) {
396
cmd_data = malloc(cmd_size);
397
if (!cmd_data)
398
cmd_size = 0;
399
}
400
const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCreateFramebuffer_reply(device, pCreateInfo, pAllocator, pFramebuffer) : 0;
401
402
struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
403
if (cmd_size) {
404
vn_encode_vkCreateFramebuffer(enc, cmd_flags, device, pCreateInfo, pAllocator, pFramebuffer);
405
vn_instance_submit_command(vn_instance, submit);
406
if (cmd_data != local_cmd_data)
407
free(cmd_data);
408
}
409
}
410
411
static inline void vn_submit_vkDestroyFramebuffer(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator, struct vn_instance_submit_command *submit)
412
{
413
uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
414
void *cmd_data = local_cmd_data;
415
size_t cmd_size = vn_sizeof_vkDestroyFramebuffer(device, framebuffer, pAllocator);
416
if (cmd_size > sizeof(local_cmd_data)) {
417
cmd_data = malloc(cmd_size);
418
if (!cmd_data)
419
cmd_size = 0;
420
}
421
const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkDestroyFramebuffer_reply(device, framebuffer, pAllocator) : 0;
422
423
struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
424
if (cmd_size) {
425
vn_encode_vkDestroyFramebuffer(enc, cmd_flags, device, framebuffer, pAllocator);
426
vn_instance_submit_command(vn_instance, submit);
427
if (cmd_data != local_cmd_data)
428
free(cmd_data);
429
}
430
}
431
432
static inline VkResult vn_call_vkCreateFramebuffer(struct vn_instance *vn_instance, VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer)
433
{
434
struct vn_instance_submit_command submit;
435
vn_submit_vkCreateFramebuffer(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pCreateInfo, pAllocator, pFramebuffer, &submit);
436
struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
437
if (dec) {
438
const VkResult ret = vn_decode_vkCreateFramebuffer_reply(dec, device, pCreateInfo, pAllocator, pFramebuffer);
439
vn_instance_free_command_reply(vn_instance, &submit);
440
return ret;
441
} else {
442
return VK_ERROR_OUT_OF_HOST_MEMORY;
443
}
444
}
445
446
static inline void vn_async_vkCreateFramebuffer(struct vn_instance *vn_instance, VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer)
447
{
448
struct vn_instance_submit_command submit;
449
vn_submit_vkCreateFramebuffer(vn_instance, 0, device, pCreateInfo, pAllocator, pFramebuffer, &submit);
450
}
451
452
static inline void vn_call_vkDestroyFramebuffer(struct vn_instance *vn_instance, VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator)
453
{
454
struct vn_instance_submit_command submit;
455
vn_submit_vkDestroyFramebuffer(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, framebuffer, pAllocator, &submit);
456
struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
457
if (dec) {
458
vn_decode_vkDestroyFramebuffer_reply(dec, device, framebuffer, pAllocator);
459
vn_instance_free_command_reply(vn_instance, &submit);
460
}
461
}
462
463
static inline void vn_async_vkDestroyFramebuffer(struct vn_instance *vn_instance, VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator)
464
{
465
struct vn_instance_submit_command submit;
466
vn_submit_vkDestroyFramebuffer(vn_instance, 0, device, framebuffer, pAllocator, &submit);
467
}
468
469
#endif /* VN_PROTOCOL_DRIVER_FRAMEBUFFER_H */
470
471