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_COMMAND_BUFFER_H 9 #define VN_PROTOCOL_DRIVER_COMMAND_BUFFER_H 10 11 #include "vn_instance.h" 12 #include "vn_protocol_driver_structs.h" 13 14 /* struct VkCommandBufferAllocateInfo chain */ 15 16 static inline size_t 17 vn_sizeof_VkCommandBufferAllocateInfo_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_VkCommandBufferAllocateInfo_self(const VkCommandBufferAllocateInfo *val) 25 { 26 size_t size = 0; 27 /* skip val->{sType,pNext} */ 28 size += vn_sizeof_VkCommandPool(&val->commandPool); 29 size += vn_sizeof_VkCommandBufferLevel(&val->level); 30 size += vn_sizeof_uint32_t(&val->commandBufferCount); 31 return size; 32 } 33 34 static inline size_t 35 vn_sizeof_VkCommandBufferAllocateInfo(const VkCommandBufferAllocateInfo *val) 36 { 37 size_t size = 0; 38 39 size += vn_sizeof_VkStructureType(&val->sType); 40 size += vn_sizeof_VkCommandBufferAllocateInfo_pnext(val->pNext); 41 size += vn_sizeof_VkCommandBufferAllocateInfo_self(val); 42 43 return size; 44 } 45 46 static inline void 47 vn_encode_VkCommandBufferAllocateInfo_pnext(struct vn_cs_encoder *enc, const void *val) 48 { 49 /* no known/supported struct */ 50 vn_encode_simple_pointer(enc, NULL); 51 } 52 53 static inline void 54 vn_encode_VkCommandBufferAllocateInfo_self(struct vn_cs_encoder *enc, const VkCommandBufferAllocateInfo *val) 55 { 56 /* skip val->{sType,pNext} */ 57 vn_encode_VkCommandPool(enc, &val->commandPool); 58 vn_encode_VkCommandBufferLevel(enc, &val->level); 59 vn_encode_uint32_t(enc, &val->commandBufferCount); 60 } 61 62 static inline void 63 vn_encode_VkCommandBufferAllocateInfo(struct vn_cs_encoder *enc, const VkCommandBufferAllocateInfo *val) 64 { 65 assert(val->sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO); 66 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO }); 67 vn_encode_VkCommandBufferAllocateInfo_pnext(enc, val->pNext); 68 vn_encode_VkCommandBufferAllocateInfo_self(enc, val); 69 } 70 71 /* struct VkCommandBufferInheritanceInfo chain */ 72 73 static inline size_t 74 vn_sizeof_VkCommandBufferInheritanceInfo_pnext(const void *val) 75 { 76 /* no known/supported struct */ 77 return vn_sizeof_simple_pointer(NULL); 78 } 79 80 static inline size_t 81 vn_sizeof_VkCommandBufferInheritanceInfo_self(const VkCommandBufferInheritanceInfo *val) 82 { 83 size_t size = 0; 84 /* skip val->{sType,pNext} */ 85 size += vn_sizeof_VkRenderPass(&val->renderPass); 86 size += vn_sizeof_uint32_t(&val->subpass); 87 size += vn_sizeof_VkFramebuffer(&val->framebuffer); 88 size += vn_sizeof_VkBool32(&val->occlusionQueryEnable); 89 size += vn_sizeof_VkFlags(&val->queryFlags); 90 size += vn_sizeof_VkFlags(&val->pipelineStatistics); 91 return size; 92 } 93 94 static inline size_t 95 vn_sizeof_VkCommandBufferInheritanceInfo(const VkCommandBufferInheritanceInfo *val) 96 { 97 size_t size = 0; 98 99 size += vn_sizeof_VkStructureType(&val->sType); 100 size += vn_sizeof_VkCommandBufferInheritanceInfo_pnext(val->pNext); 101 size += vn_sizeof_VkCommandBufferInheritanceInfo_self(val); 102 103 return size; 104 } 105 106 static inline void 107 vn_encode_VkCommandBufferInheritanceInfo_pnext(struct vn_cs_encoder *enc, const void *val) 108 { 109 /* no known/supported struct */ 110 vn_encode_simple_pointer(enc, NULL); 111 } 112 113 static inline void 114 vn_encode_VkCommandBufferInheritanceInfo_self(struct vn_cs_encoder *enc, const VkCommandBufferInheritanceInfo *val) 115 { 116 /* skip val->{sType,pNext} */ 117 vn_encode_VkRenderPass(enc, &val->renderPass); 118 vn_encode_uint32_t(enc, &val->subpass); 119 vn_encode_VkFramebuffer(enc, &val->framebuffer); 120 vn_encode_VkBool32(enc, &val->occlusionQueryEnable); 121 vn_encode_VkFlags(enc, &val->queryFlags); 122 vn_encode_VkFlags(enc, &val->pipelineStatistics); 123 } 124 125 static inline void 126 vn_encode_VkCommandBufferInheritanceInfo(struct vn_cs_encoder *enc, const VkCommandBufferInheritanceInfo *val) 127 { 128 assert(val->sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO); 129 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO }); 130 vn_encode_VkCommandBufferInheritanceInfo_pnext(enc, val->pNext); 131 vn_encode_VkCommandBufferInheritanceInfo_self(enc, val); 132 } 133 134 static inline void 135 vn_decode_VkCommandBufferInheritanceInfo_pnext(struct vn_cs_decoder *dec, const void *val) 136 { 137 /* no known/supported struct */ 138 if (vn_decode_simple_pointer(dec)) 139 assert(false); 140 } 141 142 static inline void 143 vn_decode_VkCommandBufferInheritanceInfo_self(struct vn_cs_decoder *dec, VkCommandBufferInheritanceInfo *val) 144 { 145 /* skip val->{sType,pNext} */ 146 vn_decode_VkRenderPass(dec, &val->renderPass); 147 vn_decode_uint32_t(dec, &val->subpass); 148 vn_decode_VkFramebuffer(dec, &val->framebuffer); 149 vn_decode_VkBool32(dec, &val->occlusionQueryEnable); 150 vn_decode_VkFlags(dec, &val->queryFlags); 151 vn_decode_VkFlags(dec, &val->pipelineStatistics); 152 } 153 154 static inline void 155 vn_decode_VkCommandBufferInheritanceInfo(struct vn_cs_decoder *dec, VkCommandBufferInheritanceInfo *val) 156 { 157 VkStructureType stype; 158 vn_decode_VkStructureType(dec, &stype); 159 assert(stype == VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO); 160 161 assert(val->sType == stype); 162 vn_decode_VkCommandBufferInheritanceInfo_pnext(dec, val->pNext); 163 vn_decode_VkCommandBufferInheritanceInfo_self(dec, val); 164 } 165 166 /* struct VkDeviceGroupCommandBufferBeginInfo chain */ 167 168 static inline size_t 169 vn_sizeof_VkDeviceGroupCommandBufferBeginInfo_pnext(const void *val) 170 { 171 /* no known/supported struct */ 172 return vn_sizeof_simple_pointer(NULL); 173 } 174 175 static inline size_t 176 vn_sizeof_VkDeviceGroupCommandBufferBeginInfo_self(const VkDeviceGroupCommandBufferBeginInfo *val) 177 { 178 size_t size = 0; 179 /* skip val->{sType,pNext} */ 180 size += vn_sizeof_uint32_t(&val->deviceMask); 181 return size; 182 } 183 184 static inline size_t 185 vn_sizeof_VkDeviceGroupCommandBufferBeginInfo(const VkDeviceGroupCommandBufferBeginInfo *val) 186 { 187 size_t size = 0; 188 189 size += vn_sizeof_VkStructureType(&val->sType); 190 size += vn_sizeof_VkDeviceGroupCommandBufferBeginInfo_pnext(val->pNext); 191 size += vn_sizeof_VkDeviceGroupCommandBufferBeginInfo_self(val); 192 193 return size; 194 } 195 196 static inline void 197 vn_encode_VkDeviceGroupCommandBufferBeginInfo_pnext(struct vn_cs_encoder *enc, const void *val) 198 { 199 /* no known/supported struct */ 200 vn_encode_simple_pointer(enc, NULL); 201 } 202 203 static inline void 204 vn_encode_VkDeviceGroupCommandBufferBeginInfo_self(struct vn_cs_encoder *enc, const VkDeviceGroupCommandBufferBeginInfo *val) 205 { 206 /* skip val->{sType,pNext} */ 207 vn_encode_uint32_t(enc, &val->deviceMask); 208 } 209 210 static inline void 211 vn_encode_VkDeviceGroupCommandBufferBeginInfo(struct vn_cs_encoder *enc, const VkDeviceGroupCommandBufferBeginInfo *val) 212 { 213 assert(val->sType == VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO); 214 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO }); 215 vn_encode_VkDeviceGroupCommandBufferBeginInfo_pnext(enc, val->pNext); 216 vn_encode_VkDeviceGroupCommandBufferBeginInfo_self(enc, val); 217 } 218 219 static inline void 220 vn_decode_VkDeviceGroupCommandBufferBeginInfo_pnext(struct vn_cs_decoder *dec, const void *val) 221 { 222 /* no known/supported struct */ 223 if (vn_decode_simple_pointer(dec)) 224 assert(false); 225 } 226 227 static inline void 228 vn_decode_VkDeviceGroupCommandBufferBeginInfo_self(struct vn_cs_decoder *dec, VkDeviceGroupCommandBufferBeginInfo *val) 229 { 230 /* skip val->{sType,pNext} */ 231 vn_decode_uint32_t(dec, &val->deviceMask); 232 } 233 234 static inline void 235 vn_decode_VkDeviceGroupCommandBufferBeginInfo(struct vn_cs_decoder *dec, VkDeviceGroupCommandBufferBeginInfo *val) 236 { 237 VkStructureType stype; 238 vn_decode_VkStructureType(dec, &stype); 239 assert(stype == VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO); 240 241 assert(val->sType == stype); 242 vn_decode_VkDeviceGroupCommandBufferBeginInfo_pnext(dec, val->pNext); 243 vn_decode_VkDeviceGroupCommandBufferBeginInfo_self(dec, val); 244 } 245 246 /* struct VkCommandBufferBeginInfo chain */ 247 248 static inline size_t 249 vn_sizeof_VkCommandBufferBeginInfo_pnext(const void *val) 250 { 251 const VkBaseInStructure *pnext = val; 252 size_t size = 0; 253 254 while (pnext) { 255 switch ((int32_t)pnext->sType) { 256 case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: 257 size += vn_sizeof_simple_pointer(pnext); 258 size += vn_sizeof_VkStructureType(&pnext->sType); 259 size += vn_sizeof_VkCommandBufferBeginInfo_pnext(pnext->pNext); 260 size += vn_sizeof_VkDeviceGroupCommandBufferBeginInfo_self((const VkDeviceGroupCommandBufferBeginInfo *)pnext); 261 return size; 262 default: 263 /* ignore unknown/unsupported struct */ 264 break; 265 } 266 pnext = pnext->pNext; 267 } 268 269 return vn_sizeof_simple_pointer(NULL); 270 } 271 272 static inline size_t 273 vn_sizeof_VkCommandBufferBeginInfo_self(const VkCommandBufferBeginInfo *val) 274 { 275 size_t size = 0; 276 /* skip val->{sType,pNext} */ 277 size += vn_sizeof_VkFlags(&val->flags); 278 size += vn_sizeof_simple_pointer(val->pInheritanceInfo); 279 if (val->pInheritanceInfo) 280 size += vn_sizeof_VkCommandBufferInheritanceInfo(val->pInheritanceInfo); 281 return size; 282 } 283 284 static inline size_t 285 vn_sizeof_VkCommandBufferBeginInfo(const VkCommandBufferBeginInfo *val) 286 { 287 size_t size = 0; 288 289 size += vn_sizeof_VkStructureType(&val->sType); 290 size += vn_sizeof_VkCommandBufferBeginInfo_pnext(val->pNext); 291 size += vn_sizeof_VkCommandBufferBeginInfo_self(val); 292 293 return size; 294 } 295 296 static inline void 297 vn_encode_VkCommandBufferBeginInfo_pnext(struct vn_cs_encoder *enc, const void *val) 298 { 299 const VkBaseInStructure *pnext = val; 300 301 while (pnext) { 302 switch ((int32_t)pnext->sType) { 303 case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: 304 vn_encode_simple_pointer(enc, pnext); 305 vn_encode_VkStructureType(enc, &pnext->sType); 306 vn_encode_VkCommandBufferBeginInfo_pnext(enc, pnext->pNext); 307 vn_encode_VkDeviceGroupCommandBufferBeginInfo_self(enc, (const VkDeviceGroupCommandBufferBeginInfo *)pnext); 308 return; 309 default: 310 /* ignore unknown/unsupported struct */ 311 break; 312 } 313 pnext = pnext->pNext; 314 } 315 316 vn_encode_simple_pointer(enc, NULL); 317 } 318 319 static inline void 320 vn_encode_VkCommandBufferBeginInfo_self(struct vn_cs_encoder *enc, const VkCommandBufferBeginInfo *val) 321 { 322 /* skip val->{sType,pNext} */ 323 vn_encode_VkFlags(enc, &val->flags); 324 if (vn_encode_simple_pointer(enc, val->pInheritanceInfo)) 325 vn_encode_VkCommandBufferInheritanceInfo(enc, val->pInheritanceInfo); 326 } 327 328 static inline void 329 vn_encode_VkCommandBufferBeginInfo(struct vn_cs_encoder *enc, const VkCommandBufferBeginInfo *val) 330 { 331 assert(val->sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO); 332 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO }); 333 vn_encode_VkCommandBufferBeginInfo_pnext(enc, val->pNext); 334 vn_encode_VkCommandBufferBeginInfo_self(enc, val); 335 } 336 337 static inline void 338 vn_decode_VkCommandBufferBeginInfo_pnext(struct vn_cs_decoder *dec, const void *val) 339 { 340 VkBaseOutStructure *pnext = (VkBaseOutStructure *)val; 341 VkStructureType stype; 342 343 if (!vn_decode_simple_pointer(dec)) 344 return; 345 346 vn_decode_VkStructureType(dec, &stype); 347 while (true) { 348 assert(pnext); 349 if (pnext->sType == stype) 350 break; 351 } 352 353 switch ((int32_t)pnext->sType) { 354 case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: 355 vn_decode_VkCommandBufferBeginInfo_pnext(dec, pnext->pNext); 356 vn_decode_VkDeviceGroupCommandBufferBeginInfo_self(dec, (VkDeviceGroupCommandBufferBeginInfo *)pnext); 357 break; 358 default: 359 assert(false); 360 break; 361 } 362 } 363 364 static inline void 365 vn_decode_VkCommandBufferBeginInfo_self(struct vn_cs_decoder *dec, VkCommandBufferBeginInfo *val) 366 { 367 /* skip val->{sType,pNext} */ 368 vn_decode_VkFlags(dec, &val->flags); 369 if (vn_decode_simple_pointer(dec)) { 370 vn_decode_VkCommandBufferInheritanceInfo(dec, (VkCommandBufferInheritanceInfo *)val->pInheritanceInfo); 371 } else { 372 val->pInheritanceInfo = NULL; 373 } 374 } 375 376 static inline void 377 vn_decode_VkCommandBufferBeginInfo(struct vn_cs_decoder *dec, VkCommandBufferBeginInfo *val) 378 { 379 VkStructureType stype; 380 vn_decode_VkStructureType(dec, &stype); 381 assert(stype == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO); 382 383 assert(val->sType == stype); 384 vn_decode_VkCommandBufferBeginInfo_pnext(dec, val->pNext); 385 vn_decode_VkCommandBufferBeginInfo_self(dec, val); 386 } 387 388 /* struct VkBufferCopy */ 389 390 static inline size_t 391 vn_sizeof_VkBufferCopy(const VkBufferCopy *val) 392 { 393 size_t size = 0; 394 size += vn_sizeof_VkDeviceSize(&val->srcOffset); 395 size += vn_sizeof_VkDeviceSize(&val->dstOffset); 396 size += vn_sizeof_VkDeviceSize(&val->size); 397 return size; 398 } 399 400 static inline void 401 vn_encode_VkBufferCopy(struct vn_cs_encoder *enc, const VkBufferCopy *val) 402 { 403 vn_encode_VkDeviceSize(enc, &val->srcOffset); 404 vn_encode_VkDeviceSize(enc, &val->dstOffset); 405 vn_encode_VkDeviceSize(enc, &val->size); 406 } 407 408 /* struct VkImageSubresourceLayers */ 409 410 static inline size_t 411 vn_sizeof_VkImageSubresourceLayers(const VkImageSubresourceLayers *val) 412 { 413 size_t size = 0; 414 size += vn_sizeof_VkFlags(&val->aspectMask); 415 size += vn_sizeof_uint32_t(&val->mipLevel); 416 size += vn_sizeof_uint32_t(&val->baseArrayLayer); 417 size += vn_sizeof_uint32_t(&val->layerCount); 418 return size; 419 } 420 421 static inline void 422 vn_encode_VkImageSubresourceLayers(struct vn_cs_encoder *enc, const VkImageSubresourceLayers *val) 423 { 424 vn_encode_VkFlags(enc, &val->aspectMask); 425 vn_encode_uint32_t(enc, &val->mipLevel); 426 vn_encode_uint32_t(enc, &val->baseArrayLayer); 427 vn_encode_uint32_t(enc, &val->layerCount); 428 } 429 430 /* struct VkImageCopy */ 431 432 static inline size_t 433 vn_sizeof_VkImageCopy(const VkImageCopy *val) 434 { 435 size_t size = 0; 436 size += vn_sizeof_VkImageSubresourceLayers(&val->srcSubresource); 437 size += vn_sizeof_VkOffset3D(&val->srcOffset); 438 size += vn_sizeof_VkImageSubresourceLayers(&val->dstSubresource); 439 size += vn_sizeof_VkOffset3D(&val->dstOffset); 440 size += vn_sizeof_VkExtent3D(&val->extent); 441 return size; 442 } 443 444 static inline void 445 vn_encode_VkImageCopy(struct vn_cs_encoder *enc, const VkImageCopy *val) 446 { 447 vn_encode_VkImageSubresourceLayers(enc, &val->srcSubresource); 448 vn_encode_VkOffset3D(enc, &val->srcOffset); 449 vn_encode_VkImageSubresourceLayers(enc, &val->dstSubresource); 450 vn_encode_VkOffset3D(enc, &val->dstOffset); 451 vn_encode_VkExtent3D(enc, &val->extent); 452 } 453 454 /* struct VkImageBlit */ 455 456 static inline size_t 457 vn_sizeof_VkImageBlit(const VkImageBlit *val) 458 { 459 size_t size = 0; 460 size += vn_sizeof_VkImageSubresourceLayers(&val->srcSubresource); 461 size += vn_sizeof_array_size(2); 462 for (uint32_t i = 0; i < 2; i++) 463 size += vn_sizeof_VkOffset3D(&val->srcOffsets[i]); 464 size += vn_sizeof_VkImageSubresourceLayers(&val->dstSubresource); 465 size += vn_sizeof_array_size(2); 466 for (uint32_t i = 0; i < 2; i++) 467 size += vn_sizeof_VkOffset3D(&val->dstOffsets[i]); 468 return size; 469 } 470 471 static inline void 472 vn_encode_VkImageBlit(struct vn_cs_encoder *enc, const VkImageBlit *val) 473 { 474 vn_encode_VkImageSubresourceLayers(enc, &val->srcSubresource); 475 vn_encode_array_size(enc, 2); 476 for (uint32_t i = 0; i < 2; i++) 477 vn_encode_VkOffset3D(enc, &val->srcOffsets[i]); 478 vn_encode_VkImageSubresourceLayers(enc, &val->dstSubresource); 479 vn_encode_array_size(enc, 2); 480 for (uint32_t i = 0; i < 2; i++) 481 vn_encode_VkOffset3D(enc, &val->dstOffsets[i]); 482 } 483 484 /* struct VkBufferImageCopy */ 485 486 static inline size_t 487 vn_sizeof_VkBufferImageCopy(const VkBufferImageCopy *val) 488 { 489 size_t size = 0; 490 size += vn_sizeof_VkDeviceSize(&val->bufferOffset); 491 size += vn_sizeof_uint32_t(&val->bufferRowLength); 492 size += vn_sizeof_uint32_t(&val->bufferImageHeight); 493 size += vn_sizeof_VkImageSubresourceLayers(&val->imageSubresource); 494 size += vn_sizeof_VkOffset3D(&val->imageOffset); 495 size += vn_sizeof_VkExtent3D(&val->imageExtent); 496 return size; 497 } 498 499 static inline void 500 vn_encode_VkBufferImageCopy(struct vn_cs_encoder *enc, const VkBufferImageCopy *val) 501 { 502 vn_encode_VkDeviceSize(enc, &val->bufferOffset); 503 vn_encode_uint32_t(enc, &val->bufferRowLength); 504 vn_encode_uint32_t(enc, &val->bufferImageHeight); 505 vn_encode_VkImageSubresourceLayers(enc, &val->imageSubresource); 506 vn_encode_VkOffset3D(enc, &val->imageOffset); 507 vn_encode_VkExtent3D(enc, &val->imageExtent); 508 } 509 510 /* union VkClearColorValue */ 511 512 static inline size_t 513 vn_sizeof_VkClearColorValue_tag(const VkClearColorValue *val, uint32_t tag) 514 { 515 size_t size = vn_sizeof_uint32_t(&tag); 516 switch (tag) { 517 case 0: 518 size += vn_sizeof_array_size(4); 519 size += vn_sizeof_float_array(val->float32, 4); 520 break; 521 case 1: 522 size += vn_sizeof_array_size(4); 523 size += vn_sizeof_int32_t_array(val->int32, 4); 524 break; 525 case 2: 526 size += vn_sizeof_array_size(4); 527 size += vn_sizeof_uint32_t_array(val->uint32, 4); 528 break; 529 default: 530 assert(false); 531 break; 532 } 533 return size; 534 } 535 536 static inline size_t 537 vn_sizeof_VkClearColorValue(const VkClearColorValue *val) 538 { 539 return vn_sizeof_VkClearColorValue_tag(val, 2); 540 } 541 542 static inline void 543 vn_encode_VkClearColorValue_tag(struct vn_cs_encoder *enc, const VkClearColorValue *val, uint32_t tag) 544 { 545 vn_encode_uint32_t(enc, &tag); 546 switch (tag) { 547 case 0: 548 vn_encode_array_size(enc, 4); 549 vn_encode_float_array(enc, val->float32, 4); 550 break; 551 case 1: 552 vn_encode_array_size(enc, 4); 553 vn_encode_int32_t_array(enc, val->int32, 4); 554 break; 555 case 2: 556 vn_encode_array_size(enc, 4); 557 vn_encode_uint32_t_array(enc, val->uint32, 4); 558 break; 559 default: 560 assert(false); 561 break; 562 } 563 } 564 565 static inline void 566 vn_encode_VkClearColorValue(struct vn_cs_encoder *enc, const VkClearColorValue *val) 567 { 568 vn_encode_VkClearColorValue_tag(enc, val, 2); /* union with default tag */ 569 } 570 571 /* struct VkClearDepthStencilValue */ 572 573 static inline size_t 574 vn_sizeof_VkClearDepthStencilValue(const VkClearDepthStencilValue *val) 575 { 576 size_t size = 0; 577 size += vn_sizeof_float(&val->depth); 578 size += vn_sizeof_uint32_t(&val->stencil); 579 return size; 580 } 581 582 static inline void 583 vn_encode_VkClearDepthStencilValue(struct vn_cs_encoder *enc, const VkClearDepthStencilValue *val) 584 { 585 vn_encode_float(enc, &val->depth); 586 vn_encode_uint32_t(enc, &val->stencil); 587 } 588 589 /* union VkClearValue */ 590 591 static inline size_t 592 vn_sizeof_VkClearValue_tag(const VkClearValue *val, uint32_t tag) 593 { 594 size_t size = vn_sizeof_uint32_t(&tag); 595 switch (tag) { 596 case 0: 597 size += vn_sizeof_VkClearColorValue(&val->color); 598 break; 599 case 1: 600 size += vn_sizeof_VkClearDepthStencilValue(&val->depthStencil); 601 break; 602 default: 603 assert(false); 604 break; 605 } 606 return size; 607 } 608 609 static inline size_t 610 vn_sizeof_VkClearValue(const VkClearValue *val) 611 { 612 return vn_sizeof_VkClearValue_tag(val, 0); 613 } 614 615 static inline void 616 vn_encode_VkClearValue_tag(struct vn_cs_encoder *enc, const VkClearValue *val, uint32_t tag) 617 { 618 vn_encode_uint32_t(enc, &tag); 619 switch (tag) { 620 case 0: 621 vn_encode_VkClearColorValue(enc, &val->color); 622 break; 623 case 1: 624 vn_encode_VkClearDepthStencilValue(enc, &val->depthStencil); 625 break; 626 default: 627 assert(false); 628 break; 629 } 630 } 631 632 static inline void 633 vn_encode_VkClearValue(struct vn_cs_encoder *enc, const VkClearValue *val) 634 { 635 vn_encode_VkClearValue_tag(enc, val, 0); /* union with default tag */ 636 } 637 638 /* struct VkClearAttachment */ 639 640 static inline size_t 641 vn_sizeof_VkClearAttachment(const VkClearAttachment *val) 642 { 643 size_t size = 0; 644 size += vn_sizeof_VkFlags(&val->aspectMask); 645 size += vn_sizeof_uint32_t(&val->colorAttachment); 646 size += vn_sizeof_VkClearValue(&val->clearValue); 647 return size; 648 } 649 650 static inline void 651 vn_encode_VkClearAttachment(struct vn_cs_encoder *enc, const VkClearAttachment *val) 652 { 653 vn_encode_VkFlags(enc, &val->aspectMask); 654 vn_encode_uint32_t(enc, &val->colorAttachment); 655 vn_encode_VkClearValue(enc, &val->clearValue); 656 } 657 658 /* struct VkClearRect */ 659 660 static inline size_t 661 vn_sizeof_VkClearRect(const VkClearRect *val) 662 { 663 size_t size = 0; 664 size += vn_sizeof_VkRect2D(&val->rect); 665 size += vn_sizeof_uint32_t(&val->baseArrayLayer); 666 size += vn_sizeof_uint32_t(&val->layerCount); 667 return size; 668 } 669 670 static inline void 671 vn_encode_VkClearRect(struct vn_cs_encoder *enc, const VkClearRect *val) 672 { 673 vn_encode_VkRect2D(enc, &val->rect); 674 vn_encode_uint32_t(enc, &val->baseArrayLayer); 675 vn_encode_uint32_t(enc, &val->layerCount); 676 } 677 678 /* struct VkImageResolve */ 679 680 static inline size_t 681 vn_sizeof_VkImageResolve(const VkImageResolve *val) 682 { 683 size_t size = 0; 684 size += vn_sizeof_VkImageSubresourceLayers(&val->srcSubresource); 685 size += vn_sizeof_VkOffset3D(&val->srcOffset); 686 size += vn_sizeof_VkImageSubresourceLayers(&val->dstSubresource); 687 size += vn_sizeof_VkOffset3D(&val->dstOffset); 688 size += vn_sizeof_VkExtent3D(&val->extent); 689 return size; 690 } 691 692 static inline void 693 vn_encode_VkImageResolve(struct vn_cs_encoder *enc, const VkImageResolve *val) 694 { 695 vn_encode_VkImageSubresourceLayers(enc, &val->srcSubresource); 696 vn_encode_VkOffset3D(enc, &val->srcOffset); 697 vn_encode_VkImageSubresourceLayers(enc, &val->dstSubresource); 698 vn_encode_VkOffset3D(enc, &val->dstOffset); 699 vn_encode_VkExtent3D(enc, &val->extent); 700 } 701 702 /* struct VkMemoryBarrier chain */ 703 704 static inline size_t 705 vn_sizeof_VkMemoryBarrier_pnext(const void *val) 706 { 707 /* no known/supported struct */ 708 return vn_sizeof_simple_pointer(NULL); 709 } 710 711 static inline size_t 712 vn_sizeof_VkMemoryBarrier_self(const VkMemoryBarrier *val) 713 { 714 size_t size = 0; 715 /* skip val->{sType,pNext} */ 716 size += vn_sizeof_VkFlags(&val->srcAccessMask); 717 size += vn_sizeof_VkFlags(&val->dstAccessMask); 718 return size; 719 } 720 721 static inline size_t 722 vn_sizeof_VkMemoryBarrier(const VkMemoryBarrier *val) 723 { 724 size_t size = 0; 725 726 size += vn_sizeof_VkStructureType(&val->sType); 727 size += vn_sizeof_VkMemoryBarrier_pnext(val->pNext); 728 size += vn_sizeof_VkMemoryBarrier_self(val); 729 730 return size; 731 } 732 733 static inline void 734 vn_encode_VkMemoryBarrier_pnext(struct vn_cs_encoder *enc, const void *val) 735 { 736 /* no known/supported struct */ 737 vn_encode_simple_pointer(enc, NULL); 738 } 739 740 static inline void 741 vn_encode_VkMemoryBarrier_self(struct vn_cs_encoder *enc, const VkMemoryBarrier *val) 742 { 743 /* skip val->{sType,pNext} */ 744 vn_encode_VkFlags(enc, &val->srcAccessMask); 745 vn_encode_VkFlags(enc, &val->dstAccessMask); 746 } 747 748 static inline void 749 vn_encode_VkMemoryBarrier(struct vn_cs_encoder *enc, const VkMemoryBarrier *val) 750 { 751 assert(val->sType == VK_STRUCTURE_TYPE_MEMORY_BARRIER); 752 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_MEMORY_BARRIER }); 753 vn_encode_VkMemoryBarrier_pnext(enc, val->pNext); 754 vn_encode_VkMemoryBarrier_self(enc, val); 755 } 756 757 /* struct VkBufferMemoryBarrier chain */ 758 759 static inline size_t 760 vn_sizeof_VkBufferMemoryBarrier_pnext(const void *val) 761 { 762 /* no known/supported struct */ 763 return vn_sizeof_simple_pointer(NULL); 764 } 765 766 static inline size_t 767 vn_sizeof_VkBufferMemoryBarrier_self(const VkBufferMemoryBarrier *val) 768 { 769 size_t size = 0; 770 /* skip val->{sType,pNext} */ 771 size += vn_sizeof_VkFlags(&val->srcAccessMask); 772 size += vn_sizeof_VkFlags(&val->dstAccessMask); 773 size += vn_sizeof_uint32_t(&val->srcQueueFamilyIndex); 774 size += vn_sizeof_uint32_t(&val->dstQueueFamilyIndex); 775 size += vn_sizeof_VkBuffer(&val->buffer); 776 size += vn_sizeof_VkDeviceSize(&val->offset); 777 size += vn_sizeof_VkDeviceSize(&val->size); 778 return size; 779 } 780 781 static inline size_t 782 vn_sizeof_VkBufferMemoryBarrier(const VkBufferMemoryBarrier *val) 783 { 784 size_t size = 0; 785 786 size += vn_sizeof_VkStructureType(&val->sType); 787 size += vn_sizeof_VkBufferMemoryBarrier_pnext(val->pNext); 788 size += vn_sizeof_VkBufferMemoryBarrier_self(val); 789 790 return size; 791 } 792 793 static inline void 794 vn_encode_VkBufferMemoryBarrier_pnext(struct vn_cs_encoder *enc, const void *val) 795 { 796 /* no known/supported struct */ 797 vn_encode_simple_pointer(enc, NULL); 798 } 799 800 static inline void 801 vn_encode_VkBufferMemoryBarrier_self(struct vn_cs_encoder *enc, const VkBufferMemoryBarrier *val) 802 { 803 /* skip val->{sType,pNext} */ 804 vn_encode_VkFlags(enc, &val->srcAccessMask); 805 vn_encode_VkFlags(enc, &val->dstAccessMask); 806 vn_encode_uint32_t(enc, &val->srcQueueFamilyIndex); 807 vn_encode_uint32_t(enc, &val->dstQueueFamilyIndex); 808 vn_encode_VkBuffer(enc, &val->buffer); 809 vn_encode_VkDeviceSize(enc, &val->offset); 810 vn_encode_VkDeviceSize(enc, &val->size); 811 } 812 813 static inline void 814 vn_encode_VkBufferMemoryBarrier(struct vn_cs_encoder *enc, const VkBufferMemoryBarrier *val) 815 { 816 assert(val->sType == VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER); 817 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER }); 818 vn_encode_VkBufferMemoryBarrier_pnext(enc, val->pNext); 819 vn_encode_VkBufferMemoryBarrier_self(enc, val); 820 } 821 822 /* struct VkImageMemoryBarrier chain */ 823 824 static inline size_t 825 vn_sizeof_VkImageMemoryBarrier_pnext(const void *val) 826 { 827 /* no known/supported struct */ 828 return vn_sizeof_simple_pointer(NULL); 829 } 830 831 static inline size_t 832 vn_sizeof_VkImageMemoryBarrier_self(const VkImageMemoryBarrier *val) 833 { 834 size_t size = 0; 835 /* skip val->{sType,pNext} */ 836 size += vn_sizeof_VkFlags(&val->srcAccessMask); 837 size += vn_sizeof_VkFlags(&val->dstAccessMask); 838 size += vn_sizeof_VkImageLayout(&val->oldLayout); 839 size += vn_sizeof_VkImageLayout(&val->newLayout); 840 size += vn_sizeof_uint32_t(&val->srcQueueFamilyIndex); 841 size += vn_sizeof_uint32_t(&val->dstQueueFamilyIndex); 842 size += vn_sizeof_VkImage(&val->image); 843 size += vn_sizeof_VkImageSubresourceRange(&val->subresourceRange); 844 return size; 845 } 846 847 static inline size_t 848 vn_sizeof_VkImageMemoryBarrier(const VkImageMemoryBarrier *val) 849 { 850 size_t size = 0; 851 852 size += vn_sizeof_VkStructureType(&val->sType); 853 size += vn_sizeof_VkImageMemoryBarrier_pnext(val->pNext); 854 size += vn_sizeof_VkImageMemoryBarrier_self(val); 855 856 return size; 857 } 858 859 static inline void 860 vn_encode_VkImageMemoryBarrier_pnext(struct vn_cs_encoder *enc, const void *val) 861 { 862 /* no known/supported struct */ 863 vn_encode_simple_pointer(enc, NULL); 864 } 865 866 static inline void 867 vn_encode_VkImageMemoryBarrier_self(struct vn_cs_encoder *enc, const VkImageMemoryBarrier *val) 868 { 869 /* skip val->{sType,pNext} */ 870 vn_encode_VkFlags(enc, &val->srcAccessMask); 871 vn_encode_VkFlags(enc, &val->dstAccessMask); 872 vn_encode_VkImageLayout(enc, &val->oldLayout); 873 vn_encode_VkImageLayout(enc, &val->newLayout); 874 vn_encode_uint32_t(enc, &val->srcQueueFamilyIndex); 875 vn_encode_uint32_t(enc, &val->dstQueueFamilyIndex); 876 vn_encode_VkImage(enc, &val->image); 877 vn_encode_VkImageSubresourceRange(enc, &val->subresourceRange); 878 } 879 880 static inline void 881 vn_encode_VkImageMemoryBarrier(struct vn_cs_encoder *enc, const VkImageMemoryBarrier *val) 882 { 883 assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER); 884 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER }); 885 vn_encode_VkImageMemoryBarrier_pnext(enc, val->pNext); 886 vn_encode_VkImageMemoryBarrier_self(enc, val); 887 } 888 889 /* struct VkDeviceGroupRenderPassBeginInfo chain */ 890 891 static inline size_t 892 vn_sizeof_VkDeviceGroupRenderPassBeginInfo_pnext(const void *val) 893 { 894 /* no known/supported struct */ 895 return vn_sizeof_simple_pointer(NULL); 896 } 897 898 static inline size_t 899 vn_sizeof_VkDeviceGroupRenderPassBeginInfo_self(const VkDeviceGroupRenderPassBeginInfo *val) 900 { 901 size_t size = 0; 902 /* skip val->{sType,pNext} */ 903 size += vn_sizeof_uint32_t(&val->deviceMask); 904 size += vn_sizeof_uint32_t(&val->deviceRenderAreaCount); 905 if (val->pDeviceRenderAreas) { 906 size += vn_sizeof_array_size(val->deviceRenderAreaCount); 907 for (uint32_t i = 0; i < val->deviceRenderAreaCount; i++) 908 size += vn_sizeof_VkRect2D(&val->pDeviceRenderAreas[i]); 909 } else { 910 size += vn_sizeof_array_size(0); 911 } 912 return size; 913 } 914 915 static inline size_t 916 vn_sizeof_VkDeviceGroupRenderPassBeginInfo(const VkDeviceGroupRenderPassBeginInfo *val) 917 { 918 size_t size = 0; 919 920 size += vn_sizeof_VkStructureType(&val->sType); 921 size += vn_sizeof_VkDeviceGroupRenderPassBeginInfo_pnext(val->pNext); 922 size += vn_sizeof_VkDeviceGroupRenderPassBeginInfo_self(val); 923 924 return size; 925 } 926 927 static inline void 928 vn_encode_VkDeviceGroupRenderPassBeginInfo_pnext(struct vn_cs_encoder *enc, const void *val) 929 { 930 /* no known/supported struct */ 931 vn_encode_simple_pointer(enc, NULL); 932 } 933 934 static inline void 935 vn_encode_VkDeviceGroupRenderPassBeginInfo_self(struct vn_cs_encoder *enc, const VkDeviceGroupRenderPassBeginInfo *val) 936 { 937 /* skip val->{sType,pNext} */ 938 vn_encode_uint32_t(enc, &val->deviceMask); 939 vn_encode_uint32_t(enc, &val->deviceRenderAreaCount); 940 if (val->pDeviceRenderAreas) { 941 vn_encode_array_size(enc, val->deviceRenderAreaCount); 942 for (uint32_t i = 0; i < val->deviceRenderAreaCount; i++) 943 vn_encode_VkRect2D(enc, &val->pDeviceRenderAreas[i]); 944 } else { 945 vn_encode_array_size(enc, 0); 946 } 947 } 948 949 static inline void 950 vn_encode_VkDeviceGroupRenderPassBeginInfo(struct vn_cs_encoder *enc, const VkDeviceGroupRenderPassBeginInfo *val) 951 { 952 assert(val->sType == VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO); 953 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO }); 954 vn_encode_VkDeviceGroupRenderPassBeginInfo_pnext(enc, val->pNext); 955 vn_encode_VkDeviceGroupRenderPassBeginInfo_self(enc, val); 956 } 957 958 /* struct VkRenderPassAttachmentBeginInfo chain */ 959 960 static inline size_t 961 vn_sizeof_VkRenderPassAttachmentBeginInfo_pnext(const void *val) 962 { 963 /* no known/supported struct */ 964 return vn_sizeof_simple_pointer(NULL); 965 } 966 967 static inline size_t 968 vn_sizeof_VkRenderPassAttachmentBeginInfo_self(const VkRenderPassAttachmentBeginInfo *val) 969 { 970 size_t size = 0; 971 /* skip val->{sType,pNext} */ 972 size += vn_sizeof_uint32_t(&val->attachmentCount); 973 if (val->pAttachments) { 974 size += vn_sizeof_array_size(val->attachmentCount); 975 for (uint32_t i = 0; i < val->attachmentCount; i++) 976 size += vn_sizeof_VkImageView(&val->pAttachments[i]); 977 } else { 978 size += vn_sizeof_array_size(0); 979 } 980 return size; 981 } 982 983 static inline size_t 984 vn_sizeof_VkRenderPassAttachmentBeginInfo(const VkRenderPassAttachmentBeginInfo *val) 985 { 986 size_t size = 0; 987 988 size += vn_sizeof_VkStructureType(&val->sType); 989 size += vn_sizeof_VkRenderPassAttachmentBeginInfo_pnext(val->pNext); 990 size += vn_sizeof_VkRenderPassAttachmentBeginInfo_self(val); 991 992 return size; 993 } 994 995 static inline void 996 vn_encode_VkRenderPassAttachmentBeginInfo_pnext(struct vn_cs_encoder *enc, const void *val) 997 { 998 /* no known/supported struct */ 999 vn_encode_simple_pointer(enc, NULL); 1000 } 1001 1002 static inline void 1003 vn_encode_VkRenderPassAttachmentBeginInfo_self(struct vn_cs_encoder *enc, const VkRenderPassAttachmentBeginInfo *val) 1004 { 1005 /* skip val->{sType,pNext} */ 1006 vn_encode_uint32_t(enc, &val->attachmentCount); 1007 if (val->pAttachments) { 1008 vn_encode_array_size(enc, val->attachmentCount); 1009 for (uint32_t i = 0; i < val->attachmentCount; i++) 1010 vn_encode_VkImageView(enc, &val->pAttachments[i]); 1011 } else { 1012 vn_encode_array_size(enc, 0); 1013 } 1014 } 1015 1016 static inline void 1017 vn_encode_VkRenderPassAttachmentBeginInfo(struct vn_cs_encoder *enc, const VkRenderPassAttachmentBeginInfo *val) 1018 { 1019 assert(val->sType == VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO); 1020 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO }); 1021 vn_encode_VkRenderPassAttachmentBeginInfo_pnext(enc, val->pNext); 1022 vn_encode_VkRenderPassAttachmentBeginInfo_self(enc, val); 1023 } 1024 1025 /* struct VkRenderPassBeginInfo chain */ 1026 1027 static inline size_t 1028 vn_sizeof_VkRenderPassBeginInfo_pnext(const void *val) 1029 { 1030 const VkBaseInStructure *pnext = val; 1031 size_t size = 0; 1032 1033 while (pnext) { 1034 switch ((int32_t)pnext->sType) { 1035 case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: 1036 size += vn_sizeof_simple_pointer(pnext); 1037 size += vn_sizeof_VkStructureType(&pnext->sType); 1038 size += vn_sizeof_VkRenderPassBeginInfo_pnext(pnext->pNext); 1039 size += vn_sizeof_VkDeviceGroupRenderPassBeginInfo_self((const VkDeviceGroupRenderPassBeginInfo *)pnext); 1040 return size; 1041 case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: 1042 size += vn_sizeof_simple_pointer(pnext); 1043 size += vn_sizeof_VkStructureType(&pnext->sType); 1044 size += vn_sizeof_VkRenderPassBeginInfo_pnext(pnext->pNext); 1045 size += vn_sizeof_VkRenderPassAttachmentBeginInfo_self((const VkRenderPassAttachmentBeginInfo *)pnext); 1046 return size; 1047 default: 1048 /* ignore unknown/unsupported struct */ 1049 break; 1050 } 1051 pnext = pnext->pNext; 1052 } 1053 1054 return vn_sizeof_simple_pointer(NULL); 1055 } 1056 1057 static inline size_t 1058 vn_sizeof_VkRenderPassBeginInfo_self(const VkRenderPassBeginInfo *val) 1059 { 1060 size_t size = 0; 1061 /* skip val->{sType,pNext} */ 1062 size += vn_sizeof_VkRenderPass(&val->renderPass); 1063 size += vn_sizeof_VkFramebuffer(&val->framebuffer); 1064 size += vn_sizeof_VkRect2D(&val->renderArea); 1065 size += vn_sizeof_uint32_t(&val->clearValueCount); 1066 if (val->pClearValues) { 1067 size += vn_sizeof_array_size(val->clearValueCount); 1068 for (uint32_t i = 0; i < val->clearValueCount; i++) 1069 size += vn_sizeof_VkClearValue(&val->pClearValues[i]); 1070 } else { 1071 size += vn_sizeof_array_size(0); 1072 } 1073 return size; 1074 } 1075 1076 static inline size_t 1077 vn_sizeof_VkRenderPassBeginInfo(const VkRenderPassBeginInfo *val) 1078 { 1079 size_t size = 0; 1080 1081 size += vn_sizeof_VkStructureType(&val->sType); 1082 size += vn_sizeof_VkRenderPassBeginInfo_pnext(val->pNext); 1083 size += vn_sizeof_VkRenderPassBeginInfo_self(val); 1084 1085 return size; 1086 } 1087 1088 static inline void 1089 vn_encode_VkRenderPassBeginInfo_pnext(struct vn_cs_encoder *enc, const void *val) 1090 { 1091 const VkBaseInStructure *pnext = val; 1092 1093 while (pnext) { 1094 switch ((int32_t)pnext->sType) { 1095 case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: 1096 vn_encode_simple_pointer(enc, pnext); 1097 vn_encode_VkStructureType(enc, &pnext->sType); 1098 vn_encode_VkRenderPassBeginInfo_pnext(enc, pnext->pNext); 1099 vn_encode_VkDeviceGroupRenderPassBeginInfo_self(enc, (const VkDeviceGroupRenderPassBeginInfo *)pnext); 1100 return; 1101 case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: 1102 vn_encode_simple_pointer(enc, pnext); 1103 vn_encode_VkStructureType(enc, &pnext->sType); 1104 vn_encode_VkRenderPassBeginInfo_pnext(enc, pnext->pNext); 1105 vn_encode_VkRenderPassAttachmentBeginInfo_self(enc, (const VkRenderPassAttachmentBeginInfo *)pnext); 1106 return; 1107 default: 1108 /* ignore unknown/unsupported struct */ 1109 break; 1110 } 1111 pnext = pnext->pNext; 1112 } 1113 1114 vn_encode_simple_pointer(enc, NULL); 1115 } 1116 1117 static inline void 1118 vn_encode_VkRenderPassBeginInfo_self(struct vn_cs_encoder *enc, const VkRenderPassBeginInfo *val) 1119 { 1120 /* skip val->{sType,pNext} */ 1121 vn_encode_VkRenderPass(enc, &val->renderPass); 1122 vn_encode_VkFramebuffer(enc, &val->framebuffer); 1123 vn_encode_VkRect2D(enc, &val->renderArea); 1124 vn_encode_uint32_t(enc, &val->clearValueCount); 1125 if (val->pClearValues) { 1126 vn_encode_array_size(enc, val->clearValueCount); 1127 for (uint32_t i = 0; i < val->clearValueCount; i++) 1128 vn_encode_VkClearValue(enc, &val->pClearValues[i]); 1129 } else { 1130 vn_encode_array_size(enc, 0); 1131 } 1132 } 1133 1134 static inline void 1135 vn_encode_VkRenderPassBeginInfo(struct vn_cs_encoder *enc, const VkRenderPassBeginInfo *val) 1136 { 1137 assert(val->sType == VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO); 1138 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO }); 1139 vn_encode_VkRenderPassBeginInfo_pnext(enc, val->pNext); 1140 vn_encode_VkRenderPassBeginInfo_self(enc, val); 1141 } 1142 1143 /* struct VkSubpassBeginInfo chain */ 1144 1145 static inline size_t 1146 vn_sizeof_VkSubpassBeginInfo_pnext(const void *val) 1147 { 1148 /* no known/supported struct */ 1149 return vn_sizeof_simple_pointer(NULL); 1150 } 1151 1152 static inline size_t 1153 vn_sizeof_VkSubpassBeginInfo_self(const VkSubpassBeginInfo *val) 1154 { 1155 size_t size = 0; 1156 /* skip val->{sType,pNext} */ 1157 size += vn_sizeof_VkSubpassContents(&val->contents); 1158 return size; 1159 } 1160 1161 static inline size_t 1162 vn_sizeof_VkSubpassBeginInfo(const VkSubpassBeginInfo *val) 1163 { 1164 size_t size = 0; 1165 1166 size += vn_sizeof_VkStructureType(&val->sType); 1167 size += vn_sizeof_VkSubpassBeginInfo_pnext(val->pNext); 1168 size += vn_sizeof_VkSubpassBeginInfo_self(val); 1169 1170 return size; 1171 } 1172 1173 static inline void 1174 vn_encode_VkSubpassBeginInfo_pnext(struct vn_cs_encoder *enc, const void *val) 1175 { 1176 /* no known/supported struct */ 1177 vn_encode_simple_pointer(enc, NULL); 1178 } 1179 1180 static inline void 1181 vn_encode_VkSubpassBeginInfo_self(struct vn_cs_encoder *enc, const VkSubpassBeginInfo *val) 1182 { 1183 /* skip val->{sType,pNext} */ 1184 vn_encode_VkSubpassContents(enc, &val->contents); 1185 } 1186 1187 static inline void 1188 vn_encode_VkSubpassBeginInfo(struct vn_cs_encoder *enc, const VkSubpassBeginInfo *val) 1189 { 1190 assert(val->sType == VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO); 1191 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO }); 1192 vn_encode_VkSubpassBeginInfo_pnext(enc, val->pNext); 1193 vn_encode_VkSubpassBeginInfo_self(enc, val); 1194 } 1195 1196 /* struct VkSubpassEndInfo chain */ 1197 1198 static inline size_t 1199 vn_sizeof_VkSubpassEndInfo_pnext(const void *val) 1200 { 1201 /* no known/supported struct */ 1202 return vn_sizeof_simple_pointer(NULL); 1203 } 1204 1205 static inline size_t 1206 vn_sizeof_VkSubpassEndInfo_self(const VkSubpassEndInfo *val) 1207 { 1208 size_t size = 0; 1209 /* skip val->{sType,pNext} */ 1210 return size; 1211 } 1212 1213 static inline size_t 1214 vn_sizeof_VkSubpassEndInfo(const VkSubpassEndInfo *val) 1215 { 1216 size_t size = 0; 1217 1218 size += vn_sizeof_VkStructureType(&val->sType); 1219 size += vn_sizeof_VkSubpassEndInfo_pnext(val->pNext); 1220 size += vn_sizeof_VkSubpassEndInfo_self(val); 1221 1222 return size; 1223 } 1224 1225 static inline void 1226 vn_encode_VkSubpassEndInfo_pnext(struct vn_cs_encoder *enc, const void *val) 1227 { 1228 /* no known/supported struct */ 1229 vn_encode_simple_pointer(enc, NULL); 1230 } 1231 1232 static inline void 1233 vn_encode_VkSubpassEndInfo_self(struct vn_cs_encoder *enc, const VkSubpassEndInfo *val) 1234 { 1235 /* skip val->{sType,pNext} */ 1236 } 1237 1238 static inline void 1239 vn_encode_VkSubpassEndInfo(struct vn_cs_encoder *enc, const VkSubpassEndInfo *val) 1240 { 1241 assert(val->sType == VK_STRUCTURE_TYPE_SUBPASS_END_INFO); 1242 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_SUBPASS_END_INFO }); 1243 vn_encode_VkSubpassEndInfo_pnext(enc, val->pNext); 1244 vn_encode_VkSubpassEndInfo_self(enc, val); 1245 } 1246 1247 static inline size_t vn_sizeof_vkAllocateCommandBuffers(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) 1248 { 1249 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkAllocateCommandBuffers_EXT; 1250 const VkFlags cmd_flags = 0; 1251 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1252 1253 cmd_size += vn_sizeof_VkDevice(&device); 1254 cmd_size += vn_sizeof_simple_pointer(pAllocateInfo); 1255 if (pAllocateInfo) 1256 cmd_size += vn_sizeof_VkCommandBufferAllocateInfo(pAllocateInfo); 1257 if (pCommandBuffers) { 1258 cmd_size += vn_sizeof_array_size((pAllocateInfo ? pAllocateInfo->commandBufferCount : 0)); 1259 for (uint32_t i = 0; i < (pAllocateInfo ? pAllocateInfo->commandBufferCount : 0); i++) 1260 cmd_size += vn_sizeof_VkCommandBuffer(&pCommandBuffers[i]); 1261 } else { 1262 cmd_size += vn_sizeof_array_size(0); 1263 } 1264 1265 return cmd_size; 1266 } 1267 1268 static inline void vn_encode_vkAllocateCommandBuffers(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) 1269 { 1270 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkAllocateCommandBuffers_EXT; 1271 1272 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1273 vn_encode_VkFlags(enc, &cmd_flags); 1274 1275 vn_encode_VkDevice(enc, &device); 1276 if (vn_encode_simple_pointer(enc, pAllocateInfo)) 1277 vn_encode_VkCommandBufferAllocateInfo(enc, pAllocateInfo); 1278 if (pCommandBuffers) { 1279 vn_encode_array_size(enc, (pAllocateInfo ? pAllocateInfo->commandBufferCount : 0)); 1280 for (uint32_t i = 0; i < (pAllocateInfo ? pAllocateInfo->commandBufferCount : 0); i++) 1281 vn_encode_VkCommandBuffer(enc, &pCommandBuffers[i]); 1282 } else { 1283 vn_encode_array_size(enc, 0); 1284 } 1285 } 1286 1287 static inline size_t vn_sizeof_vkAllocateCommandBuffers_reply(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) 1288 { 1289 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkAllocateCommandBuffers_EXT; 1290 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1291 1292 VkResult ret; 1293 cmd_size += vn_sizeof_VkResult(&ret); 1294 /* skip device */ 1295 /* skip pAllocateInfo */ 1296 if (pCommandBuffers) { 1297 cmd_size += vn_sizeof_array_size((pAllocateInfo ? pAllocateInfo->commandBufferCount : 0)); 1298 for (uint32_t i = 0; i < (pAllocateInfo ? pAllocateInfo->commandBufferCount : 0); i++) 1299 cmd_size += vn_sizeof_VkCommandBuffer(&pCommandBuffers[i]); 1300 } else { 1301 cmd_size += vn_sizeof_array_size(0); 1302 } 1303 1304 return cmd_size; 1305 } 1306 1307 static inline VkResult vn_decode_vkAllocateCommandBuffers_reply(struct vn_cs_decoder *dec, VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) 1308 { 1309 VkCommandTypeEXT command_type; 1310 vn_decode_VkCommandTypeEXT(dec, &command_type); 1311 assert(command_type == VK_COMMAND_TYPE_vkAllocateCommandBuffers_EXT); 1312 1313 VkResult ret; 1314 vn_decode_VkResult(dec, &ret); 1315 /* skip device */ 1316 /* skip pAllocateInfo */ 1317 if (vn_peek_array_size(dec)) { 1318 const uint32_t iter_count = vn_decode_array_size(dec, (pAllocateInfo ? pAllocateInfo->commandBufferCount : 0)); 1319 for (uint32_t i = 0; i < iter_count; i++) 1320 vn_decode_VkCommandBuffer(dec, &pCommandBuffers[i]); 1321 } else { 1322 vn_decode_array_size_unchecked(dec); 1323 pCommandBuffers = NULL; 1324 } 1325 1326 return ret; 1327 } 1328 1329 static inline size_t vn_sizeof_vkFreeCommandBuffers(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) 1330 { 1331 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkFreeCommandBuffers_EXT; 1332 const VkFlags cmd_flags = 0; 1333 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1334 1335 cmd_size += vn_sizeof_VkDevice(&device); 1336 cmd_size += vn_sizeof_VkCommandPool(&commandPool); 1337 cmd_size += vn_sizeof_uint32_t(&commandBufferCount); 1338 if (pCommandBuffers) { 1339 cmd_size += vn_sizeof_array_size(commandBufferCount); 1340 for (uint32_t i = 0; i < commandBufferCount; i++) 1341 cmd_size += vn_sizeof_VkCommandBuffer(&pCommandBuffers[i]); 1342 } else { 1343 cmd_size += vn_sizeof_array_size(0); 1344 } 1345 1346 return cmd_size; 1347 } 1348 1349 static inline void vn_encode_vkFreeCommandBuffers(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) 1350 { 1351 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkFreeCommandBuffers_EXT; 1352 1353 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1354 vn_encode_VkFlags(enc, &cmd_flags); 1355 1356 vn_encode_VkDevice(enc, &device); 1357 vn_encode_VkCommandPool(enc, &commandPool); 1358 vn_encode_uint32_t(enc, &commandBufferCount); 1359 if (pCommandBuffers) { 1360 vn_encode_array_size(enc, commandBufferCount); 1361 for (uint32_t i = 0; i < commandBufferCount; i++) 1362 vn_encode_VkCommandBuffer(enc, &pCommandBuffers[i]); 1363 } else { 1364 vn_encode_array_size(enc, 0); 1365 } 1366 } 1367 1368 static inline size_t vn_sizeof_vkFreeCommandBuffers_reply(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) 1369 { 1370 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkFreeCommandBuffers_EXT; 1371 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1372 1373 /* skip device */ 1374 /* skip commandPool */ 1375 /* skip commandBufferCount */ 1376 /* skip pCommandBuffers */ 1377 1378 return cmd_size; 1379 } 1380 1381 static inline void vn_decode_vkFreeCommandBuffers_reply(struct vn_cs_decoder *dec, VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) 1382 { 1383 VkCommandTypeEXT command_type; 1384 vn_decode_VkCommandTypeEXT(dec, &command_type); 1385 assert(command_type == VK_COMMAND_TYPE_vkFreeCommandBuffers_EXT); 1386 1387 /* skip device */ 1388 /* skip commandPool */ 1389 /* skip commandBufferCount */ 1390 /* skip pCommandBuffers */ 1391 } 1392 1393 static inline size_t vn_sizeof_vkBeginCommandBuffer(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) 1394 { 1395 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBeginCommandBuffer_EXT; 1396 const VkFlags cmd_flags = 0; 1397 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1398 1399 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 1400 cmd_size += vn_sizeof_simple_pointer(pBeginInfo); 1401 if (pBeginInfo) 1402 cmd_size += vn_sizeof_VkCommandBufferBeginInfo(pBeginInfo); 1403 1404 return cmd_size; 1405 } 1406 1407 static inline void vn_encode_vkBeginCommandBuffer(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) 1408 { 1409 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBeginCommandBuffer_EXT; 1410 1411 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1412 vn_encode_VkFlags(enc, &cmd_flags); 1413 1414 vn_encode_VkCommandBuffer(enc, &commandBuffer); 1415 if (vn_encode_simple_pointer(enc, pBeginInfo)) 1416 vn_encode_VkCommandBufferBeginInfo(enc, pBeginInfo); 1417 } 1418 1419 static inline size_t vn_sizeof_vkBeginCommandBuffer_reply(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) 1420 { 1421 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBeginCommandBuffer_EXT; 1422 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1423 1424 VkResult ret; 1425 cmd_size += vn_sizeof_VkResult(&ret); 1426 /* skip commandBuffer */ 1427 /* skip pBeginInfo */ 1428 1429 return cmd_size; 1430 } 1431 1432 static inline VkResult vn_decode_vkBeginCommandBuffer_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) 1433 { 1434 VkCommandTypeEXT command_type; 1435 vn_decode_VkCommandTypeEXT(dec, &command_type); 1436 assert(command_type == VK_COMMAND_TYPE_vkBeginCommandBuffer_EXT); 1437 1438 VkResult ret; 1439 vn_decode_VkResult(dec, &ret); 1440 /* skip commandBuffer */ 1441 /* skip pBeginInfo */ 1442 1443 return ret; 1444 } 1445 1446 static inline size_t vn_sizeof_vkEndCommandBuffer(VkCommandBuffer commandBuffer) 1447 { 1448 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkEndCommandBuffer_EXT; 1449 const VkFlags cmd_flags = 0; 1450 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1451 1452 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 1453 1454 return cmd_size; 1455 } 1456 1457 static inline void vn_encode_vkEndCommandBuffer(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer) 1458 { 1459 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkEndCommandBuffer_EXT; 1460 1461 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1462 vn_encode_VkFlags(enc, &cmd_flags); 1463 1464 vn_encode_VkCommandBuffer(enc, &commandBuffer); 1465 } 1466 1467 static inline size_t vn_sizeof_vkEndCommandBuffer_reply(VkCommandBuffer commandBuffer) 1468 { 1469 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkEndCommandBuffer_EXT; 1470 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1471 1472 VkResult ret; 1473 cmd_size += vn_sizeof_VkResult(&ret); 1474 /* skip commandBuffer */ 1475 1476 return cmd_size; 1477 } 1478 1479 static inline VkResult vn_decode_vkEndCommandBuffer_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer) 1480 { 1481 VkCommandTypeEXT command_type; 1482 vn_decode_VkCommandTypeEXT(dec, &command_type); 1483 assert(command_type == VK_COMMAND_TYPE_vkEndCommandBuffer_EXT); 1484 1485 VkResult ret; 1486 vn_decode_VkResult(dec, &ret); 1487 /* skip commandBuffer */ 1488 1489 return ret; 1490 } 1491 1492 static inline size_t vn_sizeof_vkResetCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) 1493 { 1494 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetCommandBuffer_EXT; 1495 const VkFlags cmd_flags = 0; 1496 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1497 1498 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 1499 cmd_size += vn_sizeof_VkFlags(&flags); 1500 1501 return cmd_size; 1502 } 1503 1504 static inline void vn_encode_vkResetCommandBuffer(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) 1505 { 1506 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetCommandBuffer_EXT; 1507 1508 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1509 vn_encode_VkFlags(enc, &cmd_flags); 1510 1511 vn_encode_VkCommandBuffer(enc, &commandBuffer); 1512 vn_encode_VkFlags(enc, &flags); 1513 } 1514 1515 static inline size_t vn_sizeof_vkResetCommandBuffer_reply(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) 1516 { 1517 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetCommandBuffer_EXT; 1518 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1519 1520 VkResult ret; 1521 cmd_size += vn_sizeof_VkResult(&ret); 1522 /* skip commandBuffer */ 1523 /* skip flags */ 1524 1525 return cmd_size; 1526 } 1527 1528 static inline VkResult vn_decode_vkResetCommandBuffer_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) 1529 { 1530 VkCommandTypeEXT command_type; 1531 vn_decode_VkCommandTypeEXT(dec, &command_type); 1532 assert(command_type == VK_COMMAND_TYPE_vkResetCommandBuffer_EXT); 1533 1534 VkResult ret; 1535 vn_decode_VkResult(dec, &ret); 1536 /* skip commandBuffer */ 1537 /* skip flags */ 1538 1539 return ret; 1540 } 1541 1542 static inline size_t vn_sizeof_vkCmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) 1543 { 1544 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBindPipeline_EXT; 1545 const VkFlags cmd_flags = 0; 1546 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1547 1548 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 1549 cmd_size += vn_sizeof_VkPipelineBindPoint(&pipelineBindPoint); 1550 cmd_size += vn_sizeof_VkPipeline(&pipeline); 1551 1552 return cmd_size; 1553 } 1554 1555 static inline void vn_encode_vkCmdBindPipeline(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) 1556 { 1557 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBindPipeline_EXT; 1558 1559 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1560 vn_encode_VkFlags(enc, &cmd_flags); 1561 1562 vn_encode_VkCommandBuffer(enc, &commandBuffer); 1563 vn_encode_VkPipelineBindPoint(enc, &pipelineBindPoint); 1564 vn_encode_VkPipeline(enc, &pipeline); 1565 } 1566 1567 static inline size_t vn_sizeof_vkCmdBindPipeline_reply(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) 1568 { 1569 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBindPipeline_EXT; 1570 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1571 1572 /* skip commandBuffer */ 1573 /* skip pipelineBindPoint */ 1574 /* skip pipeline */ 1575 1576 return cmd_size; 1577 } 1578 1579 static inline void vn_decode_vkCmdBindPipeline_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) 1580 { 1581 VkCommandTypeEXT command_type; 1582 vn_decode_VkCommandTypeEXT(dec, &command_type); 1583 assert(command_type == VK_COMMAND_TYPE_vkCmdBindPipeline_EXT); 1584 1585 /* skip commandBuffer */ 1586 /* skip pipelineBindPoint */ 1587 /* skip pipeline */ 1588 } 1589 1590 static inline size_t vn_sizeof_vkCmdSetViewport(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports) 1591 { 1592 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetViewport_EXT; 1593 const VkFlags cmd_flags = 0; 1594 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1595 1596 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 1597 cmd_size += vn_sizeof_uint32_t(&firstViewport); 1598 cmd_size += vn_sizeof_uint32_t(&viewportCount); 1599 if (pViewports) { 1600 cmd_size += vn_sizeof_array_size(viewportCount); 1601 for (uint32_t i = 0; i < viewportCount; i++) 1602 cmd_size += vn_sizeof_VkViewport(&pViewports[i]); 1603 } else { 1604 cmd_size += vn_sizeof_array_size(0); 1605 } 1606 1607 return cmd_size; 1608 } 1609 1610 static inline void vn_encode_vkCmdSetViewport(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports) 1611 { 1612 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetViewport_EXT; 1613 1614 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1615 vn_encode_VkFlags(enc, &cmd_flags); 1616 1617 vn_encode_VkCommandBuffer(enc, &commandBuffer); 1618 vn_encode_uint32_t(enc, &firstViewport); 1619 vn_encode_uint32_t(enc, &viewportCount); 1620 if (pViewports) { 1621 vn_encode_array_size(enc, viewportCount); 1622 for (uint32_t i = 0; i < viewportCount; i++) 1623 vn_encode_VkViewport(enc, &pViewports[i]); 1624 } else { 1625 vn_encode_array_size(enc, 0); 1626 } 1627 } 1628 1629 static inline size_t vn_sizeof_vkCmdSetViewport_reply(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports) 1630 { 1631 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetViewport_EXT; 1632 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1633 1634 /* skip commandBuffer */ 1635 /* skip firstViewport */ 1636 /* skip viewportCount */ 1637 /* skip pViewports */ 1638 1639 return cmd_size; 1640 } 1641 1642 static inline void vn_decode_vkCmdSetViewport_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports) 1643 { 1644 VkCommandTypeEXT command_type; 1645 vn_decode_VkCommandTypeEXT(dec, &command_type); 1646 assert(command_type == VK_COMMAND_TYPE_vkCmdSetViewport_EXT); 1647 1648 /* skip commandBuffer */ 1649 /* skip firstViewport */ 1650 /* skip viewportCount */ 1651 /* skip pViewports */ 1652 } 1653 1654 static inline size_t vn_sizeof_vkCmdSetScissor(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors) 1655 { 1656 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetScissor_EXT; 1657 const VkFlags cmd_flags = 0; 1658 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1659 1660 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 1661 cmd_size += vn_sizeof_uint32_t(&firstScissor); 1662 cmd_size += vn_sizeof_uint32_t(&scissorCount); 1663 if (pScissors) { 1664 cmd_size += vn_sizeof_array_size(scissorCount); 1665 for (uint32_t i = 0; i < scissorCount; i++) 1666 cmd_size += vn_sizeof_VkRect2D(&pScissors[i]); 1667 } else { 1668 cmd_size += vn_sizeof_array_size(0); 1669 } 1670 1671 return cmd_size; 1672 } 1673 1674 static inline void vn_encode_vkCmdSetScissor(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors) 1675 { 1676 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetScissor_EXT; 1677 1678 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1679 vn_encode_VkFlags(enc, &cmd_flags); 1680 1681 vn_encode_VkCommandBuffer(enc, &commandBuffer); 1682 vn_encode_uint32_t(enc, &firstScissor); 1683 vn_encode_uint32_t(enc, &scissorCount); 1684 if (pScissors) { 1685 vn_encode_array_size(enc, scissorCount); 1686 for (uint32_t i = 0; i < scissorCount; i++) 1687 vn_encode_VkRect2D(enc, &pScissors[i]); 1688 } else { 1689 vn_encode_array_size(enc, 0); 1690 } 1691 } 1692 1693 static inline size_t vn_sizeof_vkCmdSetScissor_reply(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors) 1694 { 1695 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetScissor_EXT; 1696 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1697 1698 /* skip commandBuffer */ 1699 /* skip firstScissor */ 1700 /* skip scissorCount */ 1701 /* skip pScissors */ 1702 1703 return cmd_size; 1704 } 1705 1706 static inline void vn_decode_vkCmdSetScissor_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors) 1707 { 1708 VkCommandTypeEXT command_type; 1709 vn_decode_VkCommandTypeEXT(dec, &command_type); 1710 assert(command_type == VK_COMMAND_TYPE_vkCmdSetScissor_EXT); 1711 1712 /* skip commandBuffer */ 1713 /* skip firstScissor */ 1714 /* skip scissorCount */ 1715 /* skip pScissors */ 1716 } 1717 1718 static inline size_t vn_sizeof_vkCmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth) 1719 { 1720 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetLineWidth_EXT; 1721 const VkFlags cmd_flags = 0; 1722 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1723 1724 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 1725 cmd_size += vn_sizeof_float(&lineWidth); 1726 1727 return cmd_size; 1728 } 1729 1730 static inline void vn_encode_vkCmdSetLineWidth(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, float lineWidth) 1731 { 1732 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetLineWidth_EXT; 1733 1734 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1735 vn_encode_VkFlags(enc, &cmd_flags); 1736 1737 vn_encode_VkCommandBuffer(enc, &commandBuffer); 1738 vn_encode_float(enc, &lineWidth); 1739 } 1740 1741 static inline size_t vn_sizeof_vkCmdSetLineWidth_reply(VkCommandBuffer commandBuffer, float lineWidth) 1742 { 1743 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetLineWidth_EXT; 1744 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1745 1746 /* skip commandBuffer */ 1747 /* skip lineWidth */ 1748 1749 return cmd_size; 1750 } 1751 1752 static inline void vn_decode_vkCmdSetLineWidth_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, float lineWidth) 1753 { 1754 VkCommandTypeEXT command_type; 1755 vn_decode_VkCommandTypeEXT(dec, &command_type); 1756 assert(command_type == VK_COMMAND_TYPE_vkCmdSetLineWidth_EXT); 1757 1758 /* skip commandBuffer */ 1759 /* skip lineWidth */ 1760 } 1761 1762 static inline size_t vn_sizeof_vkCmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) 1763 { 1764 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetDepthBias_EXT; 1765 const VkFlags cmd_flags = 0; 1766 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1767 1768 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 1769 cmd_size += vn_sizeof_float(&depthBiasConstantFactor); 1770 cmd_size += vn_sizeof_float(&depthBiasClamp); 1771 cmd_size += vn_sizeof_float(&depthBiasSlopeFactor); 1772 1773 return cmd_size; 1774 } 1775 1776 static inline void vn_encode_vkCmdSetDepthBias(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) 1777 { 1778 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetDepthBias_EXT; 1779 1780 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1781 vn_encode_VkFlags(enc, &cmd_flags); 1782 1783 vn_encode_VkCommandBuffer(enc, &commandBuffer); 1784 vn_encode_float(enc, &depthBiasConstantFactor); 1785 vn_encode_float(enc, &depthBiasClamp); 1786 vn_encode_float(enc, &depthBiasSlopeFactor); 1787 } 1788 1789 static inline size_t vn_sizeof_vkCmdSetDepthBias_reply(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) 1790 { 1791 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetDepthBias_EXT; 1792 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1793 1794 /* skip commandBuffer */ 1795 /* skip depthBiasConstantFactor */ 1796 /* skip depthBiasClamp */ 1797 /* skip depthBiasSlopeFactor */ 1798 1799 return cmd_size; 1800 } 1801 1802 static inline void vn_decode_vkCmdSetDepthBias_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) 1803 { 1804 VkCommandTypeEXT command_type; 1805 vn_decode_VkCommandTypeEXT(dec, &command_type); 1806 assert(command_type == VK_COMMAND_TYPE_vkCmdSetDepthBias_EXT); 1807 1808 /* skip commandBuffer */ 1809 /* skip depthBiasConstantFactor */ 1810 /* skip depthBiasClamp */ 1811 /* skip depthBiasSlopeFactor */ 1812 } 1813 1814 static inline size_t vn_sizeof_vkCmdSetBlendConstants(VkCommandBuffer commandBuffer, const float blendConstants[4]) 1815 { 1816 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetBlendConstants_EXT; 1817 const VkFlags cmd_flags = 0; 1818 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1819 1820 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 1821 cmd_size += vn_sizeof_array_size(4); 1822 cmd_size += vn_sizeof_float_array(blendConstants, 4); 1823 1824 return cmd_size; 1825 } 1826 1827 static inline void vn_encode_vkCmdSetBlendConstants(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, const float blendConstants[4]) 1828 { 1829 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetBlendConstants_EXT; 1830 1831 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1832 vn_encode_VkFlags(enc, &cmd_flags); 1833 1834 vn_encode_VkCommandBuffer(enc, &commandBuffer); 1835 vn_encode_array_size(enc, 4); 1836 vn_encode_float_array(enc, blendConstants, 4); 1837 } 1838 1839 static inline size_t vn_sizeof_vkCmdSetBlendConstants_reply(VkCommandBuffer commandBuffer, const float blendConstants[4]) 1840 { 1841 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetBlendConstants_EXT; 1842 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1843 1844 /* skip commandBuffer */ 1845 /* skip blendConstants */ 1846 1847 return cmd_size; 1848 } 1849 1850 static inline void vn_decode_vkCmdSetBlendConstants_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, const float blendConstants[4]) 1851 { 1852 VkCommandTypeEXT command_type; 1853 vn_decode_VkCommandTypeEXT(dec, &command_type); 1854 assert(command_type == VK_COMMAND_TYPE_vkCmdSetBlendConstants_EXT); 1855 1856 /* skip commandBuffer */ 1857 /* skip blendConstants */ 1858 } 1859 1860 static inline size_t vn_sizeof_vkCmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) 1861 { 1862 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetDepthBounds_EXT; 1863 const VkFlags cmd_flags = 0; 1864 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1865 1866 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 1867 cmd_size += vn_sizeof_float(&minDepthBounds); 1868 cmd_size += vn_sizeof_float(&maxDepthBounds); 1869 1870 return cmd_size; 1871 } 1872 1873 static inline void vn_encode_vkCmdSetDepthBounds(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) 1874 { 1875 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetDepthBounds_EXT; 1876 1877 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1878 vn_encode_VkFlags(enc, &cmd_flags); 1879 1880 vn_encode_VkCommandBuffer(enc, &commandBuffer); 1881 vn_encode_float(enc, &minDepthBounds); 1882 vn_encode_float(enc, &maxDepthBounds); 1883 } 1884 1885 static inline size_t vn_sizeof_vkCmdSetDepthBounds_reply(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) 1886 { 1887 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetDepthBounds_EXT; 1888 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1889 1890 /* skip commandBuffer */ 1891 /* skip minDepthBounds */ 1892 /* skip maxDepthBounds */ 1893 1894 return cmd_size; 1895 } 1896 1897 static inline void vn_decode_vkCmdSetDepthBounds_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) 1898 { 1899 VkCommandTypeEXT command_type; 1900 vn_decode_VkCommandTypeEXT(dec, &command_type); 1901 assert(command_type == VK_COMMAND_TYPE_vkCmdSetDepthBounds_EXT); 1902 1903 /* skip commandBuffer */ 1904 /* skip minDepthBounds */ 1905 /* skip maxDepthBounds */ 1906 } 1907 1908 static inline size_t vn_sizeof_vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask) 1909 { 1910 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetStencilCompareMask_EXT; 1911 const VkFlags cmd_flags = 0; 1912 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1913 1914 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 1915 cmd_size += vn_sizeof_VkFlags(&faceMask); 1916 cmd_size += vn_sizeof_uint32_t(&compareMask); 1917 1918 return cmd_size; 1919 } 1920 1921 static inline void vn_encode_vkCmdSetStencilCompareMask(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask) 1922 { 1923 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetStencilCompareMask_EXT; 1924 1925 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1926 vn_encode_VkFlags(enc, &cmd_flags); 1927 1928 vn_encode_VkCommandBuffer(enc, &commandBuffer); 1929 vn_encode_VkFlags(enc, &faceMask); 1930 vn_encode_uint32_t(enc, &compareMask); 1931 } 1932 1933 static inline size_t vn_sizeof_vkCmdSetStencilCompareMask_reply(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask) 1934 { 1935 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetStencilCompareMask_EXT; 1936 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1937 1938 /* skip commandBuffer */ 1939 /* skip faceMask */ 1940 /* skip compareMask */ 1941 1942 return cmd_size; 1943 } 1944 1945 static inline void vn_decode_vkCmdSetStencilCompareMask_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask) 1946 { 1947 VkCommandTypeEXT command_type; 1948 vn_decode_VkCommandTypeEXT(dec, &command_type); 1949 assert(command_type == VK_COMMAND_TYPE_vkCmdSetStencilCompareMask_EXT); 1950 1951 /* skip commandBuffer */ 1952 /* skip faceMask */ 1953 /* skip compareMask */ 1954 } 1955 1956 static inline size_t vn_sizeof_vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask) 1957 { 1958 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetStencilWriteMask_EXT; 1959 const VkFlags cmd_flags = 0; 1960 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1961 1962 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 1963 cmd_size += vn_sizeof_VkFlags(&faceMask); 1964 cmd_size += vn_sizeof_uint32_t(&writeMask); 1965 1966 return cmd_size; 1967 } 1968 1969 static inline void vn_encode_vkCmdSetStencilWriteMask(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask) 1970 { 1971 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetStencilWriteMask_EXT; 1972 1973 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1974 vn_encode_VkFlags(enc, &cmd_flags); 1975 1976 vn_encode_VkCommandBuffer(enc, &commandBuffer); 1977 vn_encode_VkFlags(enc, &faceMask); 1978 vn_encode_uint32_t(enc, &writeMask); 1979 } 1980 1981 static inline size_t vn_sizeof_vkCmdSetStencilWriteMask_reply(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask) 1982 { 1983 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetStencilWriteMask_EXT; 1984 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1985 1986 /* skip commandBuffer */ 1987 /* skip faceMask */ 1988 /* skip writeMask */ 1989 1990 return cmd_size; 1991 } 1992 1993 static inline void vn_decode_vkCmdSetStencilWriteMask_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask) 1994 { 1995 VkCommandTypeEXT command_type; 1996 vn_decode_VkCommandTypeEXT(dec, &command_type); 1997 assert(command_type == VK_COMMAND_TYPE_vkCmdSetStencilWriteMask_EXT); 1998 1999 /* skip commandBuffer */ 2000 /* skip faceMask */ 2001 /* skip writeMask */ 2002 } 2003 2004 static inline size_t vn_sizeof_vkCmdSetStencilReference(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference) 2005 { 2006 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetStencilReference_EXT; 2007 const VkFlags cmd_flags = 0; 2008 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 2009 2010 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 2011 cmd_size += vn_sizeof_VkFlags(&faceMask); 2012 cmd_size += vn_sizeof_uint32_t(&reference); 2013 2014 return cmd_size; 2015 } 2016 2017 static inline void vn_encode_vkCmdSetStencilReference(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference) 2018 { 2019 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetStencilReference_EXT; 2020 2021 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 2022 vn_encode_VkFlags(enc, &cmd_flags); 2023 2024 vn_encode_VkCommandBuffer(enc, &commandBuffer); 2025 vn_encode_VkFlags(enc, &faceMask); 2026 vn_encode_uint32_t(enc, &reference); 2027 } 2028 2029 static inline size_t vn_sizeof_vkCmdSetStencilReference_reply(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference) 2030 { 2031 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetStencilReference_EXT; 2032 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 2033 2034 /* skip commandBuffer */ 2035 /* skip faceMask */ 2036 /* skip reference */ 2037 2038 return cmd_size; 2039 } 2040 2041 static inline void vn_decode_vkCmdSetStencilReference_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference) 2042 { 2043 VkCommandTypeEXT command_type; 2044 vn_decode_VkCommandTypeEXT(dec, &command_type); 2045 assert(command_type == VK_COMMAND_TYPE_vkCmdSetStencilReference_EXT); 2046 2047 /* skip commandBuffer */ 2048 /* skip faceMask */ 2049 /* skip reference */ 2050 } 2051 2052 static inline size_t vn_sizeof_vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) 2053 { 2054 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBindDescriptorSets_EXT; 2055 const VkFlags cmd_flags = 0; 2056 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 2057 2058 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 2059 cmd_size += vn_sizeof_VkPipelineBindPoint(&pipelineBindPoint); 2060 cmd_size += vn_sizeof_VkPipelineLayout(&layout); 2061 cmd_size += vn_sizeof_uint32_t(&firstSet); 2062 cmd_size += vn_sizeof_uint32_t(&descriptorSetCount); 2063 if (pDescriptorSets) { 2064 cmd_size += vn_sizeof_array_size(descriptorSetCount); 2065 for (uint32_t i = 0; i < descriptorSetCount; i++) 2066 cmd_size += vn_sizeof_VkDescriptorSet(&pDescriptorSets[i]); 2067 } else { 2068 cmd_size += vn_sizeof_array_size(0); 2069 } 2070 cmd_size += vn_sizeof_uint32_t(&dynamicOffsetCount); 2071 if (pDynamicOffsets) { 2072 cmd_size += vn_sizeof_array_size(dynamicOffsetCount); 2073 cmd_size += vn_sizeof_uint32_t_array(pDynamicOffsets, dynamicOffsetCount); 2074 } else { 2075 cmd_size += vn_sizeof_array_size(0); 2076 } 2077 2078 return cmd_size; 2079 } 2080 2081 static inline void vn_encode_vkCmdBindDescriptorSets(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) 2082 { 2083 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBindDescriptorSets_EXT; 2084 2085 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 2086 vn_encode_VkFlags(enc, &cmd_flags); 2087 2088 vn_encode_VkCommandBuffer(enc, &commandBuffer); 2089 vn_encode_VkPipelineBindPoint(enc, &pipelineBindPoint); 2090 vn_encode_VkPipelineLayout(enc, &layout); 2091 vn_encode_uint32_t(enc, &firstSet); 2092 vn_encode_uint32_t(enc, &descriptorSetCount); 2093 if (pDescriptorSets) { 2094 vn_encode_array_size(enc, descriptorSetCount); 2095 for (uint32_t i = 0; i < descriptorSetCount; i++) 2096 vn_encode_VkDescriptorSet(enc, &pDescriptorSets[i]); 2097 } else { 2098 vn_encode_array_size(enc, 0); 2099 } 2100 vn_encode_uint32_t(enc, &dynamicOffsetCount); 2101 if (pDynamicOffsets) { 2102 vn_encode_array_size(enc, dynamicOffsetCount); 2103 vn_encode_uint32_t_array(enc, pDynamicOffsets, dynamicOffsetCount); 2104 } else { 2105 vn_encode_array_size(enc, 0); 2106 } 2107 } 2108 2109 static inline size_t vn_sizeof_vkCmdBindDescriptorSets_reply(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) 2110 { 2111 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBindDescriptorSets_EXT; 2112 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 2113 2114 /* skip commandBuffer */ 2115 /* skip pipelineBindPoint */ 2116 /* skip layout */ 2117 /* skip firstSet */ 2118 /* skip descriptorSetCount */ 2119 /* skip pDescriptorSets */ 2120 /* skip dynamicOffsetCount */ 2121 /* skip pDynamicOffsets */ 2122 2123 return cmd_size; 2124 } 2125 2126 static inline void vn_decode_vkCmdBindDescriptorSets_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) 2127 { 2128 VkCommandTypeEXT command_type; 2129 vn_decode_VkCommandTypeEXT(dec, &command_type); 2130 assert(command_type == VK_COMMAND_TYPE_vkCmdBindDescriptorSets_EXT); 2131 2132 /* skip commandBuffer */ 2133 /* skip pipelineBindPoint */ 2134 /* skip layout */ 2135 /* skip firstSet */ 2136 /* skip descriptorSetCount */ 2137 /* skip pDescriptorSets */ 2138 /* skip dynamicOffsetCount */ 2139 /* skip pDynamicOffsets */ 2140 } 2141 2142 static inline size_t vn_sizeof_vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) 2143 { 2144 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBindIndexBuffer_EXT; 2145 const VkFlags cmd_flags = 0; 2146 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 2147 2148 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 2149 cmd_size += vn_sizeof_VkBuffer(&buffer); 2150 cmd_size += vn_sizeof_VkDeviceSize(&offset); 2151 cmd_size += vn_sizeof_VkIndexType(&indexType); 2152 2153 return cmd_size; 2154 } 2155 2156 static inline void vn_encode_vkCmdBindIndexBuffer(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) 2157 { 2158 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBindIndexBuffer_EXT; 2159 2160 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 2161 vn_encode_VkFlags(enc, &cmd_flags); 2162 2163 vn_encode_VkCommandBuffer(enc, &commandBuffer); 2164 vn_encode_VkBuffer(enc, &buffer); 2165 vn_encode_VkDeviceSize(enc, &offset); 2166 vn_encode_VkIndexType(enc, &indexType); 2167 } 2168 2169 static inline size_t vn_sizeof_vkCmdBindIndexBuffer_reply(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) 2170 { 2171 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBindIndexBuffer_EXT; 2172 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 2173 2174 /* skip commandBuffer */ 2175 /* skip buffer */ 2176 /* skip offset */ 2177 /* skip indexType */ 2178 2179 return cmd_size; 2180 } 2181 2182 static inline void vn_decode_vkCmdBindIndexBuffer_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) 2183 { 2184 VkCommandTypeEXT command_type; 2185 vn_decode_VkCommandTypeEXT(dec, &command_type); 2186 assert(command_type == VK_COMMAND_TYPE_vkCmdBindIndexBuffer_EXT); 2187 2188 /* skip commandBuffer */ 2189 /* skip buffer */ 2190 /* skip offset */ 2191 /* skip indexType */ 2192 } 2193 2194 static inline size_t vn_sizeof_vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) 2195 { 2196 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBindVertexBuffers_EXT; 2197 const VkFlags cmd_flags = 0; 2198 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 2199 2200 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 2201 cmd_size += vn_sizeof_uint32_t(&firstBinding); 2202 cmd_size += vn_sizeof_uint32_t(&bindingCount); 2203 if (pBuffers) { 2204 cmd_size += vn_sizeof_array_size(bindingCount); 2205 for (uint32_t i = 0; i < bindingCount; i++) 2206 cmd_size += vn_sizeof_VkBuffer(&pBuffers[i]); 2207 } else { 2208 cmd_size += vn_sizeof_array_size(0); 2209 } 2210 if (pOffsets) { 2211 cmd_size += vn_sizeof_array_size(bindingCount); 2212 cmd_size += vn_sizeof_VkDeviceSize_array(pOffsets, bindingCount); 2213 } else { 2214 cmd_size += vn_sizeof_array_size(0); 2215 } 2216 2217 return cmd_size; 2218 } 2219 2220 static inline void vn_encode_vkCmdBindVertexBuffers(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) 2221 { 2222 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBindVertexBuffers_EXT; 2223 2224 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 2225 vn_encode_VkFlags(enc, &cmd_flags); 2226 2227 vn_encode_VkCommandBuffer(enc, &commandBuffer); 2228 vn_encode_uint32_t(enc, &firstBinding); 2229 vn_encode_uint32_t(enc, &bindingCount); 2230 if (pBuffers) { 2231 vn_encode_array_size(enc, bindingCount); 2232 for (uint32_t i = 0; i < bindingCount; i++) 2233 vn_encode_VkBuffer(enc, &pBuffers[i]); 2234 } else { 2235 vn_encode_array_size(enc, 0); 2236 } 2237 if (pOffsets) { 2238 vn_encode_array_size(enc, bindingCount); 2239 vn_encode_VkDeviceSize_array(enc, pOffsets, bindingCount); 2240 } else { 2241 vn_encode_array_size(enc, 0); 2242 } 2243 } 2244 2245 static inline size_t vn_sizeof_vkCmdBindVertexBuffers_reply(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) 2246 { 2247 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBindVertexBuffers_EXT; 2248 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 2249 2250 /* skip commandBuffer */ 2251 /* skip firstBinding */ 2252 /* skip bindingCount */ 2253 /* skip pBuffers */ 2254 /* skip pOffsets */ 2255 2256 return cmd_size; 2257 } 2258 2259 static inline void vn_decode_vkCmdBindVertexBuffers_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) 2260 { 2261 VkCommandTypeEXT command_type; 2262 vn_decode_VkCommandTypeEXT(dec, &command_type); 2263 assert(command_type == VK_COMMAND_TYPE_vkCmdBindVertexBuffers_EXT); 2264 2265 /* skip commandBuffer */ 2266 /* skip firstBinding */ 2267 /* skip bindingCount */ 2268 /* skip pBuffers */ 2269 /* skip pOffsets */ 2270 } 2271 2272 static inline size_t vn_sizeof_vkCmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) 2273 { 2274 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDraw_EXT; 2275 const VkFlags cmd_flags = 0; 2276 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 2277 2278 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 2279 cmd_size += vn_sizeof_uint32_t(&vertexCount); 2280 cmd_size += vn_sizeof_uint32_t(&instanceCount); 2281 cmd_size += vn_sizeof_uint32_t(&firstVertex); 2282 cmd_size += vn_sizeof_uint32_t(&firstInstance); 2283 2284 return cmd_size; 2285 } 2286 2287 static inline void vn_encode_vkCmdDraw(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) 2288 { 2289 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDraw_EXT; 2290 2291 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 2292 vn_encode_VkFlags(enc, &cmd_flags); 2293 2294 vn_encode_VkCommandBuffer(enc, &commandBuffer); 2295 vn_encode_uint32_t(enc, &vertexCount); 2296 vn_encode_uint32_t(enc, &instanceCount); 2297 vn_encode_uint32_t(enc, &firstVertex); 2298 vn_encode_uint32_t(enc, &firstInstance); 2299 } 2300 2301 static inline size_t vn_sizeof_vkCmdDraw_reply(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) 2302 { 2303 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDraw_EXT; 2304 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 2305 2306 /* skip commandBuffer */ 2307 /* skip vertexCount */ 2308 /* skip instanceCount */ 2309 /* skip firstVertex */ 2310 /* skip firstInstance */ 2311 2312 return cmd_size; 2313 } 2314 2315 static inline void vn_decode_vkCmdDraw_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) 2316 { 2317 VkCommandTypeEXT command_type; 2318 vn_decode_VkCommandTypeEXT(dec, &command_type); 2319 assert(command_type == VK_COMMAND_TYPE_vkCmdDraw_EXT); 2320 2321 /* skip commandBuffer */ 2322 /* skip vertexCount */ 2323 /* skip instanceCount */ 2324 /* skip firstVertex */ 2325 /* skip firstInstance */ 2326 } 2327 2328 static inline size_t vn_sizeof_vkCmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) 2329 { 2330 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawIndexed_EXT; 2331 const VkFlags cmd_flags = 0; 2332 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 2333 2334 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 2335 cmd_size += vn_sizeof_uint32_t(&indexCount); 2336 cmd_size += vn_sizeof_uint32_t(&instanceCount); 2337 cmd_size += vn_sizeof_uint32_t(&firstIndex); 2338 cmd_size += vn_sizeof_int32_t(&vertexOffset); 2339 cmd_size += vn_sizeof_uint32_t(&firstInstance); 2340 2341 return cmd_size; 2342 } 2343 2344 static inline void vn_encode_vkCmdDrawIndexed(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) 2345 { 2346 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawIndexed_EXT; 2347 2348 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 2349 vn_encode_VkFlags(enc, &cmd_flags); 2350 2351 vn_encode_VkCommandBuffer(enc, &commandBuffer); 2352 vn_encode_uint32_t(enc, &indexCount); 2353 vn_encode_uint32_t(enc, &instanceCount); 2354 vn_encode_uint32_t(enc, &firstIndex); 2355 vn_encode_int32_t(enc, &vertexOffset); 2356 vn_encode_uint32_t(enc, &firstInstance); 2357 } 2358 2359 static inline size_t vn_sizeof_vkCmdDrawIndexed_reply(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) 2360 { 2361 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawIndexed_EXT; 2362 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 2363 2364 /* skip commandBuffer */ 2365 /* skip indexCount */ 2366 /* skip instanceCount */ 2367 /* skip firstIndex */ 2368 /* skip vertexOffset */ 2369 /* skip firstInstance */ 2370 2371 return cmd_size; 2372 } 2373 2374 static inline void vn_decode_vkCmdDrawIndexed_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) 2375 { 2376 VkCommandTypeEXT command_type; 2377 vn_decode_VkCommandTypeEXT(dec, &command_type); 2378 assert(command_type == VK_COMMAND_TYPE_vkCmdDrawIndexed_EXT); 2379 2380 /* skip commandBuffer */ 2381 /* skip indexCount */ 2382 /* skip instanceCount */ 2383 /* skip firstIndex */ 2384 /* skip vertexOffset */ 2385 /* skip firstInstance */ 2386 } 2387 2388 static inline size_t vn_sizeof_vkCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) 2389 { 2390 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawIndirect_EXT; 2391 const VkFlags cmd_flags = 0; 2392 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 2393 2394 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 2395 cmd_size += vn_sizeof_VkBuffer(&buffer); 2396 cmd_size += vn_sizeof_VkDeviceSize(&offset); 2397 cmd_size += vn_sizeof_uint32_t(&drawCount); 2398 cmd_size += vn_sizeof_uint32_t(&stride); 2399 2400 return cmd_size; 2401 } 2402 2403 static inline void vn_encode_vkCmdDrawIndirect(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) 2404 { 2405 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawIndirect_EXT; 2406 2407 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 2408 vn_encode_VkFlags(enc, &cmd_flags); 2409 2410 vn_encode_VkCommandBuffer(enc, &commandBuffer); 2411 vn_encode_VkBuffer(enc, &buffer); 2412 vn_encode_VkDeviceSize(enc, &offset); 2413 vn_encode_uint32_t(enc, &drawCount); 2414 vn_encode_uint32_t(enc, &stride); 2415 } 2416 2417 static inline size_t vn_sizeof_vkCmdDrawIndirect_reply(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) 2418 { 2419 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawIndirect_EXT; 2420 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 2421 2422 /* skip commandBuffer */ 2423 /* skip buffer */ 2424 /* skip offset */ 2425 /* skip drawCount */ 2426 /* skip stride */ 2427 2428 return cmd_size; 2429 } 2430 2431 static inline void vn_decode_vkCmdDrawIndirect_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) 2432 { 2433 VkCommandTypeEXT command_type; 2434 vn_decode_VkCommandTypeEXT(dec, &command_type); 2435 assert(command_type == VK_COMMAND_TYPE_vkCmdDrawIndirect_EXT); 2436 2437 /* skip commandBuffer */ 2438 /* skip buffer */ 2439 /* skip offset */ 2440 /* skip drawCount */ 2441 /* skip stride */ 2442 } 2443 2444 static inline size_t vn_sizeof_vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) 2445 { 2446 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawIndexedIndirect_EXT; 2447 const VkFlags cmd_flags = 0; 2448 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 2449 2450 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 2451 cmd_size += vn_sizeof_VkBuffer(&buffer); 2452 cmd_size += vn_sizeof_VkDeviceSize(&offset); 2453 cmd_size += vn_sizeof_uint32_t(&drawCount); 2454 cmd_size += vn_sizeof_uint32_t(&stride); 2455 2456 return cmd_size; 2457 } 2458 2459 static inline void vn_encode_vkCmdDrawIndexedIndirect(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) 2460 { 2461 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawIndexedIndirect_EXT; 2462 2463 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 2464 vn_encode_VkFlags(enc, &cmd_flags); 2465 2466 vn_encode_VkCommandBuffer(enc, &commandBuffer); 2467 vn_encode_VkBuffer(enc, &buffer); 2468 vn_encode_VkDeviceSize(enc, &offset); 2469 vn_encode_uint32_t(enc, &drawCount); 2470 vn_encode_uint32_t(enc, &stride); 2471 } 2472 2473 static inline size_t vn_sizeof_vkCmdDrawIndexedIndirect_reply(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) 2474 { 2475 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawIndexedIndirect_EXT; 2476 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 2477 2478 /* skip commandBuffer */ 2479 /* skip buffer */ 2480 /* skip offset */ 2481 /* skip drawCount */ 2482 /* skip stride */ 2483 2484 return cmd_size; 2485 } 2486 2487 static inline void vn_decode_vkCmdDrawIndexedIndirect_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) 2488 { 2489 VkCommandTypeEXT command_type; 2490 vn_decode_VkCommandTypeEXT(dec, &command_type); 2491 assert(command_type == VK_COMMAND_TYPE_vkCmdDrawIndexedIndirect_EXT); 2492 2493 /* skip commandBuffer */ 2494 /* skip buffer */ 2495 /* skip offset */ 2496 /* skip drawCount */ 2497 /* skip stride */ 2498 } 2499 2500 static inline size_t vn_sizeof_vkCmdDispatch(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) 2501 { 2502 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDispatch_EXT; 2503 const VkFlags cmd_flags = 0; 2504 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 2505 2506 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 2507 cmd_size += vn_sizeof_uint32_t(&groupCountX); 2508 cmd_size += vn_sizeof_uint32_t(&groupCountY); 2509 cmd_size += vn_sizeof_uint32_t(&groupCountZ); 2510 2511 return cmd_size; 2512 } 2513 2514 static inline void vn_encode_vkCmdDispatch(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) 2515 { 2516 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDispatch_EXT; 2517 2518 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 2519 vn_encode_VkFlags(enc, &cmd_flags); 2520 2521 vn_encode_VkCommandBuffer(enc, &commandBuffer); 2522 vn_encode_uint32_t(enc, &groupCountX); 2523 vn_encode_uint32_t(enc, &groupCountY); 2524 vn_encode_uint32_t(enc, &groupCountZ); 2525 } 2526 2527 static inline size_t vn_sizeof_vkCmdDispatch_reply(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) 2528 { 2529 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDispatch_EXT; 2530 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 2531 2532 /* skip commandBuffer */ 2533 /* skip groupCountX */ 2534 /* skip groupCountY */ 2535 /* skip groupCountZ */ 2536 2537 return cmd_size; 2538 } 2539 2540 static inline void vn_decode_vkCmdDispatch_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) 2541 { 2542 VkCommandTypeEXT command_type; 2543 vn_decode_VkCommandTypeEXT(dec, &command_type); 2544 assert(command_type == VK_COMMAND_TYPE_vkCmdDispatch_EXT); 2545 2546 /* skip commandBuffer */ 2547 /* skip groupCountX */ 2548 /* skip groupCountY */ 2549 /* skip groupCountZ */ 2550 } 2551 2552 static inline size_t vn_sizeof_vkCmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) 2553 { 2554 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDispatchIndirect_EXT; 2555 const VkFlags cmd_flags = 0; 2556 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 2557 2558 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 2559 cmd_size += vn_sizeof_VkBuffer(&buffer); 2560 cmd_size += vn_sizeof_VkDeviceSize(&offset); 2561 2562 return cmd_size; 2563 } 2564 2565 static inline void vn_encode_vkCmdDispatchIndirect(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) 2566 { 2567 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDispatchIndirect_EXT; 2568 2569 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 2570 vn_encode_VkFlags(enc, &cmd_flags); 2571 2572 vn_encode_VkCommandBuffer(enc, &commandBuffer); 2573 vn_encode_VkBuffer(enc, &buffer); 2574 vn_encode_VkDeviceSize(enc, &offset); 2575 } 2576 2577 static inline size_t vn_sizeof_vkCmdDispatchIndirect_reply(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) 2578 { 2579 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDispatchIndirect_EXT; 2580 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 2581 2582 /* skip commandBuffer */ 2583 /* skip buffer */ 2584 /* skip offset */ 2585 2586 return cmd_size; 2587 } 2588 2589 static inline void vn_decode_vkCmdDispatchIndirect_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) 2590 { 2591 VkCommandTypeEXT command_type; 2592 vn_decode_VkCommandTypeEXT(dec, &command_type); 2593 assert(command_type == VK_COMMAND_TYPE_vkCmdDispatchIndirect_EXT); 2594 2595 /* skip commandBuffer */ 2596 /* skip buffer */ 2597 /* skip offset */ 2598 } 2599 2600 static inline size_t vn_sizeof_vkCmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) 2601 { 2602 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdCopyBuffer_EXT; 2603 const VkFlags cmd_flags = 0; 2604 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 2605 2606 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 2607 cmd_size += vn_sizeof_VkBuffer(&srcBuffer); 2608 cmd_size += vn_sizeof_VkBuffer(&dstBuffer); 2609 cmd_size += vn_sizeof_uint32_t(®ionCount); 2610 if (pRegions) { 2611 cmd_size += vn_sizeof_array_size(regionCount); 2612 for (uint32_t i = 0; i < regionCount; i++) 2613 cmd_size += vn_sizeof_VkBufferCopy(&pRegions[i]); 2614 } else { 2615 cmd_size += vn_sizeof_array_size(0); 2616 } 2617 2618 return cmd_size; 2619 } 2620 2621 static inline void vn_encode_vkCmdCopyBuffer(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) 2622 { 2623 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdCopyBuffer_EXT; 2624 2625 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 2626 vn_encode_VkFlags(enc, &cmd_flags); 2627 2628 vn_encode_VkCommandBuffer(enc, &commandBuffer); 2629 vn_encode_VkBuffer(enc, &srcBuffer); 2630 vn_encode_VkBuffer(enc, &dstBuffer); 2631 vn_encode_uint32_t(enc, ®ionCount); 2632 if (pRegions) { 2633 vn_encode_array_size(enc, regionCount); 2634 for (uint32_t i = 0; i < regionCount; i++) 2635 vn_encode_VkBufferCopy(enc, &pRegions[i]); 2636 } else { 2637 vn_encode_array_size(enc, 0); 2638 } 2639 } 2640 2641 static inline size_t vn_sizeof_vkCmdCopyBuffer_reply(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) 2642 { 2643 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdCopyBuffer_EXT; 2644 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 2645 2646 /* skip commandBuffer */ 2647 /* skip srcBuffer */ 2648 /* skip dstBuffer */ 2649 /* skip regionCount */ 2650 /* skip pRegions */ 2651 2652 return cmd_size; 2653 } 2654 2655 static inline void vn_decode_vkCmdCopyBuffer_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) 2656 { 2657 VkCommandTypeEXT command_type; 2658 vn_decode_VkCommandTypeEXT(dec, &command_type); 2659 assert(command_type == VK_COMMAND_TYPE_vkCmdCopyBuffer_EXT); 2660 2661 /* skip commandBuffer */ 2662 /* skip srcBuffer */ 2663 /* skip dstBuffer */ 2664 /* skip regionCount */ 2665 /* skip pRegions */ 2666 } 2667 2668 static inline size_t vn_sizeof_vkCmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions) 2669 { 2670 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdCopyImage_EXT; 2671 const VkFlags cmd_flags = 0; 2672 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 2673 2674 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 2675 cmd_size += vn_sizeof_VkImage(&srcImage); 2676 cmd_size += vn_sizeof_VkImageLayout(&srcImageLayout); 2677 cmd_size += vn_sizeof_VkImage(&dstImage); 2678 cmd_size += vn_sizeof_VkImageLayout(&dstImageLayout); 2679 cmd_size += vn_sizeof_uint32_t(®ionCount); 2680 if (pRegions) { 2681 cmd_size += vn_sizeof_array_size(regionCount); 2682 for (uint32_t i = 0; i < regionCount; i++) 2683 cmd_size += vn_sizeof_VkImageCopy(&pRegions[i]); 2684 } else { 2685 cmd_size += vn_sizeof_array_size(0); 2686 } 2687 2688 return cmd_size; 2689 } 2690 2691 static inline void vn_encode_vkCmdCopyImage(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions) 2692 { 2693 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdCopyImage_EXT; 2694 2695 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 2696 vn_encode_VkFlags(enc, &cmd_flags); 2697 2698 vn_encode_VkCommandBuffer(enc, &commandBuffer); 2699 vn_encode_VkImage(enc, &srcImage); 2700 vn_encode_VkImageLayout(enc, &srcImageLayout); 2701 vn_encode_VkImage(enc, &dstImage); 2702 vn_encode_VkImageLayout(enc, &dstImageLayout); 2703 vn_encode_uint32_t(enc, ®ionCount); 2704 if (pRegions) { 2705 vn_encode_array_size(enc, regionCount); 2706 for (uint32_t i = 0; i < regionCount; i++) 2707 vn_encode_VkImageCopy(enc, &pRegions[i]); 2708 } else { 2709 vn_encode_array_size(enc, 0); 2710 } 2711 } 2712 2713 static inline size_t vn_sizeof_vkCmdCopyImage_reply(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions) 2714 { 2715 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdCopyImage_EXT; 2716 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 2717 2718 /* skip commandBuffer */ 2719 /* skip srcImage */ 2720 /* skip srcImageLayout */ 2721 /* skip dstImage */ 2722 /* skip dstImageLayout */ 2723 /* skip regionCount */ 2724 /* skip pRegions */ 2725 2726 return cmd_size; 2727 } 2728 2729 static inline void vn_decode_vkCmdCopyImage_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions) 2730 { 2731 VkCommandTypeEXT command_type; 2732 vn_decode_VkCommandTypeEXT(dec, &command_type); 2733 assert(command_type == VK_COMMAND_TYPE_vkCmdCopyImage_EXT); 2734 2735 /* skip commandBuffer */ 2736 /* skip srcImage */ 2737 /* skip srcImageLayout */ 2738 /* skip dstImage */ 2739 /* skip dstImageLayout */ 2740 /* skip regionCount */ 2741 /* skip pRegions */ 2742 } 2743 2744 static inline size_t vn_sizeof_vkCmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter) 2745 { 2746 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBlitImage_EXT; 2747 const VkFlags cmd_flags = 0; 2748 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 2749 2750 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 2751 cmd_size += vn_sizeof_VkImage(&srcImage); 2752 cmd_size += vn_sizeof_VkImageLayout(&srcImageLayout); 2753 cmd_size += vn_sizeof_VkImage(&dstImage); 2754 cmd_size += vn_sizeof_VkImageLayout(&dstImageLayout); 2755 cmd_size += vn_sizeof_uint32_t(®ionCount); 2756 if (pRegions) { 2757 cmd_size += vn_sizeof_array_size(regionCount); 2758 for (uint32_t i = 0; i < regionCount; i++) 2759 cmd_size += vn_sizeof_VkImageBlit(&pRegions[i]); 2760 } else { 2761 cmd_size += vn_sizeof_array_size(0); 2762 } 2763 cmd_size += vn_sizeof_VkFilter(&filter); 2764 2765 return cmd_size; 2766 } 2767 2768 static inline void vn_encode_vkCmdBlitImage(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter) 2769 { 2770 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBlitImage_EXT; 2771 2772 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 2773 vn_encode_VkFlags(enc, &cmd_flags); 2774 2775 vn_encode_VkCommandBuffer(enc, &commandBuffer); 2776 vn_encode_VkImage(enc, &srcImage); 2777 vn_encode_VkImageLayout(enc, &srcImageLayout); 2778 vn_encode_VkImage(enc, &dstImage); 2779 vn_encode_VkImageLayout(enc, &dstImageLayout); 2780 vn_encode_uint32_t(enc, ®ionCount); 2781 if (pRegions) { 2782 vn_encode_array_size(enc, regionCount); 2783 for (uint32_t i = 0; i < regionCount; i++) 2784 vn_encode_VkImageBlit(enc, &pRegions[i]); 2785 } else { 2786 vn_encode_array_size(enc, 0); 2787 } 2788 vn_encode_VkFilter(enc, &filter); 2789 } 2790 2791 static inline size_t vn_sizeof_vkCmdBlitImage_reply(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter) 2792 { 2793 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBlitImage_EXT; 2794 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 2795 2796 /* skip commandBuffer */ 2797 /* skip srcImage */ 2798 /* skip srcImageLayout */ 2799 /* skip dstImage */ 2800 /* skip dstImageLayout */ 2801 /* skip regionCount */ 2802 /* skip pRegions */ 2803 /* skip filter */ 2804 2805 return cmd_size; 2806 } 2807 2808 static inline void vn_decode_vkCmdBlitImage_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter) 2809 { 2810 VkCommandTypeEXT command_type; 2811 vn_decode_VkCommandTypeEXT(dec, &command_type); 2812 assert(command_type == VK_COMMAND_TYPE_vkCmdBlitImage_EXT); 2813 2814 /* skip commandBuffer */ 2815 /* skip srcImage */ 2816 /* skip srcImageLayout */ 2817 /* skip dstImage */ 2818 /* skip dstImageLayout */ 2819 /* skip regionCount */ 2820 /* skip pRegions */ 2821 /* skip filter */ 2822 } 2823 2824 static inline size_t vn_sizeof_vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions) 2825 { 2826 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdCopyBufferToImage_EXT; 2827 const VkFlags cmd_flags = 0; 2828 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 2829 2830 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 2831 cmd_size += vn_sizeof_VkBuffer(&srcBuffer); 2832 cmd_size += vn_sizeof_VkImage(&dstImage); 2833 cmd_size += vn_sizeof_VkImageLayout(&dstImageLayout); 2834 cmd_size += vn_sizeof_uint32_t(®ionCount); 2835 if (pRegions) { 2836 cmd_size += vn_sizeof_array_size(regionCount); 2837 for (uint32_t i = 0; i < regionCount; i++) 2838 cmd_size += vn_sizeof_VkBufferImageCopy(&pRegions[i]); 2839 } else { 2840 cmd_size += vn_sizeof_array_size(0); 2841 } 2842 2843 return cmd_size; 2844 } 2845 2846 static inline void vn_encode_vkCmdCopyBufferToImage(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions) 2847 { 2848 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdCopyBufferToImage_EXT; 2849 2850 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 2851 vn_encode_VkFlags(enc, &cmd_flags); 2852 2853 vn_encode_VkCommandBuffer(enc, &commandBuffer); 2854 vn_encode_VkBuffer(enc, &srcBuffer); 2855 vn_encode_VkImage(enc, &dstImage); 2856 vn_encode_VkImageLayout(enc, &dstImageLayout); 2857 vn_encode_uint32_t(enc, ®ionCount); 2858 if (pRegions) { 2859 vn_encode_array_size(enc, regionCount); 2860 for (uint32_t i = 0; i < regionCount; i++) 2861 vn_encode_VkBufferImageCopy(enc, &pRegions[i]); 2862 } else { 2863 vn_encode_array_size(enc, 0); 2864 } 2865 } 2866 2867 static inline size_t vn_sizeof_vkCmdCopyBufferToImage_reply(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions) 2868 { 2869 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdCopyBufferToImage_EXT; 2870 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 2871 2872 /* skip commandBuffer */ 2873 /* skip srcBuffer */ 2874 /* skip dstImage */ 2875 /* skip dstImageLayout */ 2876 /* skip regionCount */ 2877 /* skip pRegions */ 2878 2879 return cmd_size; 2880 } 2881 2882 static inline void vn_decode_vkCmdCopyBufferToImage_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions) 2883 { 2884 VkCommandTypeEXT command_type; 2885 vn_decode_VkCommandTypeEXT(dec, &command_type); 2886 assert(command_type == VK_COMMAND_TYPE_vkCmdCopyBufferToImage_EXT); 2887 2888 /* skip commandBuffer */ 2889 /* skip srcBuffer */ 2890 /* skip dstImage */ 2891 /* skip dstImageLayout */ 2892 /* skip regionCount */ 2893 /* skip pRegions */ 2894 } 2895 2896 static inline size_t vn_sizeof_vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions) 2897 { 2898 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdCopyImageToBuffer_EXT; 2899 const VkFlags cmd_flags = 0; 2900 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 2901 2902 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 2903 cmd_size += vn_sizeof_VkImage(&srcImage); 2904 cmd_size += vn_sizeof_VkImageLayout(&srcImageLayout); 2905 cmd_size += vn_sizeof_VkBuffer(&dstBuffer); 2906 cmd_size += vn_sizeof_uint32_t(®ionCount); 2907 if (pRegions) { 2908 cmd_size += vn_sizeof_array_size(regionCount); 2909 for (uint32_t i = 0; i < regionCount; i++) 2910 cmd_size += vn_sizeof_VkBufferImageCopy(&pRegions[i]); 2911 } else { 2912 cmd_size += vn_sizeof_array_size(0); 2913 } 2914 2915 return cmd_size; 2916 } 2917 2918 static inline void vn_encode_vkCmdCopyImageToBuffer(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions) 2919 { 2920 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdCopyImageToBuffer_EXT; 2921 2922 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 2923 vn_encode_VkFlags(enc, &cmd_flags); 2924 2925 vn_encode_VkCommandBuffer(enc, &commandBuffer); 2926 vn_encode_VkImage(enc, &srcImage); 2927 vn_encode_VkImageLayout(enc, &srcImageLayout); 2928 vn_encode_VkBuffer(enc, &dstBuffer); 2929 vn_encode_uint32_t(enc, ®ionCount); 2930 if (pRegions) { 2931 vn_encode_array_size(enc, regionCount); 2932 for (uint32_t i = 0; i < regionCount; i++) 2933 vn_encode_VkBufferImageCopy(enc, &pRegions[i]); 2934 } else { 2935 vn_encode_array_size(enc, 0); 2936 } 2937 } 2938 2939 static inline size_t vn_sizeof_vkCmdCopyImageToBuffer_reply(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions) 2940 { 2941 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdCopyImageToBuffer_EXT; 2942 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 2943 2944 /* skip commandBuffer */ 2945 /* skip srcImage */ 2946 /* skip srcImageLayout */ 2947 /* skip dstBuffer */ 2948 /* skip regionCount */ 2949 /* skip pRegions */ 2950 2951 return cmd_size; 2952 } 2953 2954 static inline void vn_decode_vkCmdCopyImageToBuffer_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions) 2955 { 2956 VkCommandTypeEXT command_type; 2957 vn_decode_VkCommandTypeEXT(dec, &command_type); 2958 assert(command_type == VK_COMMAND_TYPE_vkCmdCopyImageToBuffer_EXT); 2959 2960 /* skip commandBuffer */ 2961 /* skip srcImage */ 2962 /* skip srcImageLayout */ 2963 /* skip dstBuffer */ 2964 /* skip regionCount */ 2965 /* skip pRegions */ 2966 } 2967 2968 static inline size_t vn_sizeof_vkCmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) 2969 { 2970 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdUpdateBuffer_EXT; 2971 const VkFlags cmd_flags = 0; 2972 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 2973 2974 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 2975 cmd_size += vn_sizeof_VkBuffer(&dstBuffer); 2976 cmd_size += vn_sizeof_VkDeviceSize(&dstOffset); 2977 cmd_size += vn_sizeof_VkDeviceSize(&dataSize); 2978 if (pData) { 2979 cmd_size += vn_sizeof_array_size(dataSize); 2980 cmd_size += vn_sizeof_blob_array(pData, dataSize); 2981 } else { 2982 cmd_size += vn_sizeof_array_size(0); 2983 } 2984 2985 return cmd_size; 2986 } 2987 2988 static inline void vn_encode_vkCmdUpdateBuffer(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) 2989 { 2990 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdUpdateBuffer_EXT; 2991 2992 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 2993 vn_encode_VkFlags(enc, &cmd_flags); 2994 2995 vn_encode_VkCommandBuffer(enc, &commandBuffer); 2996 vn_encode_VkBuffer(enc, &dstBuffer); 2997 vn_encode_VkDeviceSize(enc, &dstOffset); 2998 vn_encode_VkDeviceSize(enc, &dataSize); 2999 if (pData) { 3000 vn_encode_array_size(enc, dataSize); 3001 vn_encode_blob_array(enc, pData, dataSize); 3002 } else { 3003 vn_encode_array_size(enc, 0); 3004 } 3005 } 3006 3007 static inline size_t vn_sizeof_vkCmdUpdateBuffer_reply(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) 3008 { 3009 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdUpdateBuffer_EXT; 3010 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 3011 3012 /* skip commandBuffer */ 3013 /* skip dstBuffer */ 3014 /* skip dstOffset */ 3015 /* skip dataSize */ 3016 /* skip pData */ 3017 3018 return cmd_size; 3019 } 3020 3021 static inline void vn_decode_vkCmdUpdateBuffer_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) 3022 { 3023 VkCommandTypeEXT command_type; 3024 vn_decode_VkCommandTypeEXT(dec, &command_type); 3025 assert(command_type == VK_COMMAND_TYPE_vkCmdUpdateBuffer_EXT); 3026 3027 /* skip commandBuffer */ 3028 /* skip dstBuffer */ 3029 /* skip dstOffset */ 3030 /* skip dataSize */ 3031 /* skip pData */ 3032 } 3033 3034 static inline size_t vn_sizeof_vkCmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) 3035 { 3036 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdFillBuffer_EXT; 3037 const VkFlags cmd_flags = 0; 3038 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 3039 3040 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 3041 cmd_size += vn_sizeof_VkBuffer(&dstBuffer); 3042 cmd_size += vn_sizeof_VkDeviceSize(&dstOffset); 3043 cmd_size += vn_sizeof_VkDeviceSize(&size); 3044 cmd_size += vn_sizeof_uint32_t(&data); 3045 3046 return cmd_size; 3047 } 3048 3049 static inline void vn_encode_vkCmdFillBuffer(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) 3050 { 3051 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdFillBuffer_EXT; 3052 3053 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 3054 vn_encode_VkFlags(enc, &cmd_flags); 3055 3056 vn_encode_VkCommandBuffer(enc, &commandBuffer); 3057 vn_encode_VkBuffer(enc, &dstBuffer); 3058 vn_encode_VkDeviceSize(enc, &dstOffset); 3059 vn_encode_VkDeviceSize(enc, &size); 3060 vn_encode_uint32_t(enc, &data); 3061 } 3062 3063 static inline size_t vn_sizeof_vkCmdFillBuffer_reply(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) 3064 { 3065 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdFillBuffer_EXT; 3066 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 3067 3068 /* skip commandBuffer */ 3069 /* skip dstBuffer */ 3070 /* skip dstOffset */ 3071 /* skip size */ 3072 /* skip data */ 3073 3074 return cmd_size; 3075 } 3076 3077 static inline void vn_decode_vkCmdFillBuffer_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) 3078 { 3079 VkCommandTypeEXT command_type; 3080 vn_decode_VkCommandTypeEXT(dec, &command_type); 3081 assert(command_type == VK_COMMAND_TYPE_vkCmdFillBuffer_EXT); 3082 3083 /* skip commandBuffer */ 3084 /* skip dstBuffer */ 3085 /* skip dstOffset */ 3086 /* skip size */ 3087 /* skip data */ 3088 } 3089 3090 static inline size_t vn_sizeof_vkCmdClearColorImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) 3091 { 3092 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdClearColorImage_EXT; 3093 const VkFlags cmd_flags = 0; 3094 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 3095 3096 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 3097 cmd_size += vn_sizeof_VkImage(&image); 3098 cmd_size += vn_sizeof_VkImageLayout(&imageLayout); 3099 cmd_size += vn_sizeof_simple_pointer(pColor); 3100 if (pColor) 3101 cmd_size += vn_sizeof_VkClearColorValue(pColor); 3102 cmd_size += vn_sizeof_uint32_t(&rangeCount); 3103 if (pRanges) { 3104 cmd_size += vn_sizeof_array_size(rangeCount); 3105 for (uint32_t i = 0; i < rangeCount; i++) 3106 cmd_size += vn_sizeof_VkImageSubresourceRange(&pRanges[i]); 3107 } else { 3108 cmd_size += vn_sizeof_array_size(0); 3109 } 3110 3111 return cmd_size; 3112 } 3113 3114 static inline void vn_encode_vkCmdClearColorImage(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) 3115 { 3116 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdClearColorImage_EXT; 3117 3118 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 3119 vn_encode_VkFlags(enc, &cmd_flags); 3120 3121 vn_encode_VkCommandBuffer(enc, &commandBuffer); 3122 vn_encode_VkImage(enc, &image); 3123 vn_encode_VkImageLayout(enc, &imageLayout); 3124 if (vn_encode_simple_pointer(enc, pColor)) 3125 vn_encode_VkClearColorValue(enc, pColor); 3126 vn_encode_uint32_t(enc, &rangeCount); 3127 if (pRanges) { 3128 vn_encode_array_size(enc, rangeCount); 3129 for (uint32_t i = 0; i < rangeCount; i++) 3130 vn_encode_VkImageSubresourceRange(enc, &pRanges[i]); 3131 } else { 3132 vn_encode_array_size(enc, 0); 3133 } 3134 } 3135 3136 static inline size_t vn_sizeof_vkCmdClearColorImage_reply(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) 3137 { 3138 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdClearColorImage_EXT; 3139 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 3140 3141 /* skip commandBuffer */ 3142 /* skip image */ 3143 /* skip imageLayout */ 3144 /* skip pColor */ 3145 /* skip rangeCount */ 3146 /* skip pRanges */ 3147 3148 return cmd_size; 3149 } 3150 3151 static inline void vn_decode_vkCmdClearColorImage_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) 3152 { 3153 VkCommandTypeEXT command_type; 3154 vn_decode_VkCommandTypeEXT(dec, &command_type); 3155 assert(command_type == VK_COMMAND_TYPE_vkCmdClearColorImage_EXT); 3156 3157 /* skip commandBuffer */ 3158 /* skip image */ 3159 /* skip imageLayout */ 3160 /* skip pColor */ 3161 /* skip rangeCount */ 3162 /* skip pRanges */ 3163 } 3164 3165 static inline size_t vn_sizeof_vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) 3166 { 3167 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdClearDepthStencilImage_EXT; 3168 const VkFlags cmd_flags = 0; 3169 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 3170 3171 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 3172 cmd_size += vn_sizeof_VkImage(&image); 3173 cmd_size += vn_sizeof_VkImageLayout(&imageLayout); 3174 cmd_size += vn_sizeof_simple_pointer(pDepthStencil); 3175 if (pDepthStencil) 3176 cmd_size += vn_sizeof_VkClearDepthStencilValue(pDepthStencil); 3177 cmd_size += vn_sizeof_uint32_t(&rangeCount); 3178 if (pRanges) { 3179 cmd_size += vn_sizeof_array_size(rangeCount); 3180 for (uint32_t i = 0; i < rangeCount; i++) 3181 cmd_size += vn_sizeof_VkImageSubresourceRange(&pRanges[i]); 3182 } else { 3183 cmd_size += vn_sizeof_array_size(0); 3184 } 3185 3186 return cmd_size; 3187 } 3188 3189 static inline void vn_encode_vkCmdClearDepthStencilImage(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) 3190 { 3191 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdClearDepthStencilImage_EXT; 3192 3193 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 3194 vn_encode_VkFlags(enc, &cmd_flags); 3195 3196 vn_encode_VkCommandBuffer(enc, &commandBuffer); 3197 vn_encode_VkImage(enc, &image); 3198 vn_encode_VkImageLayout(enc, &imageLayout); 3199 if (vn_encode_simple_pointer(enc, pDepthStencil)) 3200 vn_encode_VkClearDepthStencilValue(enc, pDepthStencil); 3201 vn_encode_uint32_t(enc, &rangeCount); 3202 if (pRanges) { 3203 vn_encode_array_size(enc, rangeCount); 3204 for (uint32_t i = 0; i < rangeCount; i++) 3205 vn_encode_VkImageSubresourceRange(enc, &pRanges[i]); 3206 } else { 3207 vn_encode_array_size(enc, 0); 3208 } 3209 } 3210 3211 static inline size_t vn_sizeof_vkCmdClearDepthStencilImage_reply(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) 3212 { 3213 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdClearDepthStencilImage_EXT; 3214 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 3215 3216 /* skip commandBuffer */ 3217 /* skip image */ 3218 /* skip imageLayout */ 3219 /* skip pDepthStencil */ 3220 /* skip rangeCount */ 3221 /* skip pRanges */ 3222 3223 return cmd_size; 3224 } 3225 3226 static inline void vn_decode_vkCmdClearDepthStencilImage_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) 3227 { 3228 VkCommandTypeEXT command_type; 3229 vn_decode_VkCommandTypeEXT(dec, &command_type); 3230 assert(command_type == VK_COMMAND_TYPE_vkCmdClearDepthStencilImage_EXT); 3231 3232 /* skip commandBuffer */ 3233 /* skip image */ 3234 /* skip imageLayout */ 3235 /* skip pDepthStencil */ 3236 /* skip rangeCount */ 3237 /* skip pRanges */ 3238 } 3239 3240 static inline size_t vn_sizeof_vkCmdClearAttachments(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects) 3241 { 3242 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdClearAttachments_EXT; 3243 const VkFlags cmd_flags = 0; 3244 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 3245 3246 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 3247 cmd_size += vn_sizeof_uint32_t(&attachmentCount); 3248 if (pAttachments) { 3249 cmd_size += vn_sizeof_array_size(attachmentCount); 3250 for (uint32_t i = 0; i < attachmentCount; i++) 3251 cmd_size += vn_sizeof_VkClearAttachment(&pAttachments[i]); 3252 } else { 3253 cmd_size += vn_sizeof_array_size(0); 3254 } 3255 cmd_size += vn_sizeof_uint32_t(&rectCount); 3256 if (pRects) { 3257 cmd_size += vn_sizeof_array_size(rectCount); 3258 for (uint32_t i = 0; i < rectCount; i++) 3259 cmd_size += vn_sizeof_VkClearRect(&pRects[i]); 3260 } else { 3261 cmd_size += vn_sizeof_array_size(0); 3262 } 3263 3264 return cmd_size; 3265 } 3266 3267 static inline void vn_encode_vkCmdClearAttachments(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects) 3268 { 3269 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdClearAttachments_EXT; 3270 3271 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 3272 vn_encode_VkFlags(enc, &cmd_flags); 3273 3274 vn_encode_VkCommandBuffer(enc, &commandBuffer); 3275 vn_encode_uint32_t(enc, &attachmentCount); 3276 if (pAttachments) { 3277 vn_encode_array_size(enc, attachmentCount); 3278 for (uint32_t i = 0; i < attachmentCount; i++) 3279 vn_encode_VkClearAttachment(enc, &pAttachments[i]); 3280 } else { 3281 vn_encode_array_size(enc, 0); 3282 } 3283 vn_encode_uint32_t(enc, &rectCount); 3284 if (pRects) { 3285 vn_encode_array_size(enc, rectCount); 3286 for (uint32_t i = 0; i < rectCount; i++) 3287 vn_encode_VkClearRect(enc, &pRects[i]); 3288 } else { 3289 vn_encode_array_size(enc, 0); 3290 } 3291 } 3292 3293 static inline size_t vn_sizeof_vkCmdClearAttachments_reply(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects) 3294 { 3295 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdClearAttachments_EXT; 3296 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 3297 3298 /* skip commandBuffer */ 3299 /* skip attachmentCount */ 3300 /* skip pAttachments */ 3301 /* skip rectCount */ 3302 /* skip pRects */ 3303 3304 return cmd_size; 3305 } 3306 3307 static inline void vn_decode_vkCmdClearAttachments_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects) 3308 { 3309 VkCommandTypeEXT command_type; 3310 vn_decode_VkCommandTypeEXT(dec, &command_type); 3311 assert(command_type == VK_COMMAND_TYPE_vkCmdClearAttachments_EXT); 3312 3313 /* skip commandBuffer */ 3314 /* skip attachmentCount */ 3315 /* skip pAttachments */ 3316 /* skip rectCount */ 3317 /* skip pRects */ 3318 } 3319 3320 static inline size_t vn_sizeof_vkCmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions) 3321 { 3322 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdResolveImage_EXT; 3323 const VkFlags cmd_flags = 0; 3324 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 3325 3326 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 3327 cmd_size += vn_sizeof_VkImage(&srcImage); 3328 cmd_size += vn_sizeof_VkImageLayout(&srcImageLayout); 3329 cmd_size += vn_sizeof_VkImage(&dstImage); 3330 cmd_size += vn_sizeof_VkImageLayout(&dstImageLayout); 3331 cmd_size += vn_sizeof_uint32_t(®ionCount); 3332 if (pRegions) { 3333 cmd_size += vn_sizeof_array_size(regionCount); 3334 for (uint32_t i = 0; i < regionCount; i++) 3335 cmd_size += vn_sizeof_VkImageResolve(&pRegions[i]); 3336 } else { 3337 cmd_size += vn_sizeof_array_size(0); 3338 } 3339 3340 return cmd_size; 3341 } 3342 3343 static inline void vn_encode_vkCmdResolveImage(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions) 3344 { 3345 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdResolveImage_EXT; 3346 3347 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 3348 vn_encode_VkFlags(enc, &cmd_flags); 3349 3350 vn_encode_VkCommandBuffer(enc, &commandBuffer); 3351 vn_encode_VkImage(enc, &srcImage); 3352 vn_encode_VkImageLayout(enc, &srcImageLayout); 3353 vn_encode_VkImage(enc, &dstImage); 3354 vn_encode_VkImageLayout(enc, &dstImageLayout); 3355 vn_encode_uint32_t(enc, ®ionCount); 3356 if (pRegions) { 3357 vn_encode_array_size(enc, regionCount); 3358 for (uint32_t i = 0; i < regionCount; i++) 3359 vn_encode_VkImageResolve(enc, &pRegions[i]); 3360 } else { 3361 vn_encode_array_size(enc, 0); 3362 } 3363 } 3364 3365 static inline size_t vn_sizeof_vkCmdResolveImage_reply(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions) 3366 { 3367 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdResolveImage_EXT; 3368 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 3369 3370 /* skip commandBuffer */ 3371 /* skip srcImage */ 3372 /* skip srcImageLayout */ 3373 /* skip dstImage */ 3374 /* skip dstImageLayout */ 3375 /* skip regionCount */ 3376 /* skip pRegions */ 3377 3378 return cmd_size; 3379 } 3380 3381 static inline void vn_decode_vkCmdResolveImage_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions) 3382 { 3383 VkCommandTypeEXT command_type; 3384 vn_decode_VkCommandTypeEXT(dec, &command_type); 3385 assert(command_type == VK_COMMAND_TYPE_vkCmdResolveImage_EXT); 3386 3387 /* skip commandBuffer */ 3388 /* skip srcImage */ 3389 /* skip srcImageLayout */ 3390 /* skip dstImage */ 3391 /* skip dstImageLayout */ 3392 /* skip regionCount */ 3393 /* skip pRegions */ 3394 } 3395 3396 static inline size_t vn_sizeof_vkCmdSetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) 3397 { 3398 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetEvent_EXT; 3399 const VkFlags cmd_flags = 0; 3400 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 3401 3402 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 3403 cmd_size += vn_sizeof_VkEvent(&event); 3404 cmd_size += vn_sizeof_VkFlags(&stageMask); 3405 3406 return cmd_size; 3407 } 3408 3409 static inline void vn_encode_vkCmdSetEvent(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) 3410 { 3411 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetEvent_EXT; 3412 3413 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 3414 vn_encode_VkFlags(enc, &cmd_flags); 3415 3416 vn_encode_VkCommandBuffer(enc, &commandBuffer); 3417 vn_encode_VkEvent(enc, &event); 3418 vn_encode_VkFlags(enc, &stageMask); 3419 } 3420 3421 static inline size_t vn_sizeof_vkCmdSetEvent_reply(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) 3422 { 3423 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetEvent_EXT; 3424 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 3425 3426 /* skip commandBuffer */ 3427 /* skip event */ 3428 /* skip stageMask */ 3429 3430 return cmd_size; 3431 } 3432 3433 static inline void vn_decode_vkCmdSetEvent_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) 3434 { 3435 VkCommandTypeEXT command_type; 3436 vn_decode_VkCommandTypeEXT(dec, &command_type); 3437 assert(command_type == VK_COMMAND_TYPE_vkCmdSetEvent_EXT); 3438 3439 /* skip commandBuffer */ 3440 /* skip event */ 3441 /* skip stageMask */ 3442 } 3443 3444 static inline size_t vn_sizeof_vkCmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) 3445 { 3446 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdResetEvent_EXT; 3447 const VkFlags cmd_flags = 0; 3448 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 3449 3450 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 3451 cmd_size += vn_sizeof_VkEvent(&event); 3452 cmd_size += vn_sizeof_VkFlags(&stageMask); 3453 3454 return cmd_size; 3455 } 3456 3457 static inline void vn_encode_vkCmdResetEvent(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) 3458 { 3459 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdResetEvent_EXT; 3460 3461 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 3462 vn_encode_VkFlags(enc, &cmd_flags); 3463 3464 vn_encode_VkCommandBuffer(enc, &commandBuffer); 3465 vn_encode_VkEvent(enc, &event); 3466 vn_encode_VkFlags(enc, &stageMask); 3467 } 3468 3469 static inline size_t vn_sizeof_vkCmdResetEvent_reply(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) 3470 { 3471 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdResetEvent_EXT; 3472 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 3473 3474 /* skip commandBuffer */ 3475 /* skip event */ 3476 /* skip stageMask */ 3477 3478 return cmd_size; 3479 } 3480 3481 static inline void vn_decode_vkCmdResetEvent_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) 3482 { 3483 VkCommandTypeEXT command_type; 3484 vn_decode_VkCommandTypeEXT(dec, &command_type); 3485 assert(command_type == VK_COMMAND_TYPE_vkCmdResetEvent_EXT); 3486 3487 /* skip commandBuffer */ 3488 /* skip event */ 3489 /* skip stageMask */ 3490 } 3491 3492 static inline size_t vn_sizeof_vkCmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) 3493 { 3494 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdWaitEvents_EXT; 3495 const VkFlags cmd_flags = 0; 3496 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 3497 3498 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 3499 cmd_size += vn_sizeof_uint32_t(&eventCount); 3500 if (pEvents) { 3501 cmd_size += vn_sizeof_array_size(eventCount); 3502 for (uint32_t i = 0; i < eventCount; i++) 3503 cmd_size += vn_sizeof_VkEvent(&pEvents[i]); 3504 } else { 3505 cmd_size += vn_sizeof_array_size(0); 3506 } 3507 cmd_size += vn_sizeof_VkFlags(&srcStageMask); 3508 cmd_size += vn_sizeof_VkFlags(&dstStageMask); 3509 cmd_size += vn_sizeof_uint32_t(&memoryBarrierCount); 3510 if (pMemoryBarriers) { 3511 cmd_size += vn_sizeof_array_size(memoryBarrierCount); 3512 for (uint32_t i = 0; i < memoryBarrierCount; i++) 3513 cmd_size += vn_sizeof_VkMemoryBarrier(&pMemoryBarriers[i]); 3514 } else { 3515 cmd_size += vn_sizeof_array_size(0); 3516 } 3517 cmd_size += vn_sizeof_uint32_t(&bufferMemoryBarrierCount); 3518 if (pBufferMemoryBarriers) { 3519 cmd_size += vn_sizeof_array_size(bufferMemoryBarrierCount); 3520 for (uint32_t i = 0; i < bufferMemoryBarrierCount; i++) 3521 cmd_size += vn_sizeof_VkBufferMemoryBarrier(&pBufferMemoryBarriers[i]); 3522 } else { 3523 cmd_size += vn_sizeof_array_size(0); 3524 } 3525 cmd_size += vn_sizeof_uint32_t(&imageMemoryBarrierCount); 3526 if (pImageMemoryBarriers) { 3527 cmd_size += vn_sizeof_array_size(imageMemoryBarrierCount); 3528 for (uint32_t i = 0; i < imageMemoryBarrierCount; i++) 3529 cmd_size += vn_sizeof_VkImageMemoryBarrier(&pImageMemoryBarriers[i]); 3530 } else { 3531 cmd_size += vn_sizeof_array_size(0); 3532 } 3533 3534 return cmd_size; 3535 } 3536 3537 static inline void vn_encode_vkCmdWaitEvents(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) 3538 { 3539 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdWaitEvents_EXT; 3540 3541 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 3542 vn_encode_VkFlags(enc, &cmd_flags); 3543 3544 vn_encode_VkCommandBuffer(enc, &commandBuffer); 3545 vn_encode_uint32_t(enc, &eventCount); 3546 if (pEvents) { 3547 vn_encode_array_size(enc, eventCount); 3548 for (uint32_t i = 0; i < eventCount; i++) 3549 vn_encode_VkEvent(enc, &pEvents[i]); 3550 } else { 3551 vn_encode_array_size(enc, 0); 3552 } 3553 vn_encode_VkFlags(enc, &srcStageMask); 3554 vn_encode_VkFlags(enc, &dstStageMask); 3555 vn_encode_uint32_t(enc, &memoryBarrierCount); 3556 if (pMemoryBarriers) { 3557 vn_encode_array_size(enc, memoryBarrierCount); 3558 for (uint32_t i = 0; i < memoryBarrierCount; i++) 3559 vn_encode_VkMemoryBarrier(enc, &pMemoryBarriers[i]); 3560 } else { 3561 vn_encode_array_size(enc, 0); 3562 } 3563 vn_encode_uint32_t(enc, &bufferMemoryBarrierCount); 3564 if (pBufferMemoryBarriers) { 3565 vn_encode_array_size(enc, bufferMemoryBarrierCount); 3566 for (uint32_t i = 0; i < bufferMemoryBarrierCount; i++) 3567 vn_encode_VkBufferMemoryBarrier(enc, &pBufferMemoryBarriers[i]); 3568 } else { 3569 vn_encode_array_size(enc, 0); 3570 } 3571 vn_encode_uint32_t(enc, &imageMemoryBarrierCount); 3572 if (pImageMemoryBarriers) { 3573 vn_encode_array_size(enc, imageMemoryBarrierCount); 3574 for (uint32_t i = 0; i < imageMemoryBarrierCount; i++) 3575 vn_encode_VkImageMemoryBarrier(enc, &pImageMemoryBarriers[i]); 3576 } else { 3577 vn_encode_array_size(enc, 0); 3578 } 3579 } 3580 3581 static inline size_t vn_sizeof_vkCmdWaitEvents_reply(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) 3582 { 3583 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdWaitEvents_EXT; 3584 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 3585 3586 /* skip commandBuffer */ 3587 /* skip eventCount */ 3588 /* skip pEvents */ 3589 /* skip srcStageMask */ 3590 /* skip dstStageMask */ 3591 /* skip memoryBarrierCount */ 3592 /* skip pMemoryBarriers */ 3593 /* skip bufferMemoryBarrierCount */ 3594 /* skip pBufferMemoryBarriers */ 3595 /* skip imageMemoryBarrierCount */ 3596 /* skip pImageMemoryBarriers */ 3597 3598 return cmd_size; 3599 } 3600 3601 static inline void vn_decode_vkCmdWaitEvents_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) 3602 { 3603 VkCommandTypeEXT command_type; 3604 vn_decode_VkCommandTypeEXT(dec, &command_type); 3605 assert(command_type == VK_COMMAND_TYPE_vkCmdWaitEvents_EXT); 3606 3607 /* skip commandBuffer */ 3608 /* skip eventCount */ 3609 /* skip pEvents */ 3610 /* skip srcStageMask */ 3611 /* skip dstStageMask */ 3612 /* skip memoryBarrierCount */ 3613 /* skip pMemoryBarriers */ 3614 /* skip bufferMemoryBarrierCount */ 3615 /* skip pBufferMemoryBarriers */ 3616 /* skip imageMemoryBarrierCount */ 3617 /* skip pImageMemoryBarriers */ 3618 } 3619 3620 static inline size_t vn_sizeof_vkCmdPipelineBarrier(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) 3621 { 3622 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdPipelineBarrier_EXT; 3623 const VkFlags cmd_flags = 0; 3624 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 3625 3626 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 3627 cmd_size += vn_sizeof_VkFlags(&srcStageMask); 3628 cmd_size += vn_sizeof_VkFlags(&dstStageMask); 3629 cmd_size += vn_sizeof_VkFlags(&dependencyFlags); 3630 cmd_size += vn_sizeof_uint32_t(&memoryBarrierCount); 3631 if (pMemoryBarriers) { 3632 cmd_size += vn_sizeof_array_size(memoryBarrierCount); 3633 for (uint32_t i = 0; i < memoryBarrierCount; i++) 3634 cmd_size += vn_sizeof_VkMemoryBarrier(&pMemoryBarriers[i]); 3635 } else { 3636 cmd_size += vn_sizeof_array_size(0); 3637 } 3638 cmd_size += vn_sizeof_uint32_t(&bufferMemoryBarrierCount); 3639 if (pBufferMemoryBarriers) { 3640 cmd_size += vn_sizeof_array_size(bufferMemoryBarrierCount); 3641 for (uint32_t i = 0; i < bufferMemoryBarrierCount; i++) 3642 cmd_size += vn_sizeof_VkBufferMemoryBarrier(&pBufferMemoryBarriers[i]); 3643 } else { 3644 cmd_size += vn_sizeof_array_size(0); 3645 } 3646 cmd_size += vn_sizeof_uint32_t(&imageMemoryBarrierCount); 3647 if (pImageMemoryBarriers) { 3648 cmd_size += vn_sizeof_array_size(imageMemoryBarrierCount); 3649 for (uint32_t i = 0; i < imageMemoryBarrierCount; i++) 3650 cmd_size += vn_sizeof_VkImageMemoryBarrier(&pImageMemoryBarriers[i]); 3651 } else { 3652 cmd_size += vn_sizeof_array_size(0); 3653 } 3654 3655 return cmd_size; 3656 } 3657 3658 static inline void vn_encode_vkCmdPipelineBarrier(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) 3659 { 3660 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdPipelineBarrier_EXT; 3661 3662 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 3663 vn_encode_VkFlags(enc, &cmd_flags); 3664 3665 vn_encode_VkCommandBuffer(enc, &commandBuffer); 3666 vn_encode_VkFlags(enc, &srcStageMask); 3667 vn_encode_VkFlags(enc, &dstStageMask); 3668 vn_encode_VkFlags(enc, &dependencyFlags); 3669 vn_encode_uint32_t(enc, &memoryBarrierCount); 3670 if (pMemoryBarriers) { 3671 vn_encode_array_size(enc, memoryBarrierCount); 3672 for (uint32_t i = 0; i < memoryBarrierCount; i++) 3673 vn_encode_VkMemoryBarrier(enc, &pMemoryBarriers[i]); 3674 } else { 3675 vn_encode_array_size(enc, 0); 3676 } 3677 vn_encode_uint32_t(enc, &bufferMemoryBarrierCount); 3678 if (pBufferMemoryBarriers) { 3679 vn_encode_array_size(enc, bufferMemoryBarrierCount); 3680 for (uint32_t i = 0; i < bufferMemoryBarrierCount; i++) 3681 vn_encode_VkBufferMemoryBarrier(enc, &pBufferMemoryBarriers[i]); 3682 } else { 3683 vn_encode_array_size(enc, 0); 3684 } 3685 vn_encode_uint32_t(enc, &imageMemoryBarrierCount); 3686 if (pImageMemoryBarriers) { 3687 vn_encode_array_size(enc, imageMemoryBarrierCount); 3688 for (uint32_t i = 0; i < imageMemoryBarrierCount; i++) 3689 vn_encode_VkImageMemoryBarrier(enc, &pImageMemoryBarriers[i]); 3690 } else { 3691 vn_encode_array_size(enc, 0); 3692 } 3693 } 3694 3695 static inline size_t vn_sizeof_vkCmdPipelineBarrier_reply(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) 3696 { 3697 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdPipelineBarrier_EXT; 3698 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 3699 3700 /* skip commandBuffer */ 3701 /* skip srcStageMask */ 3702 /* skip dstStageMask */ 3703 /* skip dependencyFlags */ 3704 /* skip memoryBarrierCount */ 3705 /* skip pMemoryBarriers */ 3706 /* skip bufferMemoryBarrierCount */ 3707 /* skip pBufferMemoryBarriers */ 3708 /* skip imageMemoryBarrierCount */ 3709 /* skip pImageMemoryBarriers */ 3710 3711 return cmd_size; 3712 } 3713 3714 static inline void vn_decode_vkCmdPipelineBarrier_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) 3715 { 3716 VkCommandTypeEXT command_type; 3717 vn_decode_VkCommandTypeEXT(dec, &command_type); 3718 assert(command_type == VK_COMMAND_TYPE_vkCmdPipelineBarrier_EXT); 3719 3720 /* skip commandBuffer */ 3721 /* skip srcStageMask */ 3722 /* skip dstStageMask */ 3723 /* skip dependencyFlags */ 3724 /* skip memoryBarrierCount */ 3725 /* skip pMemoryBarriers */ 3726 /* skip bufferMemoryBarrierCount */ 3727 /* skip pBufferMemoryBarriers */ 3728 /* skip imageMemoryBarrierCount */ 3729 /* skip pImageMemoryBarriers */ 3730 } 3731 3732 static inline size_t vn_sizeof_vkCmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) 3733 { 3734 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBeginQuery_EXT; 3735 const VkFlags cmd_flags = 0; 3736 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 3737 3738 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 3739 cmd_size += vn_sizeof_VkQueryPool(&queryPool); 3740 cmd_size += vn_sizeof_uint32_t(&query); 3741 cmd_size += vn_sizeof_VkFlags(&flags); 3742 3743 return cmd_size; 3744 } 3745 3746 static inline void vn_encode_vkCmdBeginQuery(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) 3747 { 3748 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBeginQuery_EXT; 3749 3750 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 3751 vn_encode_VkFlags(enc, &cmd_flags); 3752 3753 vn_encode_VkCommandBuffer(enc, &commandBuffer); 3754 vn_encode_VkQueryPool(enc, &queryPool); 3755 vn_encode_uint32_t(enc, &query); 3756 vn_encode_VkFlags(enc, &flags); 3757 } 3758 3759 static inline size_t vn_sizeof_vkCmdBeginQuery_reply(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) 3760 { 3761 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBeginQuery_EXT; 3762 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 3763 3764 /* skip commandBuffer */ 3765 /* skip queryPool */ 3766 /* skip query */ 3767 /* skip flags */ 3768 3769 return cmd_size; 3770 } 3771 3772 static inline void vn_decode_vkCmdBeginQuery_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) 3773 { 3774 VkCommandTypeEXT command_type; 3775 vn_decode_VkCommandTypeEXT(dec, &command_type); 3776 assert(command_type == VK_COMMAND_TYPE_vkCmdBeginQuery_EXT); 3777 3778 /* skip commandBuffer */ 3779 /* skip queryPool */ 3780 /* skip query */ 3781 /* skip flags */ 3782 } 3783 3784 static inline size_t vn_sizeof_vkCmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) 3785 { 3786 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdEndQuery_EXT; 3787 const VkFlags cmd_flags = 0; 3788 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 3789 3790 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 3791 cmd_size += vn_sizeof_VkQueryPool(&queryPool); 3792 cmd_size += vn_sizeof_uint32_t(&query); 3793 3794 return cmd_size; 3795 } 3796 3797 static inline void vn_encode_vkCmdEndQuery(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) 3798 { 3799 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdEndQuery_EXT; 3800 3801 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 3802 vn_encode_VkFlags(enc, &cmd_flags); 3803 3804 vn_encode_VkCommandBuffer(enc, &commandBuffer); 3805 vn_encode_VkQueryPool(enc, &queryPool); 3806 vn_encode_uint32_t(enc, &query); 3807 } 3808 3809 static inline size_t vn_sizeof_vkCmdEndQuery_reply(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) 3810 { 3811 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdEndQuery_EXT; 3812 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 3813 3814 /* skip commandBuffer */ 3815 /* skip queryPool */ 3816 /* skip query */ 3817 3818 return cmd_size; 3819 } 3820 3821 static inline void vn_decode_vkCmdEndQuery_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) 3822 { 3823 VkCommandTypeEXT command_type; 3824 vn_decode_VkCommandTypeEXT(dec, &command_type); 3825 assert(command_type == VK_COMMAND_TYPE_vkCmdEndQuery_EXT); 3826 3827 /* skip commandBuffer */ 3828 /* skip queryPool */ 3829 /* skip query */ 3830 } 3831 3832 static inline size_t vn_sizeof_vkCmdResetQueryPool(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) 3833 { 3834 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdResetQueryPool_EXT; 3835 const VkFlags cmd_flags = 0; 3836 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 3837 3838 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 3839 cmd_size += vn_sizeof_VkQueryPool(&queryPool); 3840 cmd_size += vn_sizeof_uint32_t(&firstQuery); 3841 cmd_size += vn_sizeof_uint32_t(&queryCount); 3842 3843 return cmd_size; 3844 } 3845 3846 static inline void vn_encode_vkCmdResetQueryPool(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) 3847 { 3848 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdResetQueryPool_EXT; 3849 3850 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 3851 vn_encode_VkFlags(enc, &cmd_flags); 3852 3853 vn_encode_VkCommandBuffer(enc, &commandBuffer); 3854 vn_encode_VkQueryPool(enc, &queryPool); 3855 vn_encode_uint32_t(enc, &firstQuery); 3856 vn_encode_uint32_t(enc, &queryCount); 3857 } 3858 3859 static inline size_t vn_sizeof_vkCmdResetQueryPool_reply(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) 3860 { 3861 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdResetQueryPool_EXT; 3862 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 3863 3864 /* skip commandBuffer */ 3865 /* skip queryPool */ 3866 /* skip firstQuery */ 3867 /* skip queryCount */ 3868 3869 return cmd_size; 3870 } 3871 3872 static inline void vn_decode_vkCmdResetQueryPool_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) 3873 { 3874 VkCommandTypeEXT command_type; 3875 vn_decode_VkCommandTypeEXT(dec, &command_type); 3876 assert(command_type == VK_COMMAND_TYPE_vkCmdResetQueryPool_EXT); 3877 3878 /* skip commandBuffer */ 3879 /* skip queryPool */ 3880 /* skip firstQuery */ 3881 /* skip queryCount */ 3882 } 3883 3884 static inline size_t vn_sizeof_vkCmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query) 3885 { 3886 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdWriteTimestamp_EXT; 3887 const VkFlags cmd_flags = 0; 3888 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 3889 3890 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 3891 cmd_size += vn_sizeof_VkPipelineStageFlagBits(&pipelineStage); 3892 cmd_size += vn_sizeof_VkQueryPool(&queryPool); 3893 cmd_size += vn_sizeof_uint32_t(&query); 3894 3895 return cmd_size; 3896 } 3897 3898 static inline void vn_encode_vkCmdWriteTimestamp(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query) 3899 { 3900 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdWriteTimestamp_EXT; 3901 3902 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 3903 vn_encode_VkFlags(enc, &cmd_flags); 3904 3905 vn_encode_VkCommandBuffer(enc, &commandBuffer); 3906 vn_encode_VkPipelineStageFlagBits(enc, &pipelineStage); 3907 vn_encode_VkQueryPool(enc, &queryPool); 3908 vn_encode_uint32_t(enc, &query); 3909 } 3910 3911 static inline size_t vn_sizeof_vkCmdWriteTimestamp_reply(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query) 3912 { 3913 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdWriteTimestamp_EXT; 3914 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 3915 3916 /* skip commandBuffer */ 3917 /* skip pipelineStage */ 3918 /* skip queryPool */ 3919 /* skip query */ 3920 3921 return cmd_size; 3922 } 3923 3924 static inline void vn_decode_vkCmdWriteTimestamp_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query) 3925 { 3926 VkCommandTypeEXT command_type; 3927 vn_decode_VkCommandTypeEXT(dec, &command_type); 3928 assert(command_type == VK_COMMAND_TYPE_vkCmdWriteTimestamp_EXT); 3929 3930 /* skip commandBuffer */ 3931 /* skip pipelineStage */ 3932 /* skip queryPool */ 3933 /* skip query */ 3934 } 3935 3936 static inline size_t vn_sizeof_vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) 3937 { 3938 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdCopyQueryPoolResults_EXT; 3939 const VkFlags cmd_flags = 0; 3940 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 3941 3942 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 3943 cmd_size += vn_sizeof_VkQueryPool(&queryPool); 3944 cmd_size += vn_sizeof_uint32_t(&firstQuery); 3945 cmd_size += vn_sizeof_uint32_t(&queryCount); 3946 cmd_size += vn_sizeof_VkBuffer(&dstBuffer); 3947 cmd_size += vn_sizeof_VkDeviceSize(&dstOffset); 3948 cmd_size += vn_sizeof_VkDeviceSize(&stride); 3949 cmd_size += vn_sizeof_VkFlags(&flags); 3950 3951 return cmd_size; 3952 } 3953 3954 static inline void vn_encode_vkCmdCopyQueryPoolResults(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) 3955 { 3956 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdCopyQueryPoolResults_EXT; 3957 3958 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 3959 vn_encode_VkFlags(enc, &cmd_flags); 3960 3961 vn_encode_VkCommandBuffer(enc, &commandBuffer); 3962 vn_encode_VkQueryPool(enc, &queryPool); 3963 vn_encode_uint32_t(enc, &firstQuery); 3964 vn_encode_uint32_t(enc, &queryCount); 3965 vn_encode_VkBuffer(enc, &dstBuffer); 3966 vn_encode_VkDeviceSize(enc, &dstOffset); 3967 vn_encode_VkDeviceSize(enc, &stride); 3968 vn_encode_VkFlags(enc, &flags); 3969 } 3970 3971 static inline size_t vn_sizeof_vkCmdCopyQueryPoolResults_reply(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) 3972 { 3973 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdCopyQueryPoolResults_EXT; 3974 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 3975 3976 /* skip commandBuffer */ 3977 /* skip queryPool */ 3978 /* skip firstQuery */ 3979 /* skip queryCount */ 3980 /* skip dstBuffer */ 3981 /* skip dstOffset */ 3982 /* skip stride */ 3983 /* skip flags */ 3984 3985 return cmd_size; 3986 } 3987 3988 static inline void vn_decode_vkCmdCopyQueryPoolResults_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) 3989 { 3990 VkCommandTypeEXT command_type; 3991 vn_decode_VkCommandTypeEXT(dec, &command_type); 3992 assert(command_type == VK_COMMAND_TYPE_vkCmdCopyQueryPoolResults_EXT); 3993 3994 /* skip commandBuffer */ 3995 /* skip queryPool */ 3996 /* skip firstQuery */ 3997 /* skip queryCount */ 3998 /* skip dstBuffer */ 3999 /* skip dstOffset */ 4000 /* skip stride */ 4001 /* skip flags */ 4002 } 4003 4004 static inline size_t vn_sizeof_vkCmdPushConstants(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues) 4005 { 4006 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdPushConstants_EXT; 4007 const VkFlags cmd_flags = 0; 4008 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 4009 4010 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 4011 cmd_size += vn_sizeof_VkPipelineLayout(&layout); 4012 cmd_size += vn_sizeof_VkFlags(&stageFlags); 4013 cmd_size += vn_sizeof_uint32_t(&offset); 4014 cmd_size += vn_sizeof_uint32_t(&size); 4015 if (pValues) { 4016 cmd_size += vn_sizeof_array_size(size); 4017 cmd_size += vn_sizeof_blob_array(pValues, size); 4018 } else { 4019 cmd_size += vn_sizeof_array_size(0); 4020 } 4021 4022 return cmd_size; 4023 } 4024 4025 static inline void vn_encode_vkCmdPushConstants(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues) 4026 { 4027 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdPushConstants_EXT; 4028 4029 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 4030 vn_encode_VkFlags(enc, &cmd_flags); 4031 4032 vn_encode_VkCommandBuffer(enc, &commandBuffer); 4033 vn_encode_VkPipelineLayout(enc, &layout); 4034 vn_encode_VkFlags(enc, &stageFlags); 4035 vn_encode_uint32_t(enc, &offset); 4036 vn_encode_uint32_t(enc, &size); 4037 if (pValues) { 4038 vn_encode_array_size(enc, size); 4039 vn_encode_blob_array(enc, pValues, size); 4040 } else { 4041 vn_encode_array_size(enc, 0); 4042 } 4043 } 4044 4045 static inline size_t vn_sizeof_vkCmdPushConstants_reply(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues) 4046 { 4047 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdPushConstants_EXT; 4048 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 4049 4050 /* skip commandBuffer */ 4051 /* skip layout */ 4052 /* skip stageFlags */ 4053 /* skip offset */ 4054 /* skip size */ 4055 /* skip pValues */ 4056 4057 return cmd_size; 4058 } 4059 4060 static inline void vn_decode_vkCmdPushConstants_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues) 4061 { 4062 VkCommandTypeEXT command_type; 4063 vn_decode_VkCommandTypeEXT(dec, &command_type); 4064 assert(command_type == VK_COMMAND_TYPE_vkCmdPushConstants_EXT); 4065 4066 /* skip commandBuffer */ 4067 /* skip layout */ 4068 /* skip stageFlags */ 4069 /* skip offset */ 4070 /* skip size */ 4071 /* skip pValues */ 4072 } 4073 4074 static inline size_t vn_sizeof_vkCmdBeginRenderPass(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) 4075 { 4076 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBeginRenderPass_EXT; 4077 const VkFlags cmd_flags = 0; 4078 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 4079 4080 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 4081 cmd_size += vn_sizeof_simple_pointer(pRenderPassBegin); 4082 if (pRenderPassBegin) 4083 cmd_size += vn_sizeof_VkRenderPassBeginInfo(pRenderPassBegin); 4084 cmd_size += vn_sizeof_VkSubpassContents(&contents); 4085 4086 return cmd_size; 4087 } 4088 4089 static inline void vn_encode_vkCmdBeginRenderPass(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) 4090 { 4091 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBeginRenderPass_EXT; 4092 4093 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 4094 vn_encode_VkFlags(enc, &cmd_flags); 4095 4096 vn_encode_VkCommandBuffer(enc, &commandBuffer); 4097 if (vn_encode_simple_pointer(enc, pRenderPassBegin)) 4098 vn_encode_VkRenderPassBeginInfo(enc, pRenderPassBegin); 4099 vn_encode_VkSubpassContents(enc, &contents); 4100 } 4101 4102 static inline size_t vn_sizeof_vkCmdBeginRenderPass_reply(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) 4103 { 4104 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBeginRenderPass_EXT; 4105 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 4106 4107 /* skip commandBuffer */ 4108 /* skip pRenderPassBegin */ 4109 /* skip contents */ 4110 4111 return cmd_size; 4112 } 4113 4114 static inline void vn_decode_vkCmdBeginRenderPass_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) 4115 { 4116 VkCommandTypeEXT command_type; 4117 vn_decode_VkCommandTypeEXT(dec, &command_type); 4118 assert(command_type == VK_COMMAND_TYPE_vkCmdBeginRenderPass_EXT); 4119 4120 /* skip commandBuffer */ 4121 /* skip pRenderPassBegin */ 4122 /* skip contents */ 4123 } 4124 4125 static inline size_t vn_sizeof_vkCmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpassContents contents) 4126 { 4127 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdNextSubpass_EXT; 4128 const VkFlags cmd_flags = 0; 4129 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 4130 4131 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 4132 cmd_size += vn_sizeof_VkSubpassContents(&contents); 4133 4134 return cmd_size; 4135 } 4136 4137 static inline void vn_encode_vkCmdNextSubpass(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkSubpassContents contents) 4138 { 4139 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdNextSubpass_EXT; 4140 4141 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 4142 vn_encode_VkFlags(enc, &cmd_flags); 4143 4144 vn_encode_VkCommandBuffer(enc, &commandBuffer); 4145 vn_encode_VkSubpassContents(enc, &contents); 4146 } 4147 4148 static inline size_t vn_sizeof_vkCmdNextSubpass_reply(VkCommandBuffer commandBuffer, VkSubpassContents contents) 4149 { 4150 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdNextSubpass_EXT; 4151 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 4152 4153 /* skip commandBuffer */ 4154 /* skip contents */ 4155 4156 return cmd_size; 4157 } 4158 4159 static inline void vn_decode_vkCmdNextSubpass_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkSubpassContents contents) 4160 { 4161 VkCommandTypeEXT command_type; 4162 vn_decode_VkCommandTypeEXT(dec, &command_type); 4163 assert(command_type == VK_COMMAND_TYPE_vkCmdNextSubpass_EXT); 4164 4165 /* skip commandBuffer */ 4166 /* skip contents */ 4167 } 4168 4169 static inline size_t vn_sizeof_vkCmdEndRenderPass(VkCommandBuffer commandBuffer) 4170 { 4171 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdEndRenderPass_EXT; 4172 const VkFlags cmd_flags = 0; 4173 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 4174 4175 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 4176 4177 return cmd_size; 4178 } 4179 4180 static inline void vn_encode_vkCmdEndRenderPass(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer) 4181 { 4182 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdEndRenderPass_EXT; 4183 4184 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 4185 vn_encode_VkFlags(enc, &cmd_flags); 4186 4187 vn_encode_VkCommandBuffer(enc, &commandBuffer); 4188 } 4189 4190 static inline size_t vn_sizeof_vkCmdEndRenderPass_reply(VkCommandBuffer commandBuffer) 4191 { 4192 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdEndRenderPass_EXT; 4193 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 4194 4195 /* skip commandBuffer */ 4196 4197 return cmd_size; 4198 } 4199 4200 static inline void vn_decode_vkCmdEndRenderPass_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer) 4201 { 4202 VkCommandTypeEXT command_type; 4203 vn_decode_VkCommandTypeEXT(dec, &command_type); 4204 assert(command_type == VK_COMMAND_TYPE_vkCmdEndRenderPass_EXT); 4205 4206 /* skip commandBuffer */ 4207 } 4208 4209 static inline size_t vn_sizeof_vkCmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) 4210 { 4211 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdExecuteCommands_EXT; 4212 const VkFlags cmd_flags = 0; 4213 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 4214 4215 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 4216 cmd_size += vn_sizeof_uint32_t(&commandBufferCount); 4217 if (pCommandBuffers) { 4218 cmd_size += vn_sizeof_array_size(commandBufferCount); 4219 for (uint32_t i = 0; i < commandBufferCount; i++) 4220 cmd_size += vn_sizeof_VkCommandBuffer(&pCommandBuffers[i]); 4221 } else { 4222 cmd_size += vn_sizeof_array_size(0); 4223 } 4224 4225 return cmd_size; 4226 } 4227 4228 static inline void vn_encode_vkCmdExecuteCommands(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) 4229 { 4230 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdExecuteCommands_EXT; 4231 4232 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 4233 vn_encode_VkFlags(enc, &cmd_flags); 4234 4235 vn_encode_VkCommandBuffer(enc, &commandBuffer); 4236 vn_encode_uint32_t(enc, &commandBufferCount); 4237 if (pCommandBuffers) { 4238 vn_encode_array_size(enc, commandBufferCount); 4239 for (uint32_t i = 0; i < commandBufferCount; i++) 4240 vn_encode_VkCommandBuffer(enc, &pCommandBuffers[i]); 4241 } else { 4242 vn_encode_array_size(enc, 0); 4243 } 4244 } 4245 4246 static inline size_t vn_sizeof_vkCmdExecuteCommands_reply(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) 4247 { 4248 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdExecuteCommands_EXT; 4249 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 4250 4251 /* skip commandBuffer */ 4252 /* skip commandBufferCount */ 4253 /* skip pCommandBuffers */ 4254 4255 return cmd_size; 4256 } 4257 4258 static inline void vn_decode_vkCmdExecuteCommands_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) 4259 { 4260 VkCommandTypeEXT command_type; 4261 vn_decode_VkCommandTypeEXT(dec, &command_type); 4262 assert(command_type == VK_COMMAND_TYPE_vkCmdExecuteCommands_EXT); 4263 4264 /* skip commandBuffer */ 4265 /* skip commandBufferCount */ 4266 /* skip pCommandBuffers */ 4267 } 4268 4269 static inline size_t vn_sizeof_vkCmdSetDeviceMask(VkCommandBuffer commandBuffer, uint32_t deviceMask) 4270 { 4271 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetDeviceMask_EXT; 4272 const VkFlags cmd_flags = 0; 4273 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 4274 4275 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 4276 cmd_size += vn_sizeof_uint32_t(&deviceMask); 4277 4278 return cmd_size; 4279 } 4280 4281 static inline void vn_encode_vkCmdSetDeviceMask(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t deviceMask) 4282 { 4283 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetDeviceMask_EXT; 4284 4285 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 4286 vn_encode_VkFlags(enc, &cmd_flags); 4287 4288 vn_encode_VkCommandBuffer(enc, &commandBuffer); 4289 vn_encode_uint32_t(enc, &deviceMask); 4290 } 4291 4292 static inline size_t vn_sizeof_vkCmdSetDeviceMask_reply(VkCommandBuffer commandBuffer, uint32_t deviceMask) 4293 { 4294 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetDeviceMask_EXT; 4295 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 4296 4297 /* skip commandBuffer */ 4298 /* skip deviceMask */ 4299 4300 return cmd_size; 4301 } 4302 4303 static inline void vn_decode_vkCmdSetDeviceMask_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, uint32_t deviceMask) 4304 { 4305 VkCommandTypeEXT command_type; 4306 vn_decode_VkCommandTypeEXT(dec, &command_type); 4307 assert(command_type == VK_COMMAND_TYPE_vkCmdSetDeviceMask_EXT); 4308 4309 /* skip commandBuffer */ 4310 /* skip deviceMask */ 4311 } 4312 4313 static inline size_t vn_sizeof_vkCmdDispatchBase(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) 4314 { 4315 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDispatchBase_EXT; 4316 const VkFlags cmd_flags = 0; 4317 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 4318 4319 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 4320 cmd_size += vn_sizeof_uint32_t(&baseGroupX); 4321 cmd_size += vn_sizeof_uint32_t(&baseGroupY); 4322 cmd_size += vn_sizeof_uint32_t(&baseGroupZ); 4323 cmd_size += vn_sizeof_uint32_t(&groupCountX); 4324 cmd_size += vn_sizeof_uint32_t(&groupCountY); 4325 cmd_size += vn_sizeof_uint32_t(&groupCountZ); 4326 4327 return cmd_size; 4328 } 4329 4330 static inline void vn_encode_vkCmdDispatchBase(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) 4331 { 4332 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDispatchBase_EXT; 4333 4334 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 4335 vn_encode_VkFlags(enc, &cmd_flags); 4336 4337 vn_encode_VkCommandBuffer(enc, &commandBuffer); 4338 vn_encode_uint32_t(enc, &baseGroupX); 4339 vn_encode_uint32_t(enc, &baseGroupY); 4340 vn_encode_uint32_t(enc, &baseGroupZ); 4341 vn_encode_uint32_t(enc, &groupCountX); 4342 vn_encode_uint32_t(enc, &groupCountY); 4343 vn_encode_uint32_t(enc, &groupCountZ); 4344 } 4345 4346 static inline size_t vn_sizeof_vkCmdDispatchBase_reply(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) 4347 { 4348 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDispatchBase_EXT; 4349 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 4350 4351 /* skip commandBuffer */ 4352 /* skip baseGroupX */ 4353 /* skip baseGroupY */ 4354 /* skip baseGroupZ */ 4355 /* skip groupCountX */ 4356 /* skip groupCountY */ 4357 /* skip groupCountZ */ 4358 4359 return cmd_size; 4360 } 4361 4362 static inline void vn_decode_vkCmdDispatchBase_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) 4363 { 4364 VkCommandTypeEXT command_type; 4365 vn_decode_VkCommandTypeEXT(dec, &command_type); 4366 assert(command_type == VK_COMMAND_TYPE_vkCmdDispatchBase_EXT); 4367 4368 /* skip commandBuffer */ 4369 /* skip baseGroupX */ 4370 /* skip baseGroupY */ 4371 /* skip baseGroupZ */ 4372 /* skip groupCountX */ 4373 /* skip groupCountY */ 4374 /* skip groupCountZ */ 4375 } 4376 4377 static inline size_t vn_sizeof_vkCmdBeginRenderPass2(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo) 4378 { 4379 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBeginRenderPass2_EXT; 4380 const VkFlags cmd_flags = 0; 4381 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 4382 4383 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 4384 cmd_size += vn_sizeof_simple_pointer(pRenderPassBegin); 4385 if (pRenderPassBegin) 4386 cmd_size += vn_sizeof_VkRenderPassBeginInfo(pRenderPassBegin); 4387 cmd_size += vn_sizeof_simple_pointer(pSubpassBeginInfo); 4388 if (pSubpassBeginInfo) 4389 cmd_size += vn_sizeof_VkSubpassBeginInfo(pSubpassBeginInfo); 4390 4391 return cmd_size; 4392 } 4393 4394 static inline void vn_encode_vkCmdBeginRenderPass2(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo) 4395 { 4396 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBeginRenderPass2_EXT; 4397 4398 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 4399 vn_encode_VkFlags(enc, &cmd_flags); 4400 4401 vn_encode_VkCommandBuffer(enc, &commandBuffer); 4402 if (vn_encode_simple_pointer(enc, pRenderPassBegin)) 4403 vn_encode_VkRenderPassBeginInfo(enc, pRenderPassBegin); 4404 if (vn_encode_simple_pointer(enc, pSubpassBeginInfo)) 4405 vn_encode_VkSubpassBeginInfo(enc, pSubpassBeginInfo); 4406 } 4407 4408 static inline size_t vn_sizeof_vkCmdBeginRenderPass2_reply(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo) 4409 { 4410 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBeginRenderPass2_EXT; 4411 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 4412 4413 /* skip commandBuffer */ 4414 /* skip pRenderPassBegin */ 4415 /* skip pSubpassBeginInfo */ 4416 4417 return cmd_size; 4418 } 4419 4420 static inline void vn_decode_vkCmdBeginRenderPass2_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo) 4421 { 4422 VkCommandTypeEXT command_type; 4423 vn_decode_VkCommandTypeEXT(dec, &command_type); 4424 assert(command_type == VK_COMMAND_TYPE_vkCmdBeginRenderPass2_EXT); 4425 4426 /* skip commandBuffer */ 4427 /* skip pRenderPassBegin */ 4428 /* skip pSubpassBeginInfo */ 4429 } 4430 4431 static inline size_t vn_sizeof_vkCmdNextSubpass2(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo) 4432 { 4433 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdNextSubpass2_EXT; 4434 const VkFlags cmd_flags = 0; 4435 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 4436 4437 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 4438 cmd_size += vn_sizeof_simple_pointer(pSubpassBeginInfo); 4439 if (pSubpassBeginInfo) 4440 cmd_size += vn_sizeof_VkSubpassBeginInfo(pSubpassBeginInfo); 4441 cmd_size += vn_sizeof_simple_pointer(pSubpassEndInfo); 4442 if (pSubpassEndInfo) 4443 cmd_size += vn_sizeof_VkSubpassEndInfo(pSubpassEndInfo); 4444 4445 return cmd_size; 4446 } 4447 4448 static inline void vn_encode_vkCmdNextSubpass2(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo) 4449 { 4450 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdNextSubpass2_EXT; 4451 4452 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 4453 vn_encode_VkFlags(enc, &cmd_flags); 4454 4455 vn_encode_VkCommandBuffer(enc, &commandBuffer); 4456 if (vn_encode_simple_pointer(enc, pSubpassBeginInfo)) 4457 vn_encode_VkSubpassBeginInfo(enc, pSubpassBeginInfo); 4458 if (vn_encode_simple_pointer(enc, pSubpassEndInfo)) 4459 vn_encode_VkSubpassEndInfo(enc, pSubpassEndInfo); 4460 } 4461 4462 static inline size_t vn_sizeof_vkCmdNextSubpass2_reply(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo) 4463 { 4464 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdNextSubpass2_EXT; 4465 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 4466 4467 /* skip commandBuffer */ 4468 /* skip pSubpassBeginInfo */ 4469 /* skip pSubpassEndInfo */ 4470 4471 return cmd_size; 4472 } 4473 4474 static inline void vn_decode_vkCmdNextSubpass2_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo) 4475 { 4476 VkCommandTypeEXT command_type; 4477 vn_decode_VkCommandTypeEXT(dec, &command_type); 4478 assert(command_type == VK_COMMAND_TYPE_vkCmdNextSubpass2_EXT); 4479 4480 /* skip commandBuffer */ 4481 /* skip pSubpassBeginInfo */ 4482 /* skip pSubpassEndInfo */ 4483 } 4484 4485 static inline size_t vn_sizeof_vkCmdEndRenderPass2(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo) 4486 { 4487 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdEndRenderPass2_EXT; 4488 const VkFlags cmd_flags = 0; 4489 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 4490 4491 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 4492 cmd_size += vn_sizeof_simple_pointer(pSubpassEndInfo); 4493 if (pSubpassEndInfo) 4494 cmd_size += vn_sizeof_VkSubpassEndInfo(pSubpassEndInfo); 4495 4496 return cmd_size; 4497 } 4498 4499 static inline void vn_encode_vkCmdEndRenderPass2(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo) 4500 { 4501 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdEndRenderPass2_EXT; 4502 4503 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 4504 vn_encode_VkFlags(enc, &cmd_flags); 4505 4506 vn_encode_VkCommandBuffer(enc, &commandBuffer); 4507 if (vn_encode_simple_pointer(enc, pSubpassEndInfo)) 4508 vn_encode_VkSubpassEndInfo(enc, pSubpassEndInfo); 4509 } 4510 4511 static inline size_t vn_sizeof_vkCmdEndRenderPass2_reply(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo) 4512 { 4513 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdEndRenderPass2_EXT; 4514 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 4515 4516 /* skip commandBuffer */ 4517 /* skip pSubpassEndInfo */ 4518 4519 return cmd_size; 4520 } 4521 4522 static inline void vn_decode_vkCmdEndRenderPass2_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo) 4523 { 4524 VkCommandTypeEXT command_type; 4525 vn_decode_VkCommandTypeEXT(dec, &command_type); 4526 assert(command_type == VK_COMMAND_TYPE_vkCmdEndRenderPass2_EXT); 4527 4528 /* skip commandBuffer */ 4529 /* skip pSubpassEndInfo */ 4530 } 4531 4532 static inline size_t vn_sizeof_vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) 4533 { 4534 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawIndirectCount_EXT; 4535 const VkFlags cmd_flags = 0; 4536 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 4537 4538 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 4539 cmd_size += vn_sizeof_VkBuffer(&buffer); 4540 cmd_size += vn_sizeof_VkDeviceSize(&offset); 4541 cmd_size += vn_sizeof_VkBuffer(&countBuffer); 4542 cmd_size += vn_sizeof_VkDeviceSize(&countBufferOffset); 4543 cmd_size += vn_sizeof_uint32_t(&maxDrawCount); 4544 cmd_size += vn_sizeof_uint32_t(&stride); 4545 4546 return cmd_size; 4547 } 4548 4549 static inline void vn_encode_vkCmdDrawIndirectCount(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) 4550 { 4551 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawIndirectCount_EXT; 4552 4553 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 4554 vn_encode_VkFlags(enc, &cmd_flags); 4555 4556 vn_encode_VkCommandBuffer(enc, &commandBuffer); 4557 vn_encode_VkBuffer(enc, &buffer); 4558 vn_encode_VkDeviceSize(enc, &offset); 4559 vn_encode_VkBuffer(enc, &countBuffer); 4560 vn_encode_VkDeviceSize(enc, &countBufferOffset); 4561 vn_encode_uint32_t(enc, &maxDrawCount); 4562 vn_encode_uint32_t(enc, &stride); 4563 } 4564 4565 static inline size_t vn_sizeof_vkCmdDrawIndirectCount_reply(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) 4566 { 4567 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawIndirectCount_EXT; 4568 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 4569 4570 /* skip commandBuffer */ 4571 /* skip buffer */ 4572 /* skip offset */ 4573 /* skip countBuffer */ 4574 /* skip countBufferOffset */ 4575 /* skip maxDrawCount */ 4576 /* skip stride */ 4577 4578 return cmd_size; 4579 } 4580 4581 static inline void vn_decode_vkCmdDrawIndirectCount_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) 4582 { 4583 VkCommandTypeEXT command_type; 4584 vn_decode_VkCommandTypeEXT(dec, &command_type); 4585 assert(command_type == VK_COMMAND_TYPE_vkCmdDrawIndirectCount_EXT); 4586 4587 /* skip commandBuffer */ 4588 /* skip buffer */ 4589 /* skip offset */ 4590 /* skip countBuffer */ 4591 /* skip countBufferOffset */ 4592 /* skip maxDrawCount */ 4593 /* skip stride */ 4594 } 4595 4596 static inline size_t vn_sizeof_vkCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) 4597 { 4598 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawIndexedIndirectCount_EXT; 4599 const VkFlags cmd_flags = 0; 4600 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 4601 4602 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 4603 cmd_size += vn_sizeof_VkBuffer(&buffer); 4604 cmd_size += vn_sizeof_VkDeviceSize(&offset); 4605 cmd_size += vn_sizeof_VkBuffer(&countBuffer); 4606 cmd_size += vn_sizeof_VkDeviceSize(&countBufferOffset); 4607 cmd_size += vn_sizeof_uint32_t(&maxDrawCount); 4608 cmd_size += vn_sizeof_uint32_t(&stride); 4609 4610 return cmd_size; 4611 } 4612 4613 static inline void vn_encode_vkCmdDrawIndexedIndirectCount(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) 4614 { 4615 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawIndexedIndirectCount_EXT; 4616 4617 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 4618 vn_encode_VkFlags(enc, &cmd_flags); 4619 4620 vn_encode_VkCommandBuffer(enc, &commandBuffer); 4621 vn_encode_VkBuffer(enc, &buffer); 4622 vn_encode_VkDeviceSize(enc, &offset); 4623 vn_encode_VkBuffer(enc, &countBuffer); 4624 vn_encode_VkDeviceSize(enc, &countBufferOffset); 4625 vn_encode_uint32_t(enc, &maxDrawCount); 4626 vn_encode_uint32_t(enc, &stride); 4627 } 4628 4629 static inline size_t vn_sizeof_vkCmdDrawIndexedIndirectCount_reply(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) 4630 { 4631 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawIndexedIndirectCount_EXT; 4632 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 4633 4634 /* skip commandBuffer */ 4635 /* skip buffer */ 4636 /* skip offset */ 4637 /* skip countBuffer */ 4638 /* skip countBufferOffset */ 4639 /* skip maxDrawCount */ 4640 /* skip stride */ 4641 4642 return cmd_size; 4643 } 4644 4645 static inline void vn_decode_vkCmdDrawIndexedIndirectCount_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) 4646 { 4647 VkCommandTypeEXT command_type; 4648 vn_decode_VkCommandTypeEXT(dec, &command_type); 4649 assert(command_type == VK_COMMAND_TYPE_vkCmdDrawIndexedIndirectCount_EXT); 4650 4651 /* skip commandBuffer */ 4652 /* skip buffer */ 4653 /* skip offset */ 4654 /* skip countBuffer */ 4655 /* skip countBufferOffset */ 4656 /* skip maxDrawCount */ 4657 /* skip stride */ 4658 } 4659 4660 static inline size_t vn_sizeof_vkCmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes) 4661 { 4662 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBindTransformFeedbackBuffersEXT_EXT; 4663 const VkFlags cmd_flags = 0; 4664 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 4665 4666 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 4667 cmd_size += vn_sizeof_uint32_t(&firstBinding); 4668 cmd_size += vn_sizeof_uint32_t(&bindingCount); 4669 if (pBuffers) { 4670 cmd_size += vn_sizeof_array_size(bindingCount); 4671 for (uint32_t i = 0; i < bindingCount; i++) 4672 cmd_size += vn_sizeof_VkBuffer(&pBuffers[i]); 4673 } else { 4674 cmd_size += vn_sizeof_array_size(0); 4675 } 4676 if (pOffsets) { 4677 cmd_size += vn_sizeof_array_size(bindingCount); 4678 cmd_size += vn_sizeof_VkDeviceSize_array(pOffsets, bindingCount); 4679 } else { 4680 cmd_size += vn_sizeof_array_size(0); 4681 } 4682 if (pSizes) { 4683 cmd_size += vn_sizeof_array_size(bindingCount); 4684 cmd_size += vn_sizeof_VkDeviceSize_array(pSizes, bindingCount); 4685 } else { 4686 cmd_size += vn_sizeof_array_size(0); 4687 } 4688 4689 return cmd_size; 4690 } 4691 4692 static inline void vn_encode_vkCmdBindTransformFeedbackBuffersEXT(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes) 4693 { 4694 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBindTransformFeedbackBuffersEXT_EXT; 4695 4696 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 4697 vn_encode_VkFlags(enc, &cmd_flags); 4698 4699 vn_encode_VkCommandBuffer(enc, &commandBuffer); 4700 vn_encode_uint32_t(enc, &firstBinding); 4701 vn_encode_uint32_t(enc, &bindingCount); 4702 if (pBuffers) { 4703 vn_encode_array_size(enc, bindingCount); 4704 for (uint32_t i = 0; i < bindingCount; i++) 4705 vn_encode_VkBuffer(enc, &pBuffers[i]); 4706 } else { 4707 vn_encode_array_size(enc, 0); 4708 } 4709 if (pOffsets) { 4710 vn_encode_array_size(enc, bindingCount); 4711 vn_encode_VkDeviceSize_array(enc, pOffsets, bindingCount); 4712 } else { 4713 vn_encode_array_size(enc, 0); 4714 } 4715 if (pSizes) { 4716 vn_encode_array_size(enc, bindingCount); 4717 vn_encode_VkDeviceSize_array(enc, pSizes, bindingCount); 4718 } else { 4719 vn_encode_array_size(enc, 0); 4720 } 4721 } 4722 4723 static inline size_t vn_sizeof_vkCmdBindTransformFeedbackBuffersEXT_reply(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes) 4724 { 4725 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBindTransformFeedbackBuffersEXT_EXT; 4726 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 4727 4728 /* skip commandBuffer */ 4729 /* skip firstBinding */ 4730 /* skip bindingCount */ 4731 /* skip pBuffers */ 4732 /* skip pOffsets */ 4733 /* skip pSizes */ 4734 4735 return cmd_size; 4736 } 4737 4738 static inline void vn_decode_vkCmdBindTransformFeedbackBuffersEXT_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes) 4739 { 4740 VkCommandTypeEXT command_type; 4741 vn_decode_VkCommandTypeEXT(dec, &command_type); 4742 assert(command_type == VK_COMMAND_TYPE_vkCmdBindTransformFeedbackBuffersEXT_EXT); 4743 4744 /* skip commandBuffer */ 4745 /* skip firstBinding */ 4746 /* skip bindingCount */ 4747 /* skip pBuffers */ 4748 /* skip pOffsets */ 4749 /* skip pSizes */ 4750 } 4751 4752 static inline size_t vn_sizeof_vkCmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) 4753 { 4754 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBeginTransformFeedbackEXT_EXT; 4755 const VkFlags cmd_flags = 0; 4756 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 4757 4758 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 4759 cmd_size += vn_sizeof_uint32_t(&firstCounterBuffer); 4760 cmd_size += vn_sizeof_uint32_t(&counterBufferCount); 4761 if (pCounterBuffers) { 4762 cmd_size += vn_sizeof_array_size(counterBufferCount); 4763 for (uint32_t i = 0; i < counterBufferCount; i++) 4764 cmd_size += vn_sizeof_VkBuffer(&pCounterBuffers[i]); 4765 } else { 4766 cmd_size += vn_sizeof_array_size(0); 4767 } 4768 if (pCounterBufferOffsets) { 4769 cmd_size += vn_sizeof_array_size(counterBufferCount); 4770 cmd_size += vn_sizeof_VkDeviceSize_array(pCounterBufferOffsets, counterBufferCount); 4771 } else { 4772 cmd_size += vn_sizeof_array_size(0); 4773 } 4774 4775 return cmd_size; 4776 } 4777 4778 static inline void vn_encode_vkCmdBeginTransformFeedbackEXT(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) 4779 { 4780 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBeginTransformFeedbackEXT_EXT; 4781 4782 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 4783 vn_encode_VkFlags(enc, &cmd_flags); 4784 4785 vn_encode_VkCommandBuffer(enc, &commandBuffer); 4786 vn_encode_uint32_t(enc, &firstCounterBuffer); 4787 vn_encode_uint32_t(enc, &counterBufferCount); 4788 if (pCounterBuffers) { 4789 vn_encode_array_size(enc, counterBufferCount); 4790 for (uint32_t i = 0; i < counterBufferCount; i++) 4791 vn_encode_VkBuffer(enc, &pCounterBuffers[i]); 4792 } else { 4793 vn_encode_array_size(enc, 0); 4794 } 4795 if (pCounterBufferOffsets) { 4796 vn_encode_array_size(enc, counterBufferCount); 4797 vn_encode_VkDeviceSize_array(enc, pCounterBufferOffsets, counterBufferCount); 4798 } else { 4799 vn_encode_array_size(enc, 0); 4800 } 4801 } 4802 4803 static inline size_t vn_sizeof_vkCmdBeginTransformFeedbackEXT_reply(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) 4804 { 4805 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBeginTransformFeedbackEXT_EXT; 4806 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 4807 4808 /* skip commandBuffer */ 4809 /* skip firstCounterBuffer */ 4810 /* skip counterBufferCount */ 4811 /* skip pCounterBuffers */ 4812 /* skip pCounterBufferOffsets */ 4813 4814 return cmd_size; 4815 } 4816 4817 static inline void vn_decode_vkCmdBeginTransformFeedbackEXT_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) 4818 { 4819 VkCommandTypeEXT command_type; 4820 vn_decode_VkCommandTypeEXT(dec, &command_type); 4821 assert(command_type == VK_COMMAND_TYPE_vkCmdBeginTransformFeedbackEXT_EXT); 4822 4823 /* skip commandBuffer */ 4824 /* skip firstCounterBuffer */ 4825 /* skip counterBufferCount */ 4826 /* skip pCounterBuffers */ 4827 /* skip pCounterBufferOffsets */ 4828 } 4829 4830 static inline size_t vn_sizeof_vkCmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) 4831 { 4832 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdEndTransformFeedbackEXT_EXT; 4833 const VkFlags cmd_flags = 0; 4834 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 4835 4836 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 4837 cmd_size += vn_sizeof_uint32_t(&firstCounterBuffer); 4838 cmd_size += vn_sizeof_uint32_t(&counterBufferCount); 4839 if (pCounterBuffers) { 4840 cmd_size += vn_sizeof_array_size(counterBufferCount); 4841 for (uint32_t i = 0; i < counterBufferCount; i++) 4842 cmd_size += vn_sizeof_VkBuffer(&pCounterBuffers[i]); 4843 } else { 4844 cmd_size += vn_sizeof_array_size(0); 4845 } 4846 if (pCounterBufferOffsets) { 4847 cmd_size += vn_sizeof_array_size(counterBufferCount); 4848 cmd_size += vn_sizeof_VkDeviceSize_array(pCounterBufferOffsets, counterBufferCount); 4849 } else { 4850 cmd_size += vn_sizeof_array_size(0); 4851 } 4852 4853 return cmd_size; 4854 } 4855 4856 static inline void vn_encode_vkCmdEndTransformFeedbackEXT(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) 4857 { 4858 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdEndTransformFeedbackEXT_EXT; 4859 4860 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 4861 vn_encode_VkFlags(enc, &cmd_flags); 4862 4863 vn_encode_VkCommandBuffer(enc, &commandBuffer); 4864 vn_encode_uint32_t(enc, &firstCounterBuffer); 4865 vn_encode_uint32_t(enc, &counterBufferCount); 4866 if (pCounterBuffers) { 4867 vn_encode_array_size(enc, counterBufferCount); 4868 for (uint32_t i = 0; i < counterBufferCount; i++) 4869 vn_encode_VkBuffer(enc, &pCounterBuffers[i]); 4870 } else { 4871 vn_encode_array_size(enc, 0); 4872 } 4873 if (pCounterBufferOffsets) { 4874 vn_encode_array_size(enc, counterBufferCount); 4875 vn_encode_VkDeviceSize_array(enc, pCounterBufferOffsets, counterBufferCount); 4876 } else { 4877 vn_encode_array_size(enc, 0); 4878 } 4879 } 4880 4881 static inline size_t vn_sizeof_vkCmdEndTransformFeedbackEXT_reply(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) 4882 { 4883 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdEndTransformFeedbackEXT_EXT; 4884 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 4885 4886 /* skip commandBuffer */ 4887 /* skip firstCounterBuffer */ 4888 /* skip counterBufferCount */ 4889 /* skip pCounterBuffers */ 4890 /* skip pCounterBufferOffsets */ 4891 4892 return cmd_size; 4893 } 4894 4895 static inline void vn_decode_vkCmdEndTransformFeedbackEXT_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) 4896 { 4897 VkCommandTypeEXT command_type; 4898 vn_decode_VkCommandTypeEXT(dec, &command_type); 4899 assert(command_type == VK_COMMAND_TYPE_vkCmdEndTransformFeedbackEXT_EXT); 4900 4901 /* skip commandBuffer */ 4902 /* skip firstCounterBuffer */ 4903 /* skip counterBufferCount */ 4904 /* skip pCounterBuffers */ 4905 /* skip pCounterBufferOffsets */ 4906 } 4907 4908 static inline size_t vn_sizeof_vkCmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index) 4909 { 4910 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBeginQueryIndexedEXT_EXT; 4911 const VkFlags cmd_flags = 0; 4912 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 4913 4914 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 4915 cmd_size += vn_sizeof_VkQueryPool(&queryPool); 4916 cmd_size += vn_sizeof_uint32_t(&query); 4917 cmd_size += vn_sizeof_VkFlags(&flags); 4918 cmd_size += vn_sizeof_uint32_t(&index); 4919 4920 return cmd_size; 4921 } 4922 4923 static inline void vn_encode_vkCmdBeginQueryIndexedEXT(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index) 4924 { 4925 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBeginQueryIndexedEXT_EXT; 4926 4927 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 4928 vn_encode_VkFlags(enc, &cmd_flags); 4929 4930 vn_encode_VkCommandBuffer(enc, &commandBuffer); 4931 vn_encode_VkQueryPool(enc, &queryPool); 4932 vn_encode_uint32_t(enc, &query); 4933 vn_encode_VkFlags(enc, &flags); 4934 vn_encode_uint32_t(enc, &index); 4935 } 4936 4937 static inline size_t vn_sizeof_vkCmdBeginQueryIndexedEXT_reply(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index) 4938 { 4939 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdBeginQueryIndexedEXT_EXT; 4940 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 4941 4942 /* skip commandBuffer */ 4943 /* skip queryPool */ 4944 /* skip query */ 4945 /* skip flags */ 4946 /* skip index */ 4947 4948 return cmd_size; 4949 } 4950 4951 static inline void vn_decode_vkCmdBeginQueryIndexedEXT_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index) 4952 { 4953 VkCommandTypeEXT command_type; 4954 vn_decode_VkCommandTypeEXT(dec, &command_type); 4955 assert(command_type == VK_COMMAND_TYPE_vkCmdBeginQueryIndexedEXT_EXT); 4956 4957 /* skip commandBuffer */ 4958 /* skip queryPool */ 4959 /* skip query */ 4960 /* skip flags */ 4961 /* skip index */ 4962 } 4963 4964 static inline size_t vn_sizeof_vkCmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index) 4965 { 4966 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdEndQueryIndexedEXT_EXT; 4967 const VkFlags cmd_flags = 0; 4968 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 4969 4970 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 4971 cmd_size += vn_sizeof_VkQueryPool(&queryPool); 4972 cmd_size += vn_sizeof_uint32_t(&query); 4973 cmd_size += vn_sizeof_uint32_t(&index); 4974 4975 return cmd_size; 4976 } 4977 4978 static inline void vn_encode_vkCmdEndQueryIndexedEXT(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index) 4979 { 4980 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdEndQueryIndexedEXT_EXT; 4981 4982 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 4983 vn_encode_VkFlags(enc, &cmd_flags); 4984 4985 vn_encode_VkCommandBuffer(enc, &commandBuffer); 4986 vn_encode_VkQueryPool(enc, &queryPool); 4987 vn_encode_uint32_t(enc, &query); 4988 vn_encode_uint32_t(enc, &index); 4989 } 4990 4991 static inline size_t vn_sizeof_vkCmdEndQueryIndexedEXT_reply(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index) 4992 { 4993 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdEndQueryIndexedEXT_EXT; 4994 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 4995 4996 /* skip commandBuffer */ 4997 /* skip queryPool */ 4998 /* skip query */ 4999 /* skip index */ 5000 5001 return cmd_size; 5002 } 5003 5004 static inline void vn_decode_vkCmdEndQueryIndexedEXT_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index) 5005 { 5006 VkCommandTypeEXT command_type; 5007 vn_decode_VkCommandTypeEXT(dec, &command_type); 5008 assert(command_type == VK_COMMAND_TYPE_vkCmdEndQueryIndexedEXT_EXT); 5009 5010 /* skip commandBuffer */ 5011 /* skip queryPool */ 5012 /* skip query */ 5013 /* skip index */ 5014 } 5015 5016 static inline size_t vn_sizeof_vkCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride) 5017 { 5018 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawIndirectByteCountEXT_EXT; 5019 const VkFlags cmd_flags = 0; 5020 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 5021 5022 cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer); 5023 cmd_size += vn_sizeof_uint32_t(&instanceCount); 5024 cmd_size += vn_sizeof_uint32_t(&firstInstance); 5025 cmd_size += vn_sizeof_VkBuffer(&counterBuffer); 5026 cmd_size += vn_sizeof_VkDeviceSize(&counterBufferOffset); 5027 cmd_size += vn_sizeof_uint32_t(&counterOffset); 5028 cmd_size += vn_sizeof_uint32_t(&vertexStride); 5029 5030 return cmd_size; 5031 } 5032 5033 static inline void vn_encode_vkCmdDrawIndirectByteCountEXT(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride) 5034 { 5035 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawIndirectByteCountEXT_EXT; 5036 5037 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 5038 vn_encode_VkFlags(enc, &cmd_flags); 5039 5040 vn_encode_VkCommandBuffer(enc, &commandBuffer); 5041 vn_encode_uint32_t(enc, &instanceCount); 5042 vn_encode_uint32_t(enc, &firstInstance); 5043 vn_encode_VkBuffer(enc, &counterBuffer); 5044 vn_encode_VkDeviceSize(enc, &counterBufferOffset); 5045 vn_encode_uint32_t(enc, &counterOffset); 5046 vn_encode_uint32_t(enc, &vertexStride); 5047 } 5048 5049 static inline size_t vn_sizeof_vkCmdDrawIndirectByteCountEXT_reply(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride) 5050 { 5051 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawIndirectByteCountEXT_EXT; 5052 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 5053 5054 /* skip commandBuffer */ 5055 /* skip instanceCount */ 5056 /* skip firstInstance */ 5057 /* skip counterBuffer */ 5058 /* skip counterBufferOffset */ 5059 /* skip counterOffset */ 5060 /* skip vertexStride */ 5061 5062 return cmd_size; 5063 } 5064 5065 static inline void vn_decode_vkCmdDrawIndirectByteCountEXT_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride) 5066 { 5067 VkCommandTypeEXT command_type; 5068 vn_decode_VkCommandTypeEXT(dec, &command_type); 5069 assert(command_type == VK_COMMAND_TYPE_vkCmdDrawIndirectByteCountEXT_EXT); 5070 5071 /* skip commandBuffer */ 5072 /* skip instanceCount */ 5073 /* skip firstInstance */ 5074 /* skip counterBuffer */ 5075 /* skip counterBufferOffset */ 5076 /* skip counterOffset */ 5077 /* skip vertexStride */ 5078 } 5079 5080 static inline void vn_submit_vkAllocateCommandBuffers(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers, struct vn_instance_submit_command *submit) 5081 { 5082 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5083 void *cmd_data = local_cmd_data; 5084 size_t cmd_size = vn_sizeof_vkAllocateCommandBuffers(device, pAllocateInfo, pCommandBuffers); 5085 if (cmd_size > sizeof(local_cmd_data)) { 5086 cmd_data = malloc(cmd_size); 5087 if (!cmd_data) 5088 cmd_size = 0; 5089 } 5090 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkAllocateCommandBuffers_reply(device, pAllocateInfo, pCommandBuffers) : 0; 5091 5092 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5093 if (cmd_size) { 5094 vn_encode_vkAllocateCommandBuffers(enc, cmd_flags, device, pAllocateInfo, pCommandBuffers); 5095 vn_instance_submit_command(vn_instance, submit); 5096 if (cmd_data != local_cmd_data) 5097 free(cmd_data); 5098 } 5099 } 5100 5101 static inline void vn_submit_vkFreeCommandBuffers(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers, struct vn_instance_submit_command *submit) 5102 { 5103 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5104 void *cmd_data = local_cmd_data; 5105 size_t cmd_size = vn_sizeof_vkFreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers); 5106 if (cmd_size > sizeof(local_cmd_data)) { 5107 cmd_data = malloc(cmd_size); 5108 if (!cmd_data) 5109 cmd_size = 0; 5110 } 5111 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkFreeCommandBuffers_reply(device, commandPool, commandBufferCount, pCommandBuffers) : 0; 5112 5113 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5114 if (cmd_size) { 5115 vn_encode_vkFreeCommandBuffers(enc, cmd_flags, device, commandPool, commandBufferCount, pCommandBuffers); 5116 vn_instance_submit_command(vn_instance, submit); 5117 if (cmd_data != local_cmd_data) 5118 free(cmd_data); 5119 } 5120 } 5121 5122 static inline void vn_submit_vkBeginCommandBuffer(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo, struct vn_instance_submit_command *submit) 5123 { 5124 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5125 void *cmd_data = local_cmd_data; 5126 size_t cmd_size = vn_sizeof_vkBeginCommandBuffer(commandBuffer, pBeginInfo); 5127 if (cmd_size > sizeof(local_cmd_data)) { 5128 cmd_data = malloc(cmd_size); 5129 if (!cmd_data) 5130 cmd_size = 0; 5131 } 5132 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkBeginCommandBuffer_reply(commandBuffer, pBeginInfo) : 0; 5133 5134 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5135 if (cmd_size) { 5136 vn_encode_vkBeginCommandBuffer(enc, cmd_flags, commandBuffer, pBeginInfo); 5137 vn_instance_submit_command(vn_instance, submit); 5138 if (cmd_data != local_cmd_data) 5139 free(cmd_data); 5140 } 5141 } 5142 5143 static inline void vn_submit_vkEndCommandBuffer(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, struct vn_instance_submit_command *submit) 5144 { 5145 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5146 void *cmd_data = local_cmd_data; 5147 size_t cmd_size = vn_sizeof_vkEndCommandBuffer(commandBuffer); 5148 if (cmd_size > sizeof(local_cmd_data)) { 5149 cmd_data = malloc(cmd_size); 5150 if (!cmd_data) 5151 cmd_size = 0; 5152 } 5153 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkEndCommandBuffer_reply(commandBuffer) : 0; 5154 5155 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5156 if (cmd_size) { 5157 vn_encode_vkEndCommandBuffer(enc, cmd_flags, commandBuffer); 5158 vn_instance_submit_command(vn_instance, submit); 5159 if (cmd_data != local_cmd_data) 5160 free(cmd_data); 5161 } 5162 } 5163 5164 static inline void vn_submit_vkResetCommandBuffer(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags, struct vn_instance_submit_command *submit) 5165 { 5166 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5167 void *cmd_data = local_cmd_data; 5168 size_t cmd_size = vn_sizeof_vkResetCommandBuffer(commandBuffer, flags); 5169 if (cmd_size > sizeof(local_cmd_data)) { 5170 cmd_data = malloc(cmd_size); 5171 if (!cmd_data) 5172 cmd_size = 0; 5173 } 5174 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkResetCommandBuffer_reply(commandBuffer, flags) : 0; 5175 5176 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5177 if (cmd_size) { 5178 vn_encode_vkResetCommandBuffer(enc, cmd_flags, commandBuffer, flags); 5179 vn_instance_submit_command(vn_instance, submit); 5180 if (cmd_data != local_cmd_data) 5181 free(cmd_data); 5182 } 5183 } 5184 5185 static inline void vn_submit_vkCmdBindPipeline(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, struct vn_instance_submit_command *submit) 5186 { 5187 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5188 void *cmd_data = local_cmd_data; 5189 size_t cmd_size = vn_sizeof_vkCmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline); 5190 if (cmd_size > sizeof(local_cmd_data)) { 5191 cmd_data = malloc(cmd_size); 5192 if (!cmd_data) 5193 cmd_size = 0; 5194 } 5195 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdBindPipeline_reply(commandBuffer, pipelineBindPoint, pipeline) : 0; 5196 5197 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5198 if (cmd_size) { 5199 vn_encode_vkCmdBindPipeline(enc, cmd_flags, commandBuffer, pipelineBindPoint, pipeline); 5200 vn_instance_submit_command(vn_instance, submit); 5201 if (cmd_data != local_cmd_data) 5202 free(cmd_data); 5203 } 5204 } 5205 5206 static inline void vn_submit_vkCmdSetViewport(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports, struct vn_instance_submit_command *submit) 5207 { 5208 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5209 void *cmd_data = local_cmd_data; 5210 size_t cmd_size = vn_sizeof_vkCmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports); 5211 if (cmd_size > sizeof(local_cmd_data)) { 5212 cmd_data = malloc(cmd_size); 5213 if (!cmd_data) 5214 cmd_size = 0; 5215 } 5216 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdSetViewport_reply(commandBuffer, firstViewport, viewportCount, pViewports) : 0; 5217 5218 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5219 if (cmd_size) { 5220 vn_encode_vkCmdSetViewport(enc, cmd_flags, commandBuffer, firstViewport, viewportCount, pViewports); 5221 vn_instance_submit_command(vn_instance, submit); 5222 if (cmd_data != local_cmd_data) 5223 free(cmd_data); 5224 } 5225 } 5226 5227 static inline void vn_submit_vkCmdSetScissor(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors, struct vn_instance_submit_command *submit) 5228 { 5229 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5230 void *cmd_data = local_cmd_data; 5231 size_t cmd_size = vn_sizeof_vkCmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors); 5232 if (cmd_size > sizeof(local_cmd_data)) { 5233 cmd_data = malloc(cmd_size); 5234 if (!cmd_data) 5235 cmd_size = 0; 5236 } 5237 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdSetScissor_reply(commandBuffer, firstScissor, scissorCount, pScissors) : 0; 5238 5239 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5240 if (cmd_size) { 5241 vn_encode_vkCmdSetScissor(enc, cmd_flags, commandBuffer, firstScissor, scissorCount, pScissors); 5242 vn_instance_submit_command(vn_instance, submit); 5243 if (cmd_data != local_cmd_data) 5244 free(cmd_data); 5245 } 5246 } 5247 5248 static inline void vn_submit_vkCmdSetLineWidth(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, float lineWidth, struct vn_instance_submit_command *submit) 5249 { 5250 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5251 void *cmd_data = local_cmd_data; 5252 size_t cmd_size = vn_sizeof_vkCmdSetLineWidth(commandBuffer, lineWidth); 5253 if (cmd_size > sizeof(local_cmd_data)) { 5254 cmd_data = malloc(cmd_size); 5255 if (!cmd_data) 5256 cmd_size = 0; 5257 } 5258 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdSetLineWidth_reply(commandBuffer, lineWidth) : 0; 5259 5260 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5261 if (cmd_size) { 5262 vn_encode_vkCmdSetLineWidth(enc, cmd_flags, commandBuffer, lineWidth); 5263 vn_instance_submit_command(vn_instance, submit); 5264 if (cmd_data != local_cmd_data) 5265 free(cmd_data); 5266 } 5267 } 5268 5269 static inline void vn_submit_vkCmdSetDepthBias(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, struct vn_instance_submit_command *submit) 5270 { 5271 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5272 void *cmd_data = local_cmd_data; 5273 size_t cmd_size = vn_sizeof_vkCmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor); 5274 if (cmd_size > sizeof(local_cmd_data)) { 5275 cmd_data = malloc(cmd_size); 5276 if (!cmd_data) 5277 cmd_size = 0; 5278 } 5279 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdSetDepthBias_reply(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor) : 0; 5280 5281 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5282 if (cmd_size) { 5283 vn_encode_vkCmdSetDepthBias(enc, cmd_flags, commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor); 5284 vn_instance_submit_command(vn_instance, submit); 5285 if (cmd_data != local_cmd_data) 5286 free(cmd_data); 5287 } 5288 } 5289 5290 static inline void vn_submit_vkCmdSetBlendConstants(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, const float blendConstants[4], struct vn_instance_submit_command *submit) 5291 { 5292 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5293 void *cmd_data = local_cmd_data; 5294 size_t cmd_size = vn_sizeof_vkCmdSetBlendConstants(commandBuffer, blendConstants); 5295 if (cmd_size > sizeof(local_cmd_data)) { 5296 cmd_data = malloc(cmd_size); 5297 if (!cmd_data) 5298 cmd_size = 0; 5299 } 5300 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdSetBlendConstants_reply(commandBuffer, blendConstants) : 0; 5301 5302 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5303 if (cmd_size) { 5304 vn_encode_vkCmdSetBlendConstants(enc, cmd_flags, commandBuffer, blendConstants); 5305 vn_instance_submit_command(vn_instance, submit); 5306 if (cmd_data != local_cmd_data) 5307 free(cmd_data); 5308 } 5309 } 5310 5311 static inline void vn_submit_vkCmdSetDepthBounds(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds, struct vn_instance_submit_command *submit) 5312 { 5313 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5314 void *cmd_data = local_cmd_data; 5315 size_t cmd_size = vn_sizeof_vkCmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds); 5316 if (cmd_size > sizeof(local_cmd_data)) { 5317 cmd_data = malloc(cmd_size); 5318 if (!cmd_data) 5319 cmd_size = 0; 5320 } 5321 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdSetDepthBounds_reply(commandBuffer, minDepthBounds, maxDepthBounds) : 0; 5322 5323 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5324 if (cmd_size) { 5325 vn_encode_vkCmdSetDepthBounds(enc, cmd_flags, commandBuffer, minDepthBounds, maxDepthBounds); 5326 vn_instance_submit_command(vn_instance, submit); 5327 if (cmd_data != local_cmd_data) 5328 free(cmd_data); 5329 } 5330 } 5331 5332 static inline void vn_submit_vkCmdSetStencilCompareMask(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask, struct vn_instance_submit_command *submit) 5333 { 5334 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5335 void *cmd_data = local_cmd_data; 5336 size_t cmd_size = vn_sizeof_vkCmdSetStencilCompareMask(commandBuffer, faceMask, compareMask); 5337 if (cmd_size > sizeof(local_cmd_data)) { 5338 cmd_data = malloc(cmd_size); 5339 if (!cmd_data) 5340 cmd_size = 0; 5341 } 5342 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdSetStencilCompareMask_reply(commandBuffer, faceMask, compareMask) : 0; 5343 5344 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5345 if (cmd_size) { 5346 vn_encode_vkCmdSetStencilCompareMask(enc, cmd_flags, commandBuffer, faceMask, compareMask); 5347 vn_instance_submit_command(vn_instance, submit); 5348 if (cmd_data != local_cmd_data) 5349 free(cmd_data); 5350 } 5351 } 5352 5353 static inline void vn_submit_vkCmdSetStencilWriteMask(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask, struct vn_instance_submit_command *submit) 5354 { 5355 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5356 void *cmd_data = local_cmd_data; 5357 size_t cmd_size = vn_sizeof_vkCmdSetStencilWriteMask(commandBuffer, faceMask, writeMask); 5358 if (cmd_size > sizeof(local_cmd_data)) { 5359 cmd_data = malloc(cmd_size); 5360 if (!cmd_data) 5361 cmd_size = 0; 5362 } 5363 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdSetStencilWriteMask_reply(commandBuffer, faceMask, writeMask) : 0; 5364 5365 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5366 if (cmd_size) { 5367 vn_encode_vkCmdSetStencilWriteMask(enc, cmd_flags, commandBuffer, faceMask, writeMask); 5368 vn_instance_submit_command(vn_instance, submit); 5369 if (cmd_data != local_cmd_data) 5370 free(cmd_data); 5371 } 5372 } 5373 5374 static inline void vn_submit_vkCmdSetStencilReference(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference, struct vn_instance_submit_command *submit) 5375 { 5376 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5377 void *cmd_data = local_cmd_data; 5378 size_t cmd_size = vn_sizeof_vkCmdSetStencilReference(commandBuffer, faceMask, reference); 5379 if (cmd_size > sizeof(local_cmd_data)) { 5380 cmd_data = malloc(cmd_size); 5381 if (!cmd_data) 5382 cmd_size = 0; 5383 } 5384 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdSetStencilReference_reply(commandBuffer, faceMask, reference) : 0; 5385 5386 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5387 if (cmd_size) { 5388 vn_encode_vkCmdSetStencilReference(enc, cmd_flags, commandBuffer, faceMask, reference); 5389 vn_instance_submit_command(vn_instance, submit); 5390 if (cmd_data != local_cmd_data) 5391 free(cmd_data); 5392 } 5393 } 5394 5395 static inline void vn_submit_vkCmdBindDescriptorSets(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets, struct vn_instance_submit_command *submit) 5396 { 5397 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5398 void *cmd_data = local_cmd_data; 5399 size_t cmd_size = vn_sizeof_vkCmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets); 5400 if (cmd_size > sizeof(local_cmd_data)) { 5401 cmd_data = malloc(cmd_size); 5402 if (!cmd_data) 5403 cmd_size = 0; 5404 } 5405 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdBindDescriptorSets_reply(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets) : 0; 5406 5407 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5408 if (cmd_size) { 5409 vn_encode_vkCmdBindDescriptorSets(enc, cmd_flags, commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets); 5410 vn_instance_submit_command(vn_instance, submit); 5411 if (cmd_data != local_cmd_data) 5412 free(cmd_data); 5413 } 5414 } 5415 5416 static inline void vn_submit_vkCmdBindIndexBuffer(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType, struct vn_instance_submit_command *submit) 5417 { 5418 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5419 void *cmd_data = local_cmd_data; 5420 size_t cmd_size = vn_sizeof_vkCmdBindIndexBuffer(commandBuffer, buffer, offset, indexType); 5421 if (cmd_size > sizeof(local_cmd_data)) { 5422 cmd_data = malloc(cmd_size); 5423 if (!cmd_data) 5424 cmd_size = 0; 5425 } 5426 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdBindIndexBuffer_reply(commandBuffer, buffer, offset, indexType) : 0; 5427 5428 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5429 if (cmd_size) { 5430 vn_encode_vkCmdBindIndexBuffer(enc, cmd_flags, commandBuffer, buffer, offset, indexType); 5431 vn_instance_submit_command(vn_instance, submit); 5432 if (cmd_data != local_cmd_data) 5433 free(cmd_data); 5434 } 5435 } 5436 5437 static inline void vn_submit_vkCmdBindVertexBuffers(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, struct vn_instance_submit_command *submit) 5438 { 5439 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5440 void *cmd_data = local_cmd_data; 5441 size_t cmd_size = vn_sizeof_vkCmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets); 5442 if (cmd_size > sizeof(local_cmd_data)) { 5443 cmd_data = malloc(cmd_size); 5444 if (!cmd_data) 5445 cmd_size = 0; 5446 } 5447 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdBindVertexBuffers_reply(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets) : 0; 5448 5449 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5450 if (cmd_size) { 5451 vn_encode_vkCmdBindVertexBuffers(enc, cmd_flags, commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets); 5452 vn_instance_submit_command(vn_instance, submit); 5453 if (cmd_data != local_cmd_data) 5454 free(cmd_data); 5455 } 5456 } 5457 5458 static inline void vn_submit_vkCmdDraw(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance, struct vn_instance_submit_command *submit) 5459 { 5460 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5461 void *cmd_data = local_cmd_data; 5462 size_t cmd_size = vn_sizeof_vkCmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance); 5463 if (cmd_size > sizeof(local_cmd_data)) { 5464 cmd_data = malloc(cmd_size); 5465 if (!cmd_data) 5466 cmd_size = 0; 5467 } 5468 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdDraw_reply(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance) : 0; 5469 5470 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5471 if (cmd_size) { 5472 vn_encode_vkCmdDraw(enc, cmd_flags, commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance); 5473 vn_instance_submit_command(vn_instance, submit); 5474 if (cmd_data != local_cmd_data) 5475 free(cmd_data); 5476 } 5477 } 5478 5479 static inline void vn_submit_vkCmdDrawIndexed(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance, struct vn_instance_submit_command *submit) 5480 { 5481 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5482 void *cmd_data = local_cmd_data; 5483 size_t cmd_size = vn_sizeof_vkCmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance); 5484 if (cmd_size > sizeof(local_cmd_data)) { 5485 cmd_data = malloc(cmd_size); 5486 if (!cmd_data) 5487 cmd_size = 0; 5488 } 5489 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdDrawIndexed_reply(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance) : 0; 5490 5491 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5492 if (cmd_size) { 5493 vn_encode_vkCmdDrawIndexed(enc, cmd_flags, commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance); 5494 vn_instance_submit_command(vn_instance, submit); 5495 if (cmd_data != local_cmd_data) 5496 free(cmd_data); 5497 } 5498 } 5499 5500 static inline void vn_submit_vkCmdDrawIndirect(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride, struct vn_instance_submit_command *submit) 5501 { 5502 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5503 void *cmd_data = local_cmd_data; 5504 size_t cmd_size = vn_sizeof_vkCmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride); 5505 if (cmd_size > sizeof(local_cmd_data)) { 5506 cmd_data = malloc(cmd_size); 5507 if (!cmd_data) 5508 cmd_size = 0; 5509 } 5510 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdDrawIndirect_reply(commandBuffer, buffer, offset, drawCount, stride) : 0; 5511 5512 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5513 if (cmd_size) { 5514 vn_encode_vkCmdDrawIndirect(enc, cmd_flags, commandBuffer, buffer, offset, drawCount, stride); 5515 vn_instance_submit_command(vn_instance, submit); 5516 if (cmd_data != local_cmd_data) 5517 free(cmd_data); 5518 } 5519 } 5520 5521 static inline void vn_submit_vkCmdDrawIndexedIndirect(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride, struct vn_instance_submit_command *submit) 5522 { 5523 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5524 void *cmd_data = local_cmd_data; 5525 size_t cmd_size = vn_sizeof_vkCmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride); 5526 if (cmd_size > sizeof(local_cmd_data)) { 5527 cmd_data = malloc(cmd_size); 5528 if (!cmd_data) 5529 cmd_size = 0; 5530 } 5531 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdDrawIndexedIndirect_reply(commandBuffer, buffer, offset, drawCount, stride) : 0; 5532 5533 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5534 if (cmd_size) { 5535 vn_encode_vkCmdDrawIndexedIndirect(enc, cmd_flags, commandBuffer, buffer, offset, drawCount, stride); 5536 vn_instance_submit_command(vn_instance, submit); 5537 if (cmd_data != local_cmd_data) 5538 free(cmd_data); 5539 } 5540 } 5541 5542 static inline void vn_submit_vkCmdDispatch(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, struct vn_instance_submit_command *submit) 5543 { 5544 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5545 void *cmd_data = local_cmd_data; 5546 size_t cmd_size = vn_sizeof_vkCmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ); 5547 if (cmd_size > sizeof(local_cmd_data)) { 5548 cmd_data = malloc(cmd_size); 5549 if (!cmd_data) 5550 cmd_size = 0; 5551 } 5552 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdDispatch_reply(commandBuffer, groupCountX, groupCountY, groupCountZ) : 0; 5553 5554 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5555 if (cmd_size) { 5556 vn_encode_vkCmdDispatch(enc, cmd_flags, commandBuffer, groupCountX, groupCountY, groupCountZ); 5557 vn_instance_submit_command(vn_instance, submit); 5558 if (cmd_data != local_cmd_data) 5559 free(cmd_data); 5560 } 5561 } 5562 5563 static inline void vn_submit_vkCmdDispatchIndirect(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, struct vn_instance_submit_command *submit) 5564 { 5565 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5566 void *cmd_data = local_cmd_data; 5567 size_t cmd_size = vn_sizeof_vkCmdDispatchIndirect(commandBuffer, buffer, offset); 5568 if (cmd_size > sizeof(local_cmd_data)) { 5569 cmd_data = malloc(cmd_size); 5570 if (!cmd_data) 5571 cmd_size = 0; 5572 } 5573 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdDispatchIndirect_reply(commandBuffer, buffer, offset) : 0; 5574 5575 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5576 if (cmd_size) { 5577 vn_encode_vkCmdDispatchIndirect(enc, cmd_flags, commandBuffer, buffer, offset); 5578 vn_instance_submit_command(vn_instance, submit); 5579 if (cmd_data != local_cmd_data) 5580 free(cmd_data); 5581 } 5582 } 5583 5584 static inline void vn_submit_vkCmdCopyBuffer(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions, struct vn_instance_submit_command *submit) 5585 { 5586 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5587 void *cmd_data = local_cmd_data; 5588 size_t cmd_size = vn_sizeof_vkCmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions); 5589 if (cmd_size > sizeof(local_cmd_data)) { 5590 cmd_data = malloc(cmd_size); 5591 if (!cmd_data) 5592 cmd_size = 0; 5593 } 5594 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdCopyBuffer_reply(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions) : 0; 5595 5596 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5597 if (cmd_size) { 5598 vn_encode_vkCmdCopyBuffer(enc, cmd_flags, commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions); 5599 vn_instance_submit_command(vn_instance, submit); 5600 if (cmd_data != local_cmd_data) 5601 free(cmd_data); 5602 } 5603 } 5604 5605 static inline void vn_submit_vkCmdCopyImage(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions, struct vn_instance_submit_command *submit) 5606 { 5607 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5608 void *cmd_data = local_cmd_data; 5609 size_t cmd_size = vn_sizeof_vkCmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); 5610 if (cmd_size > sizeof(local_cmd_data)) { 5611 cmd_data = malloc(cmd_size); 5612 if (!cmd_data) 5613 cmd_size = 0; 5614 } 5615 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdCopyImage_reply(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions) : 0; 5616 5617 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5618 if (cmd_size) { 5619 vn_encode_vkCmdCopyImage(enc, cmd_flags, commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); 5620 vn_instance_submit_command(vn_instance, submit); 5621 if (cmd_data != local_cmd_data) 5622 free(cmd_data); 5623 } 5624 } 5625 5626 static inline void vn_submit_vkCmdBlitImage(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter, struct vn_instance_submit_command *submit) 5627 { 5628 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5629 void *cmd_data = local_cmd_data; 5630 size_t cmd_size = vn_sizeof_vkCmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter); 5631 if (cmd_size > sizeof(local_cmd_data)) { 5632 cmd_data = malloc(cmd_size); 5633 if (!cmd_data) 5634 cmd_size = 0; 5635 } 5636 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdBlitImage_reply(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter) : 0; 5637 5638 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5639 if (cmd_size) { 5640 vn_encode_vkCmdBlitImage(enc, cmd_flags, commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter); 5641 vn_instance_submit_command(vn_instance, submit); 5642 if (cmd_data != local_cmd_data) 5643 free(cmd_data); 5644 } 5645 } 5646 5647 static inline void vn_submit_vkCmdCopyBufferToImage(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions, struct vn_instance_submit_command *submit) 5648 { 5649 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5650 void *cmd_data = local_cmd_data; 5651 size_t cmd_size = vn_sizeof_vkCmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions); 5652 if (cmd_size > sizeof(local_cmd_data)) { 5653 cmd_data = malloc(cmd_size); 5654 if (!cmd_data) 5655 cmd_size = 0; 5656 } 5657 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdCopyBufferToImage_reply(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions) : 0; 5658 5659 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5660 if (cmd_size) { 5661 vn_encode_vkCmdCopyBufferToImage(enc, cmd_flags, commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions); 5662 vn_instance_submit_command(vn_instance, submit); 5663 if (cmd_data != local_cmd_data) 5664 free(cmd_data); 5665 } 5666 } 5667 5668 static inline void vn_submit_vkCmdCopyImageToBuffer(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions, struct vn_instance_submit_command *submit) 5669 { 5670 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5671 void *cmd_data = local_cmd_data; 5672 size_t cmd_size = vn_sizeof_vkCmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions); 5673 if (cmd_size > sizeof(local_cmd_data)) { 5674 cmd_data = malloc(cmd_size); 5675 if (!cmd_data) 5676 cmd_size = 0; 5677 } 5678 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdCopyImageToBuffer_reply(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions) : 0; 5679 5680 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5681 if (cmd_size) { 5682 vn_encode_vkCmdCopyImageToBuffer(enc, cmd_flags, commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions); 5683 vn_instance_submit_command(vn_instance, submit); 5684 if (cmd_data != local_cmd_data) 5685 free(cmd_data); 5686 } 5687 } 5688 5689 static inline void vn_submit_vkCmdUpdateBuffer(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData, struct vn_instance_submit_command *submit) 5690 { 5691 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5692 void *cmd_data = local_cmd_data; 5693 size_t cmd_size = vn_sizeof_vkCmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData); 5694 if (cmd_size > sizeof(local_cmd_data)) { 5695 cmd_data = malloc(cmd_size); 5696 if (!cmd_data) 5697 cmd_size = 0; 5698 } 5699 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdUpdateBuffer_reply(commandBuffer, dstBuffer, dstOffset, dataSize, pData) : 0; 5700 5701 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5702 if (cmd_size) { 5703 vn_encode_vkCmdUpdateBuffer(enc, cmd_flags, commandBuffer, dstBuffer, dstOffset, dataSize, pData); 5704 vn_instance_submit_command(vn_instance, submit); 5705 if (cmd_data != local_cmd_data) 5706 free(cmd_data); 5707 } 5708 } 5709 5710 static inline void vn_submit_vkCmdFillBuffer(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data, struct vn_instance_submit_command *submit) 5711 { 5712 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5713 void *cmd_data = local_cmd_data; 5714 size_t cmd_size = vn_sizeof_vkCmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data); 5715 if (cmd_size > sizeof(local_cmd_data)) { 5716 cmd_data = malloc(cmd_size); 5717 if (!cmd_data) 5718 cmd_size = 0; 5719 } 5720 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdFillBuffer_reply(commandBuffer, dstBuffer, dstOffset, size, data) : 0; 5721 5722 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5723 if (cmd_size) { 5724 vn_encode_vkCmdFillBuffer(enc, cmd_flags, commandBuffer, dstBuffer, dstOffset, size, data); 5725 vn_instance_submit_command(vn_instance, submit); 5726 if (cmd_data != local_cmd_data) 5727 free(cmd_data); 5728 } 5729 } 5730 5731 static inline void vn_submit_vkCmdClearColorImage(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges, struct vn_instance_submit_command *submit) 5732 { 5733 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5734 void *cmd_data = local_cmd_data; 5735 size_t cmd_size = vn_sizeof_vkCmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges); 5736 if (cmd_size > sizeof(local_cmd_data)) { 5737 cmd_data = malloc(cmd_size); 5738 if (!cmd_data) 5739 cmd_size = 0; 5740 } 5741 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdClearColorImage_reply(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges) : 0; 5742 5743 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5744 if (cmd_size) { 5745 vn_encode_vkCmdClearColorImage(enc, cmd_flags, commandBuffer, image, imageLayout, pColor, rangeCount, pRanges); 5746 vn_instance_submit_command(vn_instance, submit); 5747 if (cmd_data != local_cmd_data) 5748 free(cmd_data); 5749 } 5750 } 5751 5752 static inline void vn_submit_vkCmdClearDepthStencilImage(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges, struct vn_instance_submit_command *submit) 5753 { 5754 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5755 void *cmd_data = local_cmd_data; 5756 size_t cmd_size = vn_sizeof_vkCmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges); 5757 if (cmd_size > sizeof(local_cmd_data)) { 5758 cmd_data = malloc(cmd_size); 5759 if (!cmd_data) 5760 cmd_size = 0; 5761 } 5762 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdClearDepthStencilImage_reply(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges) : 0; 5763 5764 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5765 if (cmd_size) { 5766 vn_encode_vkCmdClearDepthStencilImage(enc, cmd_flags, commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges); 5767 vn_instance_submit_command(vn_instance, submit); 5768 if (cmd_data != local_cmd_data) 5769 free(cmd_data); 5770 } 5771 } 5772 5773 static inline void vn_submit_vkCmdClearAttachments(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects, struct vn_instance_submit_command *submit) 5774 { 5775 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5776 void *cmd_data = local_cmd_data; 5777 size_t cmd_size = vn_sizeof_vkCmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects); 5778 if (cmd_size > sizeof(local_cmd_data)) { 5779 cmd_data = malloc(cmd_size); 5780 if (!cmd_data) 5781 cmd_size = 0; 5782 } 5783 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdClearAttachments_reply(commandBuffer, attachmentCount, pAttachments, rectCount, pRects) : 0; 5784 5785 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5786 if (cmd_size) { 5787 vn_encode_vkCmdClearAttachments(enc, cmd_flags, commandBuffer, attachmentCount, pAttachments, rectCount, pRects); 5788 vn_instance_submit_command(vn_instance, submit); 5789 if (cmd_data != local_cmd_data) 5790 free(cmd_data); 5791 } 5792 } 5793 5794 static inline void vn_submit_vkCmdResolveImage(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions, struct vn_instance_submit_command *submit) 5795 { 5796 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5797 void *cmd_data = local_cmd_data; 5798 size_t cmd_size = vn_sizeof_vkCmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); 5799 if (cmd_size > sizeof(local_cmd_data)) { 5800 cmd_data = malloc(cmd_size); 5801 if (!cmd_data) 5802 cmd_size = 0; 5803 } 5804 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdResolveImage_reply(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions) : 0; 5805 5806 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5807 if (cmd_size) { 5808 vn_encode_vkCmdResolveImage(enc, cmd_flags, commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); 5809 vn_instance_submit_command(vn_instance, submit); 5810 if (cmd_data != local_cmd_data) 5811 free(cmd_data); 5812 } 5813 } 5814 5815 static inline void vn_submit_vkCmdSetEvent(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask, struct vn_instance_submit_command *submit) 5816 { 5817 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5818 void *cmd_data = local_cmd_data; 5819 size_t cmd_size = vn_sizeof_vkCmdSetEvent(commandBuffer, event, stageMask); 5820 if (cmd_size > sizeof(local_cmd_data)) { 5821 cmd_data = malloc(cmd_size); 5822 if (!cmd_data) 5823 cmd_size = 0; 5824 } 5825 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdSetEvent_reply(commandBuffer, event, stageMask) : 0; 5826 5827 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5828 if (cmd_size) { 5829 vn_encode_vkCmdSetEvent(enc, cmd_flags, commandBuffer, event, stageMask); 5830 vn_instance_submit_command(vn_instance, submit); 5831 if (cmd_data != local_cmd_data) 5832 free(cmd_data); 5833 } 5834 } 5835 5836 static inline void vn_submit_vkCmdResetEvent(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask, struct vn_instance_submit_command *submit) 5837 { 5838 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5839 void *cmd_data = local_cmd_data; 5840 size_t cmd_size = vn_sizeof_vkCmdResetEvent(commandBuffer, event, stageMask); 5841 if (cmd_size > sizeof(local_cmd_data)) { 5842 cmd_data = malloc(cmd_size); 5843 if (!cmd_data) 5844 cmd_size = 0; 5845 } 5846 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdResetEvent_reply(commandBuffer, event, stageMask) : 0; 5847 5848 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5849 if (cmd_size) { 5850 vn_encode_vkCmdResetEvent(enc, cmd_flags, commandBuffer, event, stageMask); 5851 vn_instance_submit_command(vn_instance, submit); 5852 if (cmd_data != local_cmd_data) 5853 free(cmd_data); 5854 } 5855 } 5856 5857 static inline void vn_submit_vkCmdWaitEvents(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers, struct vn_instance_submit_command *submit) 5858 { 5859 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5860 void *cmd_data = local_cmd_data; 5861 size_t cmd_size = vn_sizeof_vkCmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); 5862 if (cmd_size > sizeof(local_cmd_data)) { 5863 cmd_data = malloc(cmd_size); 5864 if (!cmd_data) 5865 cmd_size = 0; 5866 } 5867 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdWaitEvents_reply(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers) : 0; 5868 5869 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5870 if (cmd_size) { 5871 vn_encode_vkCmdWaitEvents(enc, cmd_flags, commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); 5872 vn_instance_submit_command(vn_instance, submit); 5873 if (cmd_data != local_cmd_data) 5874 free(cmd_data); 5875 } 5876 } 5877 5878 static inline void vn_submit_vkCmdPipelineBarrier(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers, struct vn_instance_submit_command *submit) 5879 { 5880 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5881 void *cmd_data = local_cmd_data; 5882 size_t cmd_size = vn_sizeof_vkCmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); 5883 if (cmd_size > sizeof(local_cmd_data)) { 5884 cmd_data = malloc(cmd_size); 5885 if (!cmd_data) 5886 cmd_size = 0; 5887 } 5888 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdPipelineBarrier_reply(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers) : 0; 5889 5890 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5891 if (cmd_size) { 5892 vn_encode_vkCmdPipelineBarrier(enc, cmd_flags, commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); 5893 vn_instance_submit_command(vn_instance, submit); 5894 if (cmd_data != local_cmd_data) 5895 free(cmd_data); 5896 } 5897 } 5898 5899 static inline void vn_submit_vkCmdBeginQuery(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, struct vn_instance_submit_command *submit) 5900 { 5901 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5902 void *cmd_data = local_cmd_data; 5903 size_t cmd_size = vn_sizeof_vkCmdBeginQuery(commandBuffer, queryPool, query, flags); 5904 if (cmd_size > sizeof(local_cmd_data)) { 5905 cmd_data = malloc(cmd_size); 5906 if (!cmd_data) 5907 cmd_size = 0; 5908 } 5909 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdBeginQuery_reply(commandBuffer, queryPool, query, flags) : 0; 5910 5911 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5912 if (cmd_size) { 5913 vn_encode_vkCmdBeginQuery(enc, cmd_flags, commandBuffer, queryPool, query, flags); 5914 vn_instance_submit_command(vn_instance, submit); 5915 if (cmd_data != local_cmd_data) 5916 free(cmd_data); 5917 } 5918 } 5919 5920 static inline void vn_submit_vkCmdEndQuery(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, struct vn_instance_submit_command *submit) 5921 { 5922 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5923 void *cmd_data = local_cmd_data; 5924 size_t cmd_size = vn_sizeof_vkCmdEndQuery(commandBuffer, queryPool, query); 5925 if (cmd_size > sizeof(local_cmd_data)) { 5926 cmd_data = malloc(cmd_size); 5927 if (!cmd_data) 5928 cmd_size = 0; 5929 } 5930 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdEndQuery_reply(commandBuffer, queryPool, query) : 0; 5931 5932 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5933 if (cmd_size) { 5934 vn_encode_vkCmdEndQuery(enc, cmd_flags, commandBuffer, queryPool, query); 5935 vn_instance_submit_command(vn_instance, submit); 5936 if (cmd_data != local_cmd_data) 5937 free(cmd_data); 5938 } 5939 } 5940 5941 static inline void vn_submit_vkCmdResetQueryPool(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, struct vn_instance_submit_command *submit) 5942 { 5943 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5944 void *cmd_data = local_cmd_data; 5945 size_t cmd_size = vn_sizeof_vkCmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount); 5946 if (cmd_size > sizeof(local_cmd_data)) { 5947 cmd_data = malloc(cmd_size); 5948 if (!cmd_data) 5949 cmd_size = 0; 5950 } 5951 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdResetQueryPool_reply(commandBuffer, queryPool, firstQuery, queryCount) : 0; 5952 5953 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5954 if (cmd_size) { 5955 vn_encode_vkCmdResetQueryPool(enc, cmd_flags, commandBuffer, queryPool, firstQuery, queryCount); 5956 vn_instance_submit_command(vn_instance, submit); 5957 if (cmd_data != local_cmd_data) 5958 free(cmd_data); 5959 } 5960 } 5961 5962 static inline void vn_submit_vkCmdWriteTimestamp(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query, struct vn_instance_submit_command *submit) 5963 { 5964 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5965 void *cmd_data = local_cmd_data; 5966 size_t cmd_size = vn_sizeof_vkCmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query); 5967 if (cmd_size > sizeof(local_cmd_data)) { 5968 cmd_data = malloc(cmd_size); 5969 if (!cmd_data) 5970 cmd_size = 0; 5971 } 5972 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdWriteTimestamp_reply(commandBuffer, pipelineStage, queryPool, query) : 0; 5973 5974 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5975 if (cmd_size) { 5976 vn_encode_vkCmdWriteTimestamp(enc, cmd_flags, commandBuffer, pipelineStage, queryPool, query); 5977 vn_instance_submit_command(vn_instance, submit); 5978 if (cmd_data != local_cmd_data) 5979 free(cmd_data); 5980 } 5981 } 5982 5983 static inline void vn_submit_vkCmdCopyQueryPoolResults(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags, struct vn_instance_submit_command *submit) 5984 { 5985 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 5986 void *cmd_data = local_cmd_data; 5987 size_t cmd_size = vn_sizeof_vkCmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags); 5988 if (cmd_size > sizeof(local_cmd_data)) { 5989 cmd_data = malloc(cmd_size); 5990 if (!cmd_data) 5991 cmd_size = 0; 5992 } 5993 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdCopyQueryPoolResults_reply(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags) : 0; 5994 5995 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 5996 if (cmd_size) { 5997 vn_encode_vkCmdCopyQueryPoolResults(enc, cmd_flags, commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags); 5998 vn_instance_submit_command(vn_instance, submit); 5999 if (cmd_data != local_cmd_data) 6000 free(cmd_data); 6001 } 6002 } 6003 6004 static inline void vn_submit_vkCmdPushConstants(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues, struct vn_instance_submit_command *submit) 6005 { 6006 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 6007 void *cmd_data = local_cmd_data; 6008 size_t cmd_size = vn_sizeof_vkCmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues); 6009 if (cmd_size > sizeof(local_cmd_data)) { 6010 cmd_data = malloc(cmd_size); 6011 if (!cmd_data) 6012 cmd_size = 0; 6013 } 6014 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdPushConstants_reply(commandBuffer, layout, stageFlags, offset, size, pValues) : 0; 6015 6016 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 6017 if (cmd_size) { 6018 vn_encode_vkCmdPushConstants(enc, cmd_flags, commandBuffer, layout, stageFlags, offset, size, pValues); 6019 vn_instance_submit_command(vn_instance, submit); 6020 if (cmd_data != local_cmd_data) 6021 free(cmd_data); 6022 } 6023 } 6024 6025 static inline void vn_submit_vkCmdBeginRenderPass(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents, struct vn_instance_submit_command *submit) 6026 { 6027 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 6028 void *cmd_data = local_cmd_data; 6029 size_t cmd_size = vn_sizeof_vkCmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents); 6030 if (cmd_size > sizeof(local_cmd_data)) { 6031 cmd_data = malloc(cmd_size); 6032 if (!cmd_data) 6033 cmd_size = 0; 6034 } 6035 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdBeginRenderPass_reply(commandBuffer, pRenderPassBegin, contents) : 0; 6036 6037 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 6038 if (cmd_size) { 6039 vn_encode_vkCmdBeginRenderPass(enc, cmd_flags, commandBuffer, pRenderPassBegin, contents); 6040 vn_instance_submit_command(vn_instance, submit); 6041 if (cmd_data != local_cmd_data) 6042 free(cmd_data); 6043 } 6044 } 6045 6046 static inline void vn_submit_vkCmdNextSubpass(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkSubpassContents contents, struct vn_instance_submit_command *submit) 6047 { 6048 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 6049 void *cmd_data = local_cmd_data; 6050 size_t cmd_size = vn_sizeof_vkCmdNextSubpass(commandBuffer, contents); 6051 if (cmd_size > sizeof(local_cmd_data)) { 6052 cmd_data = malloc(cmd_size); 6053 if (!cmd_data) 6054 cmd_size = 0; 6055 } 6056 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdNextSubpass_reply(commandBuffer, contents) : 0; 6057 6058 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 6059 if (cmd_size) { 6060 vn_encode_vkCmdNextSubpass(enc, cmd_flags, commandBuffer, contents); 6061 vn_instance_submit_command(vn_instance, submit); 6062 if (cmd_data != local_cmd_data) 6063 free(cmd_data); 6064 } 6065 } 6066 6067 static inline void vn_submit_vkCmdEndRenderPass(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, struct vn_instance_submit_command *submit) 6068 { 6069 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 6070 void *cmd_data = local_cmd_data; 6071 size_t cmd_size = vn_sizeof_vkCmdEndRenderPass(commandBuffer); 6072 if (cmd_size > sizeof(local_cmd_data)) { 6073 cmd_data = malloc(cmd_size); 6074 if (!cmd_data) 6075 cmd_size = 0; 6076 } 6077 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdEndRenderPass_reply(commandBuffer) : 0; 6078 6079 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 6080 if (cmd_size) { 6081 vn_encode_vkCmdEndRenderPass(enc, cmd_flags, commandBuffer); 6082 vn_instance_submit_command(vn_instance, submit); 6083 if (cmd_data != local_cmd_data) 6084 free(cmd_data); 6085 } 6086 } 6087 6088 static inline void vn_submit_vkCmdExecuteCommands(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers, struct vn_instance_submit_command *submit) 6089 { 6090 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 6091 void *cmd_data = local_cmd_data; 6092 size_t cmd_size = vn_sizeof_vkCmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers); 6093 if (cmd_size > sizeof(local_cmd_data)) { 6094 cmd_data = malloc(cmd_size); 6095 if (!cmd_data) 6096 cmd_size = 0; 6097 } 6098 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdExecuteCommands_reply(commandBuffer, commandBufferCount, pCommandBuffers) : 0; 6099 6100 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 6101 if (cmd_size) { 6102 vn_encode_vkCmdExecuteCommands(enc, cmd_flags, commandBuffer, commandBufferCount, pCommandBuffers); 6103 vn_instance_submit_command(vn_instance, submit); 6104 if (cmd_data != local_cmd_data) 6105 free(cmd_data); 6106 } 6107 } 6108 6109 static inline void vn_submit_vkCmdSetDeviceMask(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t deviceMask, struct vn_instance_submit_command *submit) 6110 { 6111 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 6112 void *cmd_data = local_cmd_data; 6113 size_t cmd_size = vn_sizeof_vkCmdSetDeviceMask(commandBuffer, deviceMask); 6114 if (cmd_size > sizeof(local_cmd_data)) { 6115 cmd_data = malloc(cmd_size); 6116 if (!cmd_data) 6117 cmd_size = 0; 6118 } 6119 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdSetDeviceMask_reply(commandBuffer, deviceMask) : 0; 6120 6121 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 6122 if (cmd_size) { 6123 vn_encode_vkCmdSetDeviceMask(enc, cmd_flags, commandBuffer, deviceMask); 6124 vn_instance_submit_command(vn_instance, submit); 6125 if (cmd_data != local_cmd_data) 6126 free(cmd_data); 6127 } 6128 } 6129 6130 static inline void vn_submit_vkCmdDispatchBase(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, struct vn_instance_submit_command *submit) 6131 { 6132 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 6133 void *cmd_data = local_cmd_data; 6134 size_t cmd_size = vn_sizeof_vkCmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ); 6135 if (cmd_size > sizeof(local_cmd_data)) { 6136 cmd_data = malloc(cmd_size); 6137 if (!cmd_data) 6138 cmd_size = 0; 6139 } 6140 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdDispatchBase_reply(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ) : 0; 6141 6142 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 6143 if (cmd_size) { 6144 vn_encode_vkCmdDispatchBase(enc, cmd_flags, commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ); 6145 vn_instance_submit_command(vn_instance, submit); 6146 if (cmd_data != local_cmd_data) 6147 free(cmd_data); 6148 } 6149 } 6150 6151 static inline void vn_submit_vkCmdBeginRenderPass2(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo, struct vn_instance_submit_command *submit) 6152 { 6153 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 6154 void *cmd_data = local_cmd_data; 6155 size_t cmd_size = vn_sizeof_vkCmdBeginRenderPass2(commandBuffer, pRenderPassBegin, pSubpassBeginInfo); 6156 if (cmd_size > sizeof(local_cmd_data)) { 6157 cmd_data = malloc(cmd_size); 6158 if (!cmd_data) 6159 cmd_size = 0; 6160 } 6161 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdBeginRenderPass2_reply(commandBuffer, pRenderPassBegin, pSubpassBeginInfo) : 0; 6162 6163 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 6164 if (cmd_size) { 6165 vn_encode_vkCmdBeginRenderPass2(enc, cmd_flags, commandBuffer, pRenderPassBegin, pSubpassBeginInfo); 6166 vn_instance_submit_command(vn_instance, submit); 6167 if (cmd_data != local_cmd_data) 6168 free(cmd_data); 6169 } 6170 } 6171 6172 static inline void vn_submit_vkCmdNextSubpass2(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo, struct vn_instance_submit_command *submit) 6173 { 6174 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 6175 void *cmd_data = local_cmd_data; 6176 size_t cmd_size = vn_sizeof_vkCmdNextSubpass2(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo); 6177 if (cmd_size > sizeof(local_cmd_data)) { 6178 cmd_data = malloc(cmd_size); 6179 if (!cmd_data) 6180 cmd_size = 0; 6181 } 6182 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdNextSubpass2_reply(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo) : 0; 6183 6184 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 6185 if (cmd_size) { 6186 vn_encode_vkCmdNextSubpass2(enc, cmd_flags, commandBuffer, pSubpassBeginInfo, pSubpassEndInfo); 6187 vn_instance_submit_command(vn_instance, submit); 6188 if (cmd_data != local_cmd_data) 6189 free(cmd_data); 6190 } 6191 } 6192 6193 static inline void vn_submit_vkCmdEndRenderPass2(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo, struct vn_instance_submit_command *submit) 6194 { 6195 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 6196 void *cmd_data = local_cmd_data; 6197 size_t cmd_size = vn_sizeof_vkCmdEndRenderPass2(commandBuffer, pSubpassEndInfo); 6198 if (cmd_size > sizeof(local_cmd_data)) { 6199 cmd_data = malloc(cmd_size); 6200 if (!cmd_data) 6201 cmd_size = 0; 6202 } 6203 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdEndRenderPass2_reply(commandBuffer, pSubpassEndInfo) : 0; 6204 6205 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 6206 if (cmd_size) { 6207 vn_encode_vkCmdEndRenderPass2(enc, cmd_flags, commandBuffer, pSubpassEndInfo); 6208 vn_instance_submit_command(vn_instance, submit); 6209 if (cmd_data != local_cmd_data) 6210 free(cmd_data); 6211 } 6212 } 6213 6214 static inline void vn_submit_vkCmdDrawIndirectCount(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, struct vn_instance_submit_command *submit) 6215 { 6216 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 6217 void *cmd_data = local_cmd_data; 6218 size_t cmd_size = vn_sizeof_vkCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); 6219 if (cmd_size > sizeof(local_cmd_data)) { 6220 cmd_data = malloc(cmd_size); 6221 if (!cmd_data) 6222 cmd_size = 0; 6223 } 6224 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdDrawIndirectCount_reply(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) : 0; 6225 6226 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 6227 if (cmd_size) { 6228 vn_encode_vkCmdDrawIndirectCount(enc, cmd_flags, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); 6229 vn_instance_submit_command(vn_instance, submit); 6230 if (cmd_data != local_cmd_data) 6231 free(cmd_data); 6232 } 6233 } 6234 6235 static inline void vn_submit_vkCmdDrawIndexedIndirectCount(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, struct vn_instance_submit_command *submit) 6236 { 6237 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 6238 void *cmd_data = local_cmd_data; 6239 size_t cmd_size = vn_sizeof_vkCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); 6240 if (cmd_size > sizeof(local_cmd_data)) { 6241 cmd_data = malloc(cmd_size); 6242 if (!cmd_data) 6243 cmd_size = 0; 6244 } 6245 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdDrawIndexedIndirectCount_reply(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) : 0; 6246 6247 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 6248 if (cmd_size) { 6249 vn_encode_vkCmdDrawIndexedIndirectCount(enc, cmd_flags, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); 6250 vn_instance_submit_command(vn_instance, submit); 6251 if (cmd_data != local_cmd_data) 6252 free(cmd_data); 6253 } 6254 } 6255 6256 static inline void vn_submit_vkCmdBindTransformFeedbackBuffersEXT(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, struct vn_instance_submit_command *submit) 6257 { 6258 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 6259 void *cmd_data = local_cmd_data; 6260 size_t cmd_size = vn_sizeof_vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes); 6261 if (cmd_size > sizeof(local_cmd_data)) { 6262 cmd_data = malloc(cmd_size); 6263 if (!cmd_data) 6264 cmd_size = 0; 6265 } 6266 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdBindTransformFeedbackBuffersEXT_reply(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes) : 0; 6267 6268 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 6269 if (cmd_size) { 6270 vn_encode_vkCmdBindTransformFeedbackBuffersEXT(enc, cmd_flags, commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes); 6271 vn_instance_submit_command(vn_instance, submit); 6272 if (cmd_data != local_cmd_data) 6273 free(cmd_data); 6274 } 6275 } 6276 6277 static inline void vn_submit_vkCmdBeginTransformFeedbackEXT(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets, struct vn_instance_submit_command *submit) 6278 { 6279 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 6280 void *cmd_data = local_cmd_data; 6281 size_t cmd_size = vn_sizeof_vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets); 6282 if (cmd_size > sizeof(local_cmd_data)) { 6283 cmd_data = malloc(cmd_size); 6284 if (!cmd_data) 6285 cmd_size = 0; 6286 } 6287 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdBeginTransformFeedbackEXT_reply(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) : 0; 6288 6289 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 6290 if (cmd_size) { 6291 vn_encode_vkCmdBeginTransformFeedbackEXT(enc, cmd_flags, commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets); 6292 vn_instance_submit_command(vn_instance, submit); 6293 if (cmd_data != local_cmd_data) 6294 free(cmd_data); 6295 } 6296 } 6297 6298 static inline void vn_submit_vkCmdEndTransformFeedbackEXT(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets, struct vn_instance_submit_command *submit) 6299 { 6300 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 6301 void *cmd_data = local_cmd_data; 6302 size_t cmd_size = vn_sizeof_vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets); 6303 if (cmd_size > sizeof(local_cmd_data)) { 6304 cmd_data = malloc(cmd_size); 6305 if (!cmd_data) 6306 cmd_size = 0; 6307 } 6308 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdEndTransformFeedbackEXT_reply(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets) : 0; 6309 6310 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 6311 if (cmd_size) { 6312 vn_encode_vkCmdEndTransformFeedbackEXT(enc, cmd_flags, commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets); 6313 vn_instance_submit_command(vn_instance, submit); 6314 if (cmd_data != local_cmd_data) 6315 free(cmd_data); 6316 } 6317 } 6318 6319 static inline void vn_submit_vkCmdBeginQueryIndexedEXT(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index, struct vn_instance_submit_command *submit) 6320 { 6321 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 6322 void *cmd_data = local_cmd_data; 6323 size_t cmd_size = vn_sizeof_vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index); 6324 if (cmd_size > sizeof(local_cmd_data)) { 6325 cmd_data = malloc(cmd_size); 6326 if (!cmd_data) 6327 cmd_size = 0; 6328 } 6329 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdBeginQueryIndexedEXT_reply(commandBuffer, queryPool, query, flags, index) : 0; 6330 6331 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 6332 if (cmd_size) { 6333 vn_encode_vkCmdBeginQueryIndexedEXT(enc, cmd_flags, commandBuffer, queryPool, query, flags, index); 6334 vn_instance_submit_command(vn_instance, submit); 6335 if (cmd_data != local_cmd_data) 6336 free(cmd_data); 6337 } 6338 } 6339 6340 static inline void vn_submit_vkCmdEndQueryIndexedEXT(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index, struct vn_instance_submit_command *submit) 6341 { 6342 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 6343 void *cmd_data = local_cmd_data; 6344 size_t cmd_size = vn_sizeof_vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index); 6345 if (cmd_size > sizeof(local_cmd_data)) { 6346 cmd_data = malloc(cmd_size); 6347 if (!cmd_data) 6348 cmd_size = 0; 6349 } 6350 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdEndQueryIndexedEXT_reply(commandBuffer, queryPool, query, index) : 0; 6351 6352 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 6353 if (cmd_size) { 6354 vn_encode_vkCmdEndQueryIndexedEXT(enc, cmd_flags, commandBuffer, queryPool, query, index); 6355 vn_instance_submit_command(vn_instance, submit); 6356 if (cmd_data != local_cmd_data) 6357 free(cmd_data); 6358 } 6359 } 6360 6361 static inline void vn_submit_vkCmdDrawIndirectByteCountEXT(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride, struct vn_instance_submit_command *submit) 6362 { 6363 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 6364 void *cmd_data = local_cmd_data; 6365 size_t cmd_size = vn_sizeof_vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride); 6366 if (cmd_size > sizeof(local_cmd_data)) { 6367 cmd_data = malloc(cmd_size); 6368 if (!cmd_data) 6369 cmd_size = 0; 6370 } 6371 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdDrawIndirectByteCountEXT_reply(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride) : 0; 6372 6373 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 6374 if (cmd_size) { 6375 vn_encode_vkCmdDrawIndirectByteCountEXT(enc, cmd_flags, commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride); 6376 vn_instance_submit_command(vn_instance, submit); 6377 if (cmd_data != local_cmd_data) 6378 free(cmd_data); 6379 } 6380 } 6381 6382 static inline VkResult vn_call_vkAllocateCommandBuffers(struct vn_instance *vn_instance, VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) 6383 { 6384 VN_TRACE_FUNC(); 6385 6386 struct vn_instance_submit_command submit; 6387 vn_submit_vkAllocateCommandBuffers(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pAllocateInfo, pCommandBuffers, &submit); 6388 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6389 if (dec) { 6390 const VkResult ret = vn_decode_vkAllocateCommandBuffers_reply(dec, device, pAllocateInfo, pCommandBuffers); 6391 vn_instance_free_command_reply(vn_instance, &submit); 6392 return ret; 6393 } else { 6394 return VK_ERROR_OUT_OF_HOST_MEMORY; 6395 } 6396 } 6397 6398 static inline void vn_async_vkAllocateCommandBuffers(struct vn_instance *vn_instance, VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) 6399 { 6400 struct vn_instance_submit_command submit; 6401 vn_submit_vkAllocateCommandBuffers(vn_instance, 0, device, pAllocateInfo, pCommandBuffers, &submit); 6402 } 6403 6404 static inline void vn_call_vkFreeCommandBuffers(struct vn_instance *vn_instance, VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) 6405 { 6406 VN_TRACE_FUNC(); 6407 6408 struct vn_instance_submit_command submit; 6409 vn_submit_vkFreeCommandBuffers(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, commandPool, commandBufferCount, pCommandBuffers, &submit); 6410 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6411 if (dec) { 6412 vn_decode_vkFreeCommandBuffers_reply(dec, device, commandPool, commandBufferCount, pCommandBuffers); 6413 vn_instance_free_command_reply(vn_instance, &submit); 6414 } 6415 } 6416 6417 static inline void vn_async_vkFreeCommandBuffers(struct vn_instance *vn_instance, VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) 6418 { 6419 struct vn_instance_submit_command submit; 6420 vn_submit_vkFreeCommandBuffers(vn_instance, 0, device, commandPool, commandBufferCount, pCommandBuffers, &submit); 6421 } 6422 6423 static inline VkResult vn_call_vkBeginCommandBuffer(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) 6424 { 6425 VN_TRACE_FUNC(); 6426 6427 struct vn_instance_submit_command submit; 6428 vn_submit_vkBeginCommandBuffer(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, pBeginInfo, &submit); 6429 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6430 if (dec) { 6431 const VkResult ret = vn_decode_vkBeginCommandBuffer_reply(dec, commandBuffer, pBeginInfo); 6432 vn_instance_free_command_reply(vn_instance, &submit); 6433 return ret; 6434 } else { 6435 return VK_ERROR_OUT_OF_HOST_MEMORY; 6436 } 6437 } 6438 6439 static inline void vn_async_vkBeginCommandBuffer(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) 6440 { 6441 struct vn_instance_submit_command submit; 6442 vn_submit_vkBeginCommandBuffer(vn_instance, 0, commandBuffer, pBeginInfo, &submit); 6443 } 6444 6445 static inline VkResult vn_call_vkEndCommandBuffer(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer) 6446 { 6447 VN_TRACE_FUNC(); 6448 6449 struct vn_instance_submit_command submit; 6450 vn_submit_vkEndCommandBuffer(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, &submit); 6451 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6452 if (dec) { 6453 const VkResult ret = vn_decode_vkEndCommandBuffer_reply(dec, commandBuffer); 6454 vn_instance_free_command_reply(vn_instance, &submit); 6455 return ret; 6456 } else { 6457 return VK_ERROR_OUT_OF_HOST_MEMORY; 6458 } 6459 } 6460 6461 static inline void vn_async_vkEndCommandBuffer(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer) 6462 { 6463 struct vn_instance_submit_command submit; 6464 vn_submit_vkEndCommandBuffer(vn_instance, 0, commandBuffer, &submit); 6465 } 6466 6467 static inline VkResult vn_call_vkResetCommandBuffer(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) 6468 { 6469 VN_TRACE_FUNC(); 6470 6471 struct vn_instance_submit_command submit; 6472 vn_submit_vkResetCommandBuffer(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, flags, &submit); 6473 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6474 if (dec) { 6475 const VkResult ret = vn_decode_vkResetCommandBuffer_reply(dec, commandBuffer, flags); 6476 vn_instance_free_command_reply(vn_instance, &submit); 6477 return ret; 6478 } else { 6479 return VK_ERROR_OUT_OF_HOST_MEMORY; 6480 } 6481 } 6482 6483 static inline void vn_async_vkResetCommandBuffer(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) 6484 { 6485 struct vn_instance_submit_command submit; 6486 vn_submit_vkResetCommandBuffer(vn_instance, 0, commandBuffer, flags, &submit); 6487 } 6488 6489 static inline void vn_call_vkCmdBindPipeline(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) 6490 { 6491 VN_TRACE_FUNC(); 6492 6493 struct vn_instance_submit_command submit; 6494 vn_submit_vkCmdBindPipeline(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, pipelineBindPoint, pipeline, &submit); 6495 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6496 if (dec) { 6497 vn_decode_vkCmdBindPipeline_reply(dec, commandBuffer, pipelineBindPoint, pipeline); 6498 vn_instance_free_command_reply(vn_instance, &submit); 6499 } 6500 } 6501 6502 static inline void vn_async_vkCmdBindPipeline(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) 6503 { 6504 struct vn_instance_submit_command submit; 6505 vn_submit_vkCmdBindPipeline(vn_instance, 0, commandBuffer, pipelineBindPoint, pipeline, &submit); 6506 } 6507 6508 static inline void vn_call_vkCmdSetViewport(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports) 6509 { 6510 VN_TRACE_FUNC(); 6511 6512 struct vn_instance_submit_command submit; 6513 vn_submit_vkCmdSetViewport(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, firstViewport, viewportCount, pViewports, &submit); 6514 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6515 if (dec) { 6516 vn_decode_vkCmdSetViewport_reply(dec, commandBuffer, firstViewport, viewportCount, pViewports); 6517 vn_instance_free_command_reply(vn_instance, &submit); 6518 } 6519 } 6520 6521 static inline void vn_async_vkCmdSetViewport(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports) 6522 { 6523 struct vn_instance_submit_command submit; 6524 vn_submit_vkCmdSetViewport(vn_instance, 0, commandBuffer, firstViewport, viewportCount, pViewports, &submit); 6525 } 6526 6527 static inline void vn_call_vkCmdSetScissor(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors) 6528 { 6529 VN_TRACE_FUNC(); 6530 6531 struct vn_instance_submit_command submit; 6532 vn_submit_vkCmdSetScissor(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, firstScissor, scissorCount, pScissors, &submit); 6533 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6534 if (dec) { 6535 vn_decode_vkCmdSetScissor_reply(dec, commandBuffer, firstScissor, scissorCount, pScissors); 6536 vn_instance_free_command_reply(vn_instance, &submit); 6537 } 6538 } 6539 6540 static inline void vn_async_vkCmdSetScissor(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors) 6541 { 6542 struct vn_instance_submit_command submit; 6543 vn_submit_vkCmdSetScissor(vn_instance, 0, commandBuffer, firstScissor, scissorCount, pScissors, &submit); 6544 } 6545 6546 static inline void vn_call_vkCmdSetLineWidth(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, float lineWidth) 6547 { 6548 VN_TRACE_FUNC(); 6549 6550 struct vn_instance_submit_command submit; 6551 vn_submit_vkCmdSetLineWidth(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, lineWidth, &submit); 6552 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6553 if (dec) { 6554 vn_decode_vkCmdSetLineWidth_reply(dec, commandBuffer, lineWidth); 6555 vn_instance_free_command_reply(vn_instance, &submit); 6556 } 6557 } 6558 6559 static inline void vn_async_vkCmdSetLineWidth(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, float lineWidth) 6560 { 6561 struct vn_instance_submit_command submit; 6562 vn_submit_vkCmdSetLineWidth(vn_instance, 0, commandBuffer, lineWidth, &submit); 6563 } 6564 6565 static inline void vn_call_vkCmdSetDepthBias(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) 6566 { 6567 VN_TRACE_FUNC(); 6568 6569 struct vn_instance_submit_command submit; 6570 vn_submit_vkCmdSetDepthBias(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor, &submit); 6571 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6572 if (dec) { 6573 vn_decode_vkCmdSetDepthBias_reply(dec, commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor); 6574 vn_instance_free_command_reply(vn_instance, &submit); 6575 } 6576 } 6577 6578 static inline void vn_async_vkCmdSetDepthBias(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) 6579 { 6580 struct vn_instance_submit_command submit; 6581 vn_submit_vkCmdSetDepthBias(vn_instance, 0, commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor, &submit); 6582 } 6583 6584 static inline void vn_call_vkCmdSetBlendConstants(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, const float blendConstants[4]) 6585 { 6586 VN_TRACE_FUNC(); 6587 6588 struct vn_instance_submit_command submit; 6589 vn_submit_vkCmdSetBlendConstants(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, blendConstants, &submit); 6590 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6591 if (dec) { 6592 vn_decode_vkCmdSetBlendConstants_reply(dec, commandBuffer, blendConstants); 6593 vn_instance_free_command_reply(vn_instance, &submit); 6594 } 6595 } 6596 6597 static inline void vn_async_vkCmdSetBlendConstants(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, const float blendConstants[4]) 6598 { 6599 struct vn_instance_submit_command submit; 6600 vn_submit_vkCmdSetBlendConstants(vn_instance, 0, commandBuffer, blendConstants, &submit); 6601 } 6602 6603 static inline void vn_call_vkCmdSetDepthBounds(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) 6604 { 6605 VN_TRACE_FUNC(); 6606 6607 struct vn_instance_submit_command submit; 6608 vn_submit_vkCmdSetDepthBounds(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, minDepthBounds, maxDepthBounds, &submit); 6609 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6610 if (dec) { 6611 vn_decode_vkCmdSetDepthBounds_reply(dec, commandBuffer, minDepthBounds, maxDepthBounds); 6612 vn_instance_free_command_reply(vn_instance, &submit); 6613 } 6614 } 6615 6616 static inline void vn_async_vkCmdSetDepthBounds(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) 6617 { 6618 struct vn_instance_submit_command submit; 6619 vn_submit_vkCmdSetDepthBounds(vn_instance, 0, commandBuffer, minDepthBounds, maxDepthBounds, &submit); 6620 } 6621 6622 static inline void vn_call_vkCmdSetStencilCompareMask(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask) 6623 { 6624 VN_TRACE_FUNC(); 6625 6626 struct vn_instance_submit_command submit; 6627 vn_submit_vkCmdSetStencilCompareMask(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, faceMask, compareMask, &submit); 6628 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6629 if (dec) { 6630 vn_decode_vkCmdSetStencilCompareMask_reply(dec, commandBuffer, faceMask, compareMask); 6631 vn_instance_free_command_reply(vn_instance, &submit); 6632 } 6633 } 6634 6635 static inline void vn_async_vkCmdSetStencilCompareMask(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask) 6636 { 6637 struct vn_instance_submit_command submit; 6638 vn_submit_vkCmdSetStencilCompareMask(vn_instance, 0, commandBuffer, faceMask, compareMask, &submit); 6639 } 6640 6641 static inline void vn_call_vkCmdSetStencilWriteMask(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask) 6642 { 6643 VN_TRACE_FUNC(); 6644 6645 struct vn_instance_submit_command submit; 6646 vn_submit_vkCmdSetStencilWriteMask(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, faceMask, writeMask, &submit); 6647 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6648 if (dec) { 6649 vn_decode_vkCmdSetStencilWriteMask_reply(dec, commandBuffer, faceMask, writeMask); 6650 vn_instance_free_command_reply(vn_instance, &submit); 6651 } 6652 } 6653 6654 static inline void vn_async_vkCmdSetStencilWriteMask(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask) 6655 { 6656 struct vn_instance_submit_command submit; 6657 vn_submit_vkCmdSetStencilWriteMask(vn_instance, 0, commandBuffer, faceMask, writeMask, &submit); 6658 } 6659 6660 static inline void vn_call_vkCmdSetStencilReference(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference) 6661 { 6662 VN_TRACE_FUNC(); 6663 6664 struct vn_instance_submit_command submit; 6665 vn_submit_vkCmdSetStencilReference(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, faceMask, reference, &submit); 6666 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6667 if (dec) { 6668 vn_decode_vkCmdSetStencilReference_reply(dec, commandBuffer, faceMask, reference); 6669 vn_instance_free_command_reply(vn_instance, &submit); 6670 } 6671 } 6672 6673 static inline void vn_async_vkCmdSetStencilReference(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference) 6674 { 6675 struct vn_instance_submit_command submit; 6676 vn_submit_vkCmdSetStencilReference(vn_instance, 0, commandBuffer, faceMask, reference, &submit); 6677 } 6678 6679 static inline void vn_call_vkCmdBindDescriptorSets(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) 6680 { 6681 VN_TRACE_FUNC(); 6682 6683 struct vn_instance_submit_command submit; 6684 vn_submit_vkCmdBindDescriptorSets(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets, &submit); 6685 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6686 if (dec) { 6687 vn_decode_vkCmdBindDescriptorSets_reply(dec, commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets); 6688 vn_instance_free_command_reply(vn_instance, &submit); 6689 } 6690 } 6691 6692 static inline void vn_async_vkCmdBindDescriptorSets(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) 6693 { 6694 struct vn_instance_submit_command submit; 6695 vn_submit_vkCmdBindDescriptorSets(vn_instance, 0, commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets, &submit); 6696 } 6697 6698 static inline void vn_call_vkCmdBindIndexBuffer(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) 6699 { 6700 VN_TRACE_FUNC(); 6701 6702 struct vn_instance_submit_command submit; 6703 vn_submit_vkCmdBindIndexBuffer(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, buffer, offset, indexType, &submit); 6704 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6705 if (dec) { 6706 vn_decode_vkCmdBindIndexBuffer_reply(dec, commandBuffer, buffer, offset, indexType); 6707 vn_instance_free_command_reply(vn_instance, &submit); 6708 } 6709 } 6710 6711 static inline void vn_async_vkCmdBindIndexBuffer(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) 6712 { 6713 struct vn_instance_submit_command submit; 6714 vn_submit_vkCmdBindIndexBuffer(vn_instance, 0, commandBuffer, buffer, offset, indexType, &submit); 6715 } 6716 6717 static inline void vn_call_vkCmdBindVertexBuffers(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) 6718 { 6719 VN_TRACE_FUNC(); 6720 6721 struct vn_instance_submit_command submit; 6722 vn_submit_vkCmdBindVertexBuffers(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, &submit); 6723 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6724 if (dec) { 6725 vn_decode_vkCmdBindVertexBuffers_reply(dec, commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets); 6726 vn_instance_free_command_reply(vn_instance, &submit); 6727 } 6728 } 6729 6730 static inline void vn_async_vkCmdBindVertexBuffers(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) 6731 { 6732 struct vn_instance_submit_command submit; 6733 vn_submit_vkCmdBindVertexBuffers(vn_instance, 0, commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, &submit); 6734 } 6735 6736 static inline void vn_call_vkCmdDraw(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) 6737 { 6738 VN_TRACE_FUNC(); 6739 6740 struct vn_instance_submit_command submit; 6741 vn_submit_vkCmdDraw(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance, &submit); 6742 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6743 if (dec) { 6744 vn_decode_vkCmdDraw_reply(dec, commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance); 6745 vn_instance_free_command_reply(vn_instance, &submit); 6746 } 6747 } 6748 6749 static inline void vn_async_vkCmdDraw(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) 6750 { 6751 struct vn_instance_submit_command submit; 6752 vn_submit_vkCmdDraw(vn_instance, 0, commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance, &submit); 6753 } 6754 6755 static inline void vn_call_vkCmdDrawIndexed(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) 6756 { 6757 VN_TRACE_FUNC(); 6758 6759 struct vn_instance_submit_command submit; 6760 vn_submit_vkCmdDrawIndexed(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance, &submit); 6761 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6762 if (dec) { 6763 vn_decode_vkCmdDrawIndexed_reply(dec, commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance); 6764 vn_instance_free_command_reply(vn_instance, &submit); 6765 } 6766 } 6767 6768 static inline void vn_async_vkCmdDrawIndexed(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) 6769 { 6770 struct vn_instance_submit_command submit; 6771 vn_submit_vkCmdDrawIndexed(vn_instance, 0, commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance, &submit); 6772 } 6773 6774 static inline void vn_call_vkCmdDrawIndirect(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) 6775 { 6776 VN_TRACE_FUNC(); 6777 6778 struct vn_instance_submit_command submit; 6779 vn_submit_vkCmdDrawIndirect(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, buffer, offset, drawCount, stride, &submit); 6780 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6781 if (dec) { 6782 vn_decode_vkCmdDrawIndirect_reply(dec, commandBuffer, buffer, offset, drawCount, stride); 6783 vn_instance_free_command_reply(vn_instance, &submit); 6784 } 6785 } 6786 6787 static inline void vn_async_vkCmdDrawIndirect(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) 6788 { 6789 struct vn_instance_submit_command submit; 6790 vn_submit_vkCmdDrawIndirect(vn_instance, 0, commandBuffer, buffer, offset, drawCount, stride, &submit); 6791 } 6792 6793 static inline void vn_call_vkCmdDrawIndexedIndirect(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) 6794 { 6795 VN_TRACE_FUNC(); 6796 6797 struct vn_instance_submit_command submit; 6798 vn_submit_vkCmdDrawIndexedIndirect(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, buffer, offset, drawCount, stride, &submit); 6799 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6800 if (dec) { 6801 vn_decode_vkCmdDrawIndexedIndirect_reply(dec, commandBuffer, buffer, offset, drawCount, stride); 6802 vn_instance_free_command_reply(vn_instance, &submit); 6803 } 6804 } 6805 6806 static inline void vn_async_vkCmdDrawIndexedIndirect(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) 6807 { 6808 struct vn_instance_submit_command submit; 6809 vn_submit_vkCmdDrawIndexedIndirect(vn_instance, 0, commandBuffer, buffer, offset, drawCount, stride, &submit); 6810 } 6811 6812 static inline void vn_call_vkCmdDispatch(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) 6813 { 6814 VN_TRACE_FUNC(); 6815 6816 struct vn_instance_submit_command submit; 6817 vn_submit_vkCmdDispatch(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, groupCountX, groupCountY, groupCountZ, &submit); 6818 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6819 if (dec) { 6820 vn_decode_vkCmdDispatch_reply(dec, commandBuffer, groupCountX, groupCountY, groupCountZ); 6821 vn_instance_free_command_reply(vn_instance, &submit); 6822 } 6823 } 6824 6825 static inline void vn_async_vkCmdDispatch(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) 6826 { 6827 struct vn_instance_submit_command submit; 6828 vn_submit_vkCmdDispatch(vn_instance, 0, commandBuffer, groupCountX, groupCountY, groupCountZ, &submit); 6829 } 6830 6831 static inline void vn_call_vkCmdDispatchIndirect(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) 6832 { 6833 VN_TRACE_FUNC(); 6834 6835 struct vn_instance_submit_command submit; 6836 vn_submit_vkCmdDispatchIndirect(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, buffer, offset, &submit); 6837 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6838 if (dec) { 6839 vn_decode_vkCmdDispatchIndirect_reply(dec, commandBuffer, buffer, offset); 6840 vn_instance_free_command_reply(vn_instance, &submit); 6841 } 6842 } 6843 6844 static inline void vn_async_vkCmdDispatchIndirect(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) 6845 { 6846 struct vn_instance_submit_command submit; 6847 vn_submit_vkCmdDispatchIndirect(vn_instance, 0, commandBuffer, buffer, offset, &submit); 6848 } 6849 6850 static inline void vn_call_vkCmdCopyBuffer(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) 6851 { 6852 VN_TRACE_FUNC(); 6853 6854 struct vn_instance_submit_command submit; 6855 vn_submit_vkCmdCopyBuffer(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions, &submit); 6856 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6857 if (dec) { 6858 vn_decode_vkCmdCopyBuffer_reply(dec, commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions); 6859 vn_instance_free_command_reply(vn_instance, &submit); 6860 } 6861 } 6862 6863 static inline void vn_async_vkCmdCopyBuffer(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) 6864 { 6865 struct vn_instance_submit_command submit; 6866 vn_submit_vkCmdCopyBuffer(vn_instance, 0, commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions, &submit); 6867 } 6868 6869 static inline void vn_call_vkCmdCopyImage(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions) 6870 { 6871 VN_TRACE_FUNC(); 6872 6873 struct vn_instance_submit_command submit; 6874 vn_submit_vkCmdCopyImage(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, &submit); 6875 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6876 if (dec) { 6877 vn_decode_vkCmdCopyImage_reply(dec, commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); 6878 vn_instance_free_command_reply(vn_instance, &submit); 6879 } 6880 } 6881 6882 static inline void vn_async_vkCmdCopyImage(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions) 6883 { 6884 struct vn_instance_submit_command submit; 6885 vn_submit_vkCmdCopyImage(vn_instance, 0, commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, &submit); 6886 } 6887 6888 static inline void vn_call_vkCmdBlitImage(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter) 6889 { 6890 VN_TRACE_FUNC(); 6891 6892 struct vn_instance_submit_command submit; 6893 vn_submit_vkCmdBlitImage(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter, &submit); 6894 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6895 if (dec) { 6896 vn_decode_vkCmdBlitImage_reply(dec, commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter); 6897 vn_instance_free_command_reply(vn_instance, &submit); 6898 } 6899 } 6900 6901 static inline void vn_async_vkCmdBlitImage(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter) 6902 { 6903 struct vn_instance_submit_command submit; 6904 vn_submit_vkCmdBlitImage(vn_instance, 0, commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter, &submit); 6905 } 6906 6907 static inline void vn_call_vkCmdCopyBufferToImage(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions) 6908 { 6909 VN_TRACE_FUNC(); 6910 6911 struct vn_instance_submit_command submit; 6912 vn_submit_vkCmdCopyBufferToImage(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions, &submit); 6913 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6914 if (dec) { 6915 vn_decode_vkCmdCopyBufferToImage_reply(dec, commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions); 6916 vn_instance_free_command_reply(vn_instance, &submit); 6917 } 6918 } 6919 6920 static inline void vn_async_vkCmdCopyBufferToImage(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions) 6921 { 6922 struct vn_instance_submit_command submit; 6923 vn_submit_vkCmdCopyBufferToImage(vn_instance, 0, commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions, &submit); 6924 } 6925 6926 static inline void vn_call_vkCmdCopyImageToBuffer(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions) 6927 { 6928 VN_TRACE_FUNC(); 6929 6930 struct vn_instance_submit_command submit; 6931 vn_submit_vkCmdCopyImageToBuffer(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions, &submit); 6932 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6933 if (dec) { 6934 vn_decode_vkCmdCopyImageToBuffer_reply(dec, commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions); 6935 vn_instance_free_command_reply(vn_instance, &submit); 6936 } 6937 } 6938 6939 static inline void vn_async_vkCmdCopyImageToBuffer(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions) 6940 { 6941 struct vn_instance_submit_command submit; 6942 vn_submit_vkCmdCopyImageToBuffer(vn_instance, 0, commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions, &submit); 6943 } 6944 6945 static inline void vn_call_vkCmdUpdateBuffer(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) 6946 { 6947 VN_TRACE_FUNC(); 6948 6949 struct vn_instance_submit_command submit; 6950 vn_submit_vkCmdUpdateBuffer(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, dstBuffer, dstOffset, dataSize, pData, &submit); 6951 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6952 if (dec) { 6953 vn_decode_vkCmdUpdateBuffer_reply(dec, commandBuffer, dstBuffer, dstOffset, dataSize, pData); 6954 vn_instance_free_command_reply(vn_instance, &submit); 6955 } 6956 } 6957 6958 static inline void vn_async_vkCmdUpdateBuffer(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) 6959 { 6960 struct vn_instance_submit_command submit; 6961 vn_submit_vkCmdUpdateBuffer(vn_instance, 0, commandBuffer, dstBuffer, dstOffset, dataSize, pData, &submit); 6962 } 6963 6964 static inline void vn_call_vkCmdFillBuffer(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) 6965 { 6966 VN_TRACE_FUNC(); 6967 6968 struct vn_instance_submit_command submit; 6969 vn_submit_vkCmdFillBuffer(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, dstBuffer, dstOffset, size, data, &submit); 6970 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6971 if (dec) { 6972 vn_decode_vkCmdFillBuffer_reply(dec, commandBuffer, dstBuffer, dstOffset, size, data); 6973 vn_instance_free_command_reply(vn_instance, &submit); 6974 } 6975 } 6976 6977 static inline void vn_async_vkCmdFillBuffer(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) 6978 { 6979 struct vn_instance_submit_command submit; 6980 vn_submit_vkCmdFillBuffer(vn_instance, 0, commandBuffer, dstBuffer, dstOffset, size, data, &submit); 6981 } 6982 6983 static inline void vn_call_vkCmdClearColorImage(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) 6984 { 6985 VN_TRACE_FUNC(); 6986 6987 struct vn_instance_submit_command submit; 6988 vn_submit_vkCmdClearColorImage(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, image, imageLayout, pColor, rangeCount, pRanges, &submit); 6989 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 6990 if (dec) { 6991 vn_decode_vkCmdClearColorImage_reply(dec, commandBuffer, image, imageLayout, pColor, rangeCount, pRanges); 6992 vn_instance_free_command_reply(vn_instance, &submit); 6993 } 6994 } 6995 6996 static inline void vn_async_vkCmdClearColorImage(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) 6997 { 6998 struct vn_instance_submit_command submit; 6999 vn_submit_vkCmdClearColorImage(vn_instance, 0, commandBuffer, image, imageLayout, pColor, rangeCount, pRanges, &submit); 7000 } 7001 7002 static inline void vn_call_vkCmdClearDepthStencilImage(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) 7003 { 7004 VN_TRACE_FUNC(); 7005 7006 struct vn_instance_submit_command submit; 7007 vn_submit_vkCmdClearDepthStencilImage(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges, &submit); 7008 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7009 if (dec) { 7010 vn_decode_vkCmdClearDepthStencilImage_reply(dec, commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges); 7011 vn_instance_free_command_reply(vn_instance, &submit); 7012 } 7013 } 7014 7015 static inline void vn_async_vkCmdClearDepthStencilImage(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) 7016 { 7017 struct vn_instance_submit_command submit; 7018 vn_submit_vkCmdClearDepthStencilImage(vn_instance, 0, commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges, &submit); 7019 } 7020 7021 static inline void vn_call_vkCmdClearAttachments(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects) 7022 { 7023 VN_TRACE_FUNC(); 7024 7025 struct vn_instance_submit_command submit; 7026 vn_submit_vkCmdClearAttachments(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, attachmentCount, pAttachments, rectCount, pRects, &submit); 7027 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7028 if (dec) { 7029 vn_decode_vkCmdClearAttachments_reply(dec, commandBuffer, attachmentCount, pAttachments, rectCount, pRects); 7030 vn_instance_free_command_reply(vn_instance, &submit); 7031 } 7032 } 7033 7034 static inline void vn_async_vkCmdClearAttachments(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects) 7035 { 7036 struct vn_instance_submit_command submit; 7037 vn_submit_vkCmdClearAttachments(vn_instance, 0, commandBuffer, attachmentCount, pAttachments, rectCount, pRects, &submit); 7038 } 7039 7040 static inline void vn_call_vkCmdResolveImage(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions) 7041 { 7042 VN_TRACE_FUNC(); 7043 7044 struct vn_instance_submit_command submit; 7045 vn_submit_vkCmdResolveImage(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, &submit); 7046 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7047 if (dec) { 7048 vn_decode_vkCmdResolveImage_reply(dec, commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); 7049 vn_instance_free_command_reply(vn_instance, &submit); 7050 } 7051 } 7052 7053 static inline void vn_async_vkCmdResolveImage(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions) 7054 { 7055 struct vn_instance_submit_command submit; 7056 vn_submit_vkCmdResolveImage(vn_instance, 0, commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, &submit); 7057 } 7058 7059 static inline void vn_call_vkCmdSetEvent(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) 7060 { 7061 VN_TRACE_FUNC(); 7062 7063 struct vn_instance_submit_command submit; 7064 vn_submit_vkCmdSetEvent(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, event, stageMask, &submit); 7065 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7066 if (dec) { 7067 vn_decode_vkCmdSetEvent_reply(dec, commandBuffer, event, stageMask); 7068 vn_instance_free_command_reply(vn_instance, &submit); 7069 } 7070 } 7071 7072 static inline void vn_async_vkCmdSetEvent(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) 7073 { 7074 struct vn_instance_submit_command submit; 7075 vn_submit_vkCmdSetEvent(vn_instance, 0, commandBuffer, event, stageMask, &submit); 7076 } 7077 7078 static inline void vn_call_vkCmdResetEvent(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) 7079 { 7080 VN_TRACE_FUNC(); 7081 7082 struct vn_instance_submit_command submit; 7083 vn_submit_vkCmdResetEvent(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, event, stageMask, &submit); 7084 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7085 if (dec) { 7086 vn_decode_vkCmdResetEvent_reply(dec, commandBuffer, event, stageMask); 7087 vn_instance_free_command_reply(vn_instance, &submit); 7088 } 7089 } 7090 7091 static inline void vn_async_vkCmdResetEvent(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) 7092 { 7093 struct vn_instance_submit_command submit; 7094 vn_submit_vkCmdResetEvent(vn_instance, 0, commandBuffer, event, stageMask, &submit); 7095 } 7096 7097 static inline void vn_call_vkCmdWaitEvents(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) 7098 { 7099 VN_TRACE_FUNC(); 7100 7101 struct vn_instance_submit_command submit; 7102 vn_submit_vkCmdWaitEvents(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers, &submit); 7103 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7104 if (dec) { 7105 vn_decode_vkCmdWaitEvents_reply(dec, commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); 7106 vn_instance_free_command_reply(vn_instance, &submit); 7107 } 7108 } 7109 7110 static inline void vn_async_vkCmdWaitEvents(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) 7111 { 7112 struct vn_instance_submit_command submit; 7113 vn_submit_vkCmdWaitEvents(vn_instance, 0, commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers, &submit); 7114 } 7115 7116 static inline void vn_call_vkCmdPipelineBarrier(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) 7117 { 7118 VN_TRACE_FUNC(); 7119 7120 struct vn_instance_submit_command submit; 7121 vn_submit_vkCmdPipelineBarrier(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers, &submit); 7122 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7123 if (dec) { 7124 vn_decode_vkCmdPipelineBarrier_reply(dec, commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); 7125 vn_instance_free_command_reply(vn_instance, &submit); 7126 } 7127 } 7128 7129 static inline void vn_async_vkCmdPipelineBarrier(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) 7130 { 7131 struct vn_instance_submit_command submit; 7132 vn_submit_vkCmdPipelineBarrier(vn_instance, 0, commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers, &submit); 7133 } 7134 7135 static inline void vn_call_vkCmdBeginQuery(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) 7136 { 7137 VN_TRACE_FUNC(); 7138 7139 struct vn_instance_submit_command submit; 7140 vn_submit_vkCmdBeginQuery(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, queryPool, query, flags, &submit); 7141 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7142 if (dec) { 7143 vn_decode_vkCmdBeginQuery_reply(dec, commandBuffer, queryPool, query, flags); 7144 vn_instance_free_command_reply(vn_instance, &submit); 7145 } 7146 } 7147 7148 static inline void vn_async_vkCmdBeginQuery(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) 7149 { 7150 struct vn_instance_submit_command submit; 7151 vn_submit_vkCmdBeginQuery(vn_instance, 0, commandBuffer, queryPool, query, flags, &submit); 7152 } 7153 7154 static inline void vn_call_vkCmdEndQuery(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) 7155 { 7156 VN_TRACE_FUNC(); 7157 7158 struct vn_instance_submit_command submit; 7159 vn_submit_vkCmdEndQuery(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, queryPool, query, &submit); 7160 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7161 if (dec) { 7162 vn_decode_vkCmdEndQuery_reply(dec, commandBuffer, queryPool, query); 7163 vn_instance_free_command_reply(vn_instance, &submit); 7164 } 7165 } 7166 7167 static inline void vn_async_vkCmdEndQuery(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) 7168 { 7169 struct vn_instance_submit_command submit; 7170 vn_submit_vkCmdEndQuery(vn_instance, 0, commandBuffer, queryPool, query, &submit); 7171 } 7172 7173 static inline void vn_call_vkCmdResetQueryPool(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) 7174 { 7175 VN_TRACE_FUNC(); 7176 7177 struct vn_instance_submit_command submit; 7178 vn_submit_vkCmdResetQueryPool(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, queryPool, firstQuery, queryCount, &submit); 7179 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7180 if (dec) { 7181 vn_decode_vkCmdResetQueryPool_reply(dec, commandBuffer, queryPool, firstQuery, queryCount); 7182 vn_instance_free_command_reply(vn_instance, &submit); 7183 } 7184 } 7185 7186 static inline void vn_async_vkCmdResetQueryPool(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) 7187 { 7188 struct vn_instance_submit_command submit; 7189 vn_submit_vkCmdResetQueryPool(vn_instance, 0, commandBuffer, queryPool, firstQuery, queryCount, &submit); 7190 } 7191 7192 static inline void vn_call_vkCmdWriteTimestamp(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query) 7193 { 7194 VN_TRACE_FUNC(); 7195 7196 struct vn_instance_submit_command submit; 7197 vn_submit_vkCmdWriteTimestamp(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, pipelineStage, queryPool, query, &submit); 7198 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7199 if (dec) { 7200 vn_decode_vkCmdWriteTimestamp_reply(dec, commandBuffer, pipelineStage, queryPool, query); 7201 vn_instance_free_command_reply(vn_instance, &submit); 7202 } 7203 } 7204 7205 static inline void vn_async_vkCmdWriteTimestamp(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query) 7206 { 7207 struct vn_instance_submit_command submit; 7208 vn_submit_vkCmdWriteTimestamp(vn_instance, 0, commandBuffer, pipelineStage, queryPool, query, &submit); 7209 } 7210 7211 static inline void vn_call_vkCmdCopyQueryPoolResults(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) 7212 { 7213 VN_TRACE_FUNC(); 7214 7215 struct vn_instance_submit_command submit; 7216 vn_submit_vkCmdCopyQueryPoolResults(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags, &submit); 7217 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7218 if (dec) { 7219 vn_decode_vkCmdCopyQueryPoolResults_reply(dec, commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags); 7220 vn_instance_free_command_reply(vn_instance, &submit); 7221 } 7222 } 7223 7224 static inline void vn_async_vkCmdCopyQueryPoolResults(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) 7225 { 7226 struct vn_instance_submit_command submit; 7227 vn_submit_vkCmdCopyQueryPoolResults(vn_instance, 0, commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags, &submit); 7228 } 7229 7230 static inline void vn_call_vkCmdPushConstants(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues) 7231 { 7232 VN_TRACE_FUNC(); 7233 7234 struct vn_instance_submit_command submit; 7235 vn_submit_vkCmdPushConstants(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, layout, stageFlags, offset, size, pValues, &submit); 7236 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7237 if (dec) { 7238 vn_decode_vkCmdPushConstants_reply(dec, commandBuffer, layout, stageFlags, offset, size, pValues); 7239 vn_instance_free_command_reply(vn_instance, &submit); 7240 } 7241 } 7242 7243 static inline void vn_async_vkCmdPushConstants(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues) 7244 { 7245 struct vn_instance_submit_command submit; 7246 vn_submit_vkCmdPushConstants(vn_instance, 0, commandBuffer, layout, stageFlags, offset, size, pValues, &submit); 7247 } 7248 7249 static inline void vn_call_vkCmdBeginRenderPass(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) 7250 { 7251 VN_TRACE_FUNC(); 7252 7253 struct vn_instance_submit_command submit; 7254 vn_submit_vkCmdBeginRenderPass(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, pRenderPassBegin, contents, &submit); 7255 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7256 if (dec) { 7257 vn_decode_vkCmdBeginRenderPass_reply(dec, commandBuffer, pRenderPassBegin, contents); 7258 vn_instance_free_command_reply(vn_instance, &submit); 7259 } 7260 } 7261 7262 static inline void vn_async_vkCmdBeginRenderPass(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) 7263 { 7264 struct vn_instance_submit_command submit; 7265 vn_submit_vkCmdBeginRenderPass(vn_instance, 0, commandBuffer, pRenderPassBegin, contents, &submit); 7266 } 7267 7268 static inline void vn_call_vkCmdNextSubpass(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkSubpassContents contents) 7269 { 7270 VN_TRACE_FUNC(); 7271 7272 struct vn_instance_submit_command submit; 7273 vn_submit_vkCmdNextSubpass(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, contents, &submit); 7274 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7275 if (dec) { 7276 vn_decode_vkCmdNextSubpass_reply(dec, commandBuffer, contents); 7277 vn_instance_free_command_reply(vn_instance, &submit); 7278 } 7279 } 7280 7281 static inline void vn_async_vkCmdNextSubpass(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkSubpassContents contents) 7282 { 7283 struct vn_instance_submit_command submit; 7284 vn_submit_vkCmdNextSubpass(vn_instance, 0, commandBuffer, contents, &submit); 7285 } 7286 7287 static inline void vn_call_vkCmdEndRenderPass(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer) 7288 { 7289 VN_TRACE_FUNC(); 7290 7291 struct vn_instance_submit_command submit; 7292 vn_submit_vkCmdEndRenderPass(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, &submit); 7293 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7294 if (dec) { 7295 vn_decode_vkCmdEndRenderPass_reply(dec, commandBuffer); 7296 vn_instance_free_command_reply(vn_instance, &submit); 7297 } 7298 } 7299 7300 static inline void vn_async_vkCmdEndRenderPass(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer) 7301 { 7302 struct vn_instance_submit_command submit; 7303 vn_submit_vkCmdEndRenderPass(vn_instance, 0, commandBuffer, &submit); 7304 } 7305 7306 static inline void vn_call_vkCmdExecuteCommands(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) 7307 { 7308 VN_TRACE_FUNC(); 7309 7310 struct vn_instance_submit_command submit; 7311 vn_submit_vkCmdExecuteCommands(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, commandBufferCount, pCommandBuffers, &submit); 7312 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7313 if (dec) { 7314 vn_decode_vkCmdExecuteCommands_reply(dec, commandBuffer, commandBufferCount, pCommandBuffers); 7315 vn_instance_free_command_reply(vn_instance, &submit); 7316 } 7317 } 7318 7319 static inline void vn_async_vkCmdExecuteCommands(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) 7320 { 7321 struct vn_instance_submit_command submit; 7322 vn_submit_vkCmdExecuteCommands(vn_instance, 0, commandBuffer, commandBufferCount, pCommandBuffers, &submit); 7323 } 7324 7325 static inline void vn_call_vkCmdSetDeviceMask(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t deviceMask) 7326 { 7327 VN_TRACE_FUNC(); 7328 7329 struct vn_instance_submit_command submit; 7330 vn_submit_vkCmdSetDeviceMask(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, deviceMask, &submit); 7331 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7332 if (dec) { 7333 vn_decode_vkCmdSetDeviceMask_reply(dec, commandBuffer, deviceMask); 7334 vn_instance_free_command_reply(vn_instance, &submit); 7335 } 7336 } 7337 7338 static inline void vn_async_vkCmdSetDeviceMask(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t deviceMask) 7339 { 7340 struct vn_instance_submit_command submit; 7341 vn_submit_vkCmdSetDeviceMask(vn_instance, 0, commandBuffer, deviceMask, &submit); 7342 } 7343 7344 static inline void vn_call_vkCmdDispatchBase(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) 7345 { 7346 VN_TRACE_FUNC(); 7347 7348 struct vn_instance_submit_command submit; 7349 vn_submit_vkCmdDispatchBase(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, &submit); 7350 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7351 if (dec) { 7352 vn_decode_vkCmdDispatchBase_reply(dec, commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ); 7353 vn_instance_free_command_reply(vn_instance, &submit); 7354 } 7355 } 7356 7357 static inline void vn_async_vkCmdDispatchBase(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) 7358 { 7359 struct vn_instance_submit_command submit; 7360 vn_submit_vkCmdDispatchBase(vn_instance, 0, commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, &submit); 7361 } 7362 7363 static inline void vn_call_vkCmdBeginRenderPass2(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo) 7364 { 7365 VN_TRACE_FUNC(); 7366 7367 struct vn_instance_submit_command submit; 7368 vn_submit_vkCmdBeginRenderPass2(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, pRenderPassBegin, pSubpassBeginInfo, &submit); 7369 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7370 if (dec) { 7371 vn_decode_vkCmdBeginRenderPass2_reply(dec, commandBuffer, pRenderPassBegin, pSubpassBeginInfo); 7372 vn_instance_free_command_reply(vn_instance, &submit); 7373 } 7374 } 7375 7376 static inline void vn_async_vkCmdBeginRenderPass2(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo) 7377 { 7378 struct vn_instance_submit_command submit; 7379 vn_submit_vkCmdBeginRenderPass2(vn_instance, 0, commandBuffer, pRenderPassBegin, pSubpassBeginInfo, &submit); 7380 } 7381 7382 static inline void vn_call_vkCmdNextSubpass2(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo) 7383 { 7384 VN_TRACE_FUNC(); 7385 7386 struct vn_instance_submit_command submit; 7387 vn_submit_vkCmdNextSubpass2(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, &submit); 7388 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7389 if (dec) { 7390 vn_decode_vkCmdNextSubpass2_reply(dec, commandBuffer, pSubpassBeginInfo, pSubpassEndInfo); 7391 vn_instance_free_command_reply(vn_instance, &submit); 7392 } 7393 } 7394 7395 static inline void vn_async_vkCmdNextSubpass2(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo) 7396 { 7397 struct vn_instance_submit_command submit; 7398 vn_submit_vkCmdNextSubpass2(vn_instance, 0, commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, &submit); 7399 } 7400 7401 static inline void vn_call_vkCmdEndRenderPass2(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo) 7402 { 7403 VN_TRACE_FUNC(); 7404 7405 struct vn_instance_submit_command submit; 7406 vn_submit_vkCmdEndRenderPass2(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, pSubpassEndInfo, &submit); 7407 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7408 if (dec) { 7409 vn_decode_vkCmdEndRenderPass2_reply(dec, commandBuffer, pSubpassEndInfo); 7410 vn_instance_free_command_reply(vn_instance, &submit); 7411 } 7412 } 7413 7414 static inline void vn_async_vkCmdEndRenderPass2(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo) 7415 { 7416 struct vn_instance_submit_command submit; 7417 vn_submit_vkCmdEndRenderPass2(vn_instance, 0, commandBuffer, pSubpassEndInfo, &submit); 7418 } 7419 7420 static inline void vn_call_vkCmdDrawIndirectCount(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) 7421 { 7422 VN_TRACE_FUNC(); 7423 7424 struct vn_instance_submit_command submit; 7425 vn_submit_vkCmdDrawIndirectCount(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, &submit); 7426 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7427 if (dec) { 7428 vn_decode_vkCmdDrawIndirectCount_reply(dec, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); 7429 vn_instance_free_command_reply(vn_instance, &submit); 7430 } 7431 } 7432 7433 static inline void vn_async_vkCmdDrawIndirectCount(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) 7434 { 7435 struct vn_instance_submit_command submit; 7436 vn_submit_vkCmdDrawIndirectCount(vn_instance, 0, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, &submit); 7437 } 7438 7439 static inline void vn_call_vkCmdDrawIndexedIndirectCount(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) 7440 { 7441 VN_TRACE_FUNC(); 7442 7443 struct vn_instance_submit_command submit; 7444 vn_submit_vkCmdDrawIndexedIndirectCount(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, &submit); 7445 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7446 if (dec) { 7447 vn_decode_vkCmdDrawIndexedIndirectCount_reply(dec, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); 7448 vn_instance_free_command_reply(vn_instance, &submit); 7449 } 7450 } 7451 7452 static inline void vn_async_vkCmdDrawIndexedIndirectCount(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) 7453 { 7454 struct vn_instance_submit_command submit; 7455 vn_submit_vkCmdDrawIndexedIndirectCount(vn_instance, 0, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, &submit); 7456 } 7457 7458 static inline void vn_call_vkCmdBindTransformFeedbackBuffersEXT(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes) 7459 { 7460 VN_TRACE_FUNC(); 7461 7462 struct vn_instance_submit_command submit; 7463 vn_submit_vkCmdBindTransformFeedbackBuffersEXT(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, &submit); 7464 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7465 if (dec) { 7466 vn_decode_vkCmdBindTransformFeedbackBuffersEXT_reply(dec, commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes); 7467 vn_instance_free_command_reply(vn_instance, &submit); 7468 } 7469 } 7470 7471 static inline void vn_async_vkCmdBindTransformFeedbackBuffersEXT(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes) 7472 { 7473 struct vn_instance_submit_command submit; 7474 vn_submit_vkCmdBindTransformFeedbackBuffersEXT(vn_instance, 0, commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, &submit); 7475 } 7476 7477 static inline void vn_call_vkCmdBeginTransformFeedbackEXT(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) 7478 { 7479 VN_TRACE_FUNC(); 7480 7481 struct vn_instance_submit_command submit; 7482 vn_submit_vkCmdBeginTransformFeedbackEXT(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, &submit); 7483 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7484 if (dec) { 7485 vn_decode_vkCmdBeginTransformFeedbackEXT_reply(dec, commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets); 7486 vn_instance_free_command_reply(vn_instance, &submit); 7487 } 7488 } 7489 7490 static inline void vn_async_vkCmdBeginTransformFeedbackEXT(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) 7491 { 7492 struct vn_instance_submit_command submit; 7493 vn_submit_vkCmdBeginTransformFeedbackEXT(vn_instance, 0, commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, &submit); 7494 } 7495 7496 static inline void vn_call_vkCmdEndTransformFeedbackEXT(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) 7497 { 7498 VN_TRACE_FUNC(); 7499 7500 struct vn_instance_submit_command submit; 7501 vn_submit_vkCmdEndTransformFeedbackEXT(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, &submit); 7502 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7503 if (dec) { 7504 vn_decode_vkCmdEndTransformFeedbackEXT_reply(dec, commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets); 7505 vn_instance_free_command_reply(vn_instance, &submit); 7506 } 7507 } 7508 7509 static inline void vn_async_vkCmdEndTransformFeedbackEXT(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) 7510 { 7511 struct vn_instance_submit_command submit; 7512 vn_submit_vkCmdEndTransformFeedbackEXT(vn_instance, 0, commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, &submit); 7513 } 7514 7515 static inline void vn_call_vkCmdBeginQueryIndexedEXT(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index) 7516 { 7517 VN_TRACE_FUNC(); 7518 7519 struct vn_instance_submit_command submit; 7520 vn_submit_vkCmdBeginQueryIndexedEXT(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, queryPool, query, flags, index, &submit); 7521 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7522 if (dec) { 7523 vn_decode_vkCmdBeginQueryIndexedEXT_reply(dec, commandBuffer, queryPool, query, flags, index); 7524 vn_instance_free_command_reply(vn_instance, &submit); 7525 } 7526 } 7527 7528 static inline void vn_async_vkCmdBeginQueryIndexedEXT(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index) 7529 { 7530 struct vn_instance_submit_command submit; 7531 vn_submit_vkCmdBeginQueryIndexedEXT(vn_instance, 0, commandBuffer, queryPool, query, flags, index, &submit); 7532 } 7533 7534 static inline void vn_call_vkCmdEndQueryIndexedEXT(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index) 7535 { 7536 VN_TRACE_FUNC(); 7537 7538 struct vn_instance_submit_command submit; 7539 vn_submit_vkCmdEndQueryIndexedEXT(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, queryPool, query, index, &submit); 7540 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7541 if (dec) { 7542 vn_decode_vkCmdEndQueryIndexedEXT_reply(dec, commandBuffer, queryPool, query, index); 7543 vn_instance_free_command_reply(vn_instance, &submit); 7544 } 7545 } 7546 7547 static inline void vn_async_vkCmdEndQueryIndexedEXT(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index) 7548 { 7549 struct vn_instance_submit_command submit; 7550 vn_submit_vkCmdEndQueryIndexedEXT(vn_instance, 0, commandBuffer, queryPool, query, index, &submit); 7551 } 7552 7553 static inline void vn_call_vkCmdDrawIndirectByteCountEXT(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride) 7554 { 7555 VN_TRACE_FUNC(); 7556 7557 struct vn_instance_submit_command submit; 7558 vn_submit_vkCmdDrawIndirectByteCountEXT(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, &submit); 7559 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 7560 if (dec) { 7561 vn_decode_vkCmdDrawIndirectByteCountEXT_reply(dec, commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride); 7562 vn_instance_free_command_reply(vn_instance, &submit); 7563 } 7564 } 7565 7566 static inline void vn_async_vkCmdDrawIndirectByteCountEXT(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride) 7567 { 7568 struct vn_instance_submit_command submit; 7569 vn_submit_vkCmdDrawIndirectByteCountEXT(vn_instance, 0, commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, &submit); 7570 } 7571 7572 #endif /* VN_PROTOCOL_DRIVER_COMMAND_BUFFER_H */ 7573