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_STRUCTS_H 9 #define VN_PROTOCOL_DRIVER_STRUCTS_H 10 11 #include "vn_protocol_driver_handles.h" 12 13 /* 14 * These structs/unions/commands are not included 15 * 16 * VkAllocationCallbacks 17 */ 18 19 /* struct VkExtent3D */ 20 21 static inline size_t 22 vn_sizeof_VkExtent3D(const VkExtent3D *val) 23 { 24 size_t size = 0; 25 size += vn_sizeof_uint32_t(&val->width); 26 size += vn_sizeof_uint32_t(&val->height); 27 size += vn_sizeof_uint32_t(&val->depth); 28 return size; 29 } 30 31 static inline void 32 vn_encode_VkExtent3D(struct vn_cs_encoder *enc, const VkExtent3D *val) 33 { 34 vn_encode_uint32_t(enc, &val->width); 35 vn_encode_uint32_t(enc, &val->height); 36 vn_encode_uint32_t(enc, &val->depth); 37 } 38 39 static inline void 40 vn_decode_VkExtent3D(struct vn_cs_decoder *dec, VkExtent3D *val) 41 { 42 vn_decode_uint32_t(dec, &val->width); 43 vn_decode_uint32_t(dec, &val->height); 44 vn_decode_uint32_t(dec, &val->depth); 45 } 46 47 static inline size_t 48 vn_sizeof_VkExtent3D_partial(const VkExtent3D *val) 49 { 50 size_t size = 0; 51 /* skip val->width */ 52 /* skip val->height */ 53 /* skip val->depth */ 54 return size; 55 } 56 57 static inline void 58 vn_encode_VkExtent3D_partial(struct vn_cs_encoder *enc, const VkExtent3D *val) 59 { 60 /* skip val->width */ 61 /* skip val->height */ 62 /* skip val->depth */ 63 } 64 65 /* struct VkLayerProperties */ 66 67 static inline size_t 68 vn_sizeof_VkLayerProperties(const VkLayerProperties *val) 69 { 70 size_t size = 0; 71 size += vn_sizeof_array_size(VK_MAX_EXTENSION_NAME_SIZE); 72 size += vn_sizeof_char_array(val->layerName, VK_MAX_EXTENSION_NAME_SIZE); 73 size += vn_sizeof_uint32_t(&val->specVersion); 74 size += vn_sizeof_uint32_t(&val->implementationVersion); 75 size += vn_sizeof_array_size(VK_MAX_DESCRIPTION_SIZE); 76 size += vn_sizeof_char_array(val->description, VK_MAX_DESCRIPTION_SIZE); 77 return size; 78 } 79 80 static inline void 81 vn_decode_VkLayerProperties(struct vn_cs_decoder *dec, VkLayerProperties *val) 82 { 83 { 84 const size_t array_size = vn_decode_array_size(dec, VK_MAX_EXTENSION_NAME_SIZE); 85 vn_decode_char_array(dec, val->layerName, array_size); 86 } 87 vn_decode_uint32_t(dec, &val->specVersion); 88 vn_decode_uint32_t(dec, &val->implementationVersion); 89 { 90 const size_t array_size = vn_decode_array_size(dec, VK_MAX_DESCRIPTION_SIZE); 91 vn_decode_char_array(dec, val->description, array_size); 92 } 93 } 94 95 static inline size_t 96 vn_sizeof_VkLayerProperties_partial(const VkLayerProperties *val) 97 { 98 size_t size = 0; 99 /* skip val->layerName */ 100 /* skip val->specVersion */ 101 /* skip val->implementationVersion */ 102 /* skip val->description */ 103 return size; 104 } 105 106 static inline void 107 vn_encode_VkLayerProperties_partial(struct vn_cs_encoder *enc, const VkLayerProperties *val) 108 { 109 /* skip val->layerName */ 110 /* skip val->specVersion */ 111 /* skip val->implementationVersion */ 112 /* skip val->description */ 113 } 114 115 /* struct VkExtensionProperties */ 116 117 static inline size_t 118 vn_sizeof_VkExtensionProperties(const VkExtensionProperties *val) 119 { 120 size_t size = 0; 121 size += vn_sizeof_array_size(VK_MAX_EXTENSION_NAME_SIZE); 122 size += vn_sizeof_char_array(val->extensionName, VK_MAX_EXTENSION_NAME_SIZE); 123 size += vn_sizeof_uint32_t(&val->specVersion); 124 return size; 125 } 126 127 static inline void 128 vn_encode_VkExtensionProperties(struct vn_cs_encoder *enc, const VkExtensionProperties *val) 129 { 130 vn_encode_array_size(enc, VK_MAX_EXTENSION_NAME_SIZE); 131 vn_encode_char_array(enc, val->extensionName, VK_MAX_EXTENSION_NAME_SIZE); 132 vn_encode_uint32_t(enc, &val->specVersion); 133 } 134 135 static inline void 136 vn_decode_VkExtensionProperties(struct vn_cs_decoder *dec, VkExtensionProperties *val) 137 { 138 { 139 const size_t array_size = vn_decode_array_size(dec, VK_MAX_EXTENSION_NAME_SIZE); 140 vn_decode_char_array(dec, val->extensionName, array_size); 141 } 142 vn_decode_uint32_t(dec, &val->specVersion); 143 } 144 145 static inline size_t 146 vn_sizeof_VkExtensionProperties_partial(const VkExtensionProperties *val) 147 { 148 size_t size = 0; 149 /* skip val->extensionName */ 150 /* skip val->specVersion */ 151 return size; 152 } 153 154 static inline void 155 vn_encode_VkExtensionProperties_partial(struct vn_cs_encoder *enc, const VkExtensionProperties *val) 156 { 157 /* skip val->extensionName */ 158 /* skip val->specVersion */ 159 } 160 161 /* struct VkMemoryRequirements */ 162 163 static inline size_t 164 vn_sizeof_VkMemoryRequirements(const VkMemoryRequirements *val) 165 { 166 size_t size = 0; 167 size += vn_sizeof_VkDeviceSize(&val->size); 168 size += vn_sizeof_VkDeviceSize(&val->alignment); 169 size += vn_sizeof_uint32_t(&val->memoryTypeBits); 170 return size; 171 } 172 173 static inline void 174 vn_decode_VkMemoryRequirements(struct vn_cs_decoder *dec, VkMemoryRequirements *val) 175 { 176 vn_decode_VkDeviceSize(dec, &val->size); 177 vn_decode_VkDeviceSize(dec, &val->alignment); 178 vn_decode_uint32_t(dec, &val->memoryTypeBits); 179 } 180 181 static inline size_t 182 vn_sizeof_VkMemoryRequirements_partial(const VkMemoryRequirements *val) 183 { 184 size_t size = 0; 185 /* skip val->size */ 186 /* skip val->alignment */ 187 /* skip val->memoryTypeBits */ 188 return size; 189 } 190 191 static inline void 192 vn_encode_VkMemoryRequirements_partial(struct vn_cs_encoder *enc, const VkMemoryRequirements *val) 193 { 194 /* skip val->size */ 195 /* skip val->alignment */ 196 /* skip val->memoryTypeBits */ 197 } 198 199 /* struct VkSparseImageFormatProperties */ 200 201 static inline size_t 202 vn_sizeof_VkSparseImageFormatProperties(const VkSparseImageFormatProperties *val) 203 { 204 size_t size = 0; 205 size += vn_sizeof_VkFlags(&val->aspectMask); 206 size += vn_sizeof_VkExtent3D(&val->imageGranularity); 207 size += vn_sizeof_VkFlags(&val->flags); 208 return size; 209 } 210 211 static inline void 212 vn_decode_VkSparseImageFormatProperties(struct vn_cs_decoder *dec, VkSparseImageFormatProperties *val) 213 { 214 vn_decode_VkFlags(dec, &val->aspectMask); 215 vn_decode_VkExtent3D(dec, &val->imageGranularity); 216 vn_decode_VkFlags(dec, &val->flags); 217 } 218 219 static inline size_t 220 vn_sizeof_VkSparseImageFormatProperties_partial(const VkSparseImageFormatProperties *val) 221 { 222 size_t size = 0; 223 /* skip val->aspectMask */ 224 size += vn_sizeof_VkExtent3D_partial(&val->imageGranularity); 225 /* skip val->flags */ 226 return size; 227 } 228 229 static inline void 230 vn_encode_VkSparseImageFormatProperties_partial(struct vn_cs_encoder *enc, const VkSparseImageFormatProperties *val) 231 { 232 /* skip val->aspectMask */ 233 vn_encode_VkExtent3D_partial(enc, &val->imageGranularity); 234 /* skip val->flags */ 235 } 236 237 /* struct VkImageSubresource */ 238 239 static inline size_t 240 vn_sizeof_VkImageSubresource(const VkImageSubresource *val) 241 { 242 size_t size = 0; 243 size += vn_sizeof_VkFlags(&val->aspectMask); 244 size += vn_sizeof_uint32_t(&val->mipLevel); 245 size += vn_sizeof_uint32_t(&val->arrayLayer); 246 return size; 247 } 248 249 static inline void 250 vn_encode_VkImageSubresource(struct vn_cs_encoder *enc, const VkImageSubresource *val) 251 { 252 vn_encode_VkFlags(enc, &val->aspectMask); 253 vn_encode_uint32_t(enc, &val->mipLevel); 254 vn_encode_uint32_t(enc, &val->arrayLayer); 255 } 256 257 /* struct VkOffset3D */ 258 259 static inline size_t 260 vn_sizeof_VkOffset3D(const VkOffset3D *val) 261 { 262 size_t size = 0; 263 size += vn_sizeof_int32_t(&val->x); 264 size += vn_sizeof_int32_t(&val->y); 265 size += vn_sizeof_int32_t(&val->z); 266 return size; 267 } 268 269 static inline void 270 vn_encode_VkOffset3D(struct vn_cs_encoder *enc, const VkOffset3D *val) 271 { 272 vn_encode_int32_t(enc, &val->x); 273 vn_encode_int32_t(enc, &val->y); 274 vn_encode_int32_t(enc, &val->z); 275 } 276 277 /* struct VkSemaphoreTypeCreateInfo chain */ 278 279 static inline size_t 280 vn_sizeof_VkSemaphoreTypeCreateInfo_pnext(const void *val) 281 { 282 /* no known/supported struct */ 283 return vn_sizeof_simple_pointer(NULL); 284 } 285 286 static inline size_t 287 vn_sizeof_VkSemaphoreTypeCreateInfo_self(const VkSemaphoreTypeCreateInfo *val) 288 { 289 size_t size = 0; 290 /* skip val->{sType,pNext} */ 291 size += vn_sizeof_VkSemaphoreType(&val->semaphoreType); 292 size += vn_sizeof_uint64_t(&val->initialValue); 293 return size; 294 } 295 296 static inline size_t 297 vn_sizeof_VkSemaphoreTypeCreateInfo(const VkSemaphoreTypeCreateInfo *val) 298 { 299 size_t size = 0; 300 301 size += vn_sizeof_VkStructureType(&val->sType); 302 size += vn_sizeof_VkSemaphoreTypeCreateInfo_pnext(val->pNext); 303 size += vn_sizeof_VkSemaphoreTypeCreateInfo_self(val); 304 305 return size; 306 } 307 308 static inline void 309 vn_encode_VkSemaphoreTypeCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val) 310 { 311 /* no known/supported struct */ 312 vn_encode_simple_pointer(enc, NULL); 313 } 314 315 static inline void 316 vn_encode_VkSemaphoreTypeCreateInfo_self(struct vn_cs_encoder *enc, const VkSemaphoreTypeCreateInfo *val) 317 { 318 /* skip val->{sType,pNext} */ 319 vn_encode_VkSemaphoreType(enc, &val->semaphoreType); 320 vn_encode_uint64_t(enc, &val->initialValue); 321 } 322 323 static inline void 324 vn_encode_VkSemaphoreTypeCreateInfo(struct vn_cs_encoder *enc, const VkSemaphoreTypeCreateInfo *val) 325 { 326 assert(val->sType == VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO); 327 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO }); 328 vn_encode_VkSemaphoreTypeCreateInfo_pnext(enc, val->pNext); 329 vn_encode_VkSemaphoreTypeCreateInfo_self(enc, val); 330 } 331 332 /* struct VkImageFormatListCreateInfo chain */ 333 334 static inline size_t 335 vn_sizeof_VkImageFormatListCreateInfo_pnext(const void *val) 336 { 337 /* no known/supported struct */ 338 return vn_sizeof_simple_pointer(NULL); 339 } 340 341 static inline size_t 342 vn_sizeof_VkImageFormatListCreateInfo_self(const VkImageFormatListCreateInfo *val) 343 { 344 size_t size = 0; 345 /* skip val->{sType,pNext} */ 346 size += vn_sizeof_uint32_t(&val->viewFormatCount); 347 if (val->pViewFormats) { 348 size += vn_sizeof_array_size(val->viewFormatCount); 349 size += vn_sizeof_VkFormat_array(val->pViewFormats, val->viewFormatCount); 350 } else { 351 size += vn_sizeof_array_size(0); 352 } 353 return size; 354 } 355 356 static inline size_t 357 vn_sizeof_VkImageFormatListCreateInfo(const VkImageFormatListCreateInfo *val) 358 { 359 size_t size = 0; 360 361 size += vn_sizeof_VkStructureType(&val->sType); 362 size += vn_sizeof_VkImageFormatListCreateInfo_pnext(val->pNext); 363 size += vn_sizeof_VkImageFormatListCreateInfo_self(val); 364 365 return size; 366 } 367 368 static inline void 369 vn_encode_VkImageFormatListCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val) 370 { 371 /* no known/supported struct */ 372 vn_encode_simple_pointer(enc, NULL); 373 } 374 375 static inline void 376 vn_encode_VkImageFormatListCreateInfo_self(struct vn_cs_encoder *enc, const VkImageFormatListCreateInfo *val) 377 { 378 /* skip val->{sType,pNext} */ 379 vn_encode_uint32_t(enc, &val->viewFormatCount); 380 if (val->pViewFormats) { 381 vn_encode_array_size(enc, val->viewFormatCount); 382 vn_encode_VkFormat_array(enc, val->pViewFormats, val->viewFormatCount); 383 } else { 384 vn_encode_array_size(enc, 0); 385 } 386 } 387 388 static inline void 389 vn_encode_VkImageFormatListCreateInfo(struct vn_cs_encoder *enc, const VkImageFormatListCreateInfo *val) 390 { 391 assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO); 392 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO }); 393 vn_encode_VkImageFormatListCreateInfo_pnext(enc, val->pNext); 394 vn_encode_VkImageFormatListCreateInfo_self(enc, val); 395 } 396 397 /* struct VkImageStencilUsageCreateInfo chain */ 398 399 static inline size_t 400 vn_sizeof_VkImageStencilUsageCreateInfo_pnext(const void *val) 401 { 402 /* no known/supported struct */ 403 return vn_sizeof_simple_pointer(NULL); 404 } 405 406 static inline size_t 407 vn_sizeof_VkImageStencilUsageCreateInfo_self(const VkImageStencilUsageCreateInfo *val) 408 { 409 size_t size = 0; 410 /* skip val->{sType,pNext} */ 411 size += vn_sizeof_VkFlags(&val->stencilUsage); 412 return size; 413 } 414 415 static inline size_t 416 vn_sizeof_VkImageStencilUsageCreateInfo(const VkImageStencilUsageCreateInfo *val) 417 { 418 size_t size = 0; 419 420 size += vn_sizeof_VkStructureType(&val->sType); 421 size += vn_sizeof_VkImageStencilUsageCreateInfo_pnext(val->pNext); 422 size += vn_sizeof_VkImageStencilUsageCreateInfo_self(val); 423 424 return size; 425 } 426 427 static inline void 428 vn_encode_VkImageStencilUsageCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val) 429 { 430 /* no known/supported struct */ 431 vn_encode_simple_pointer(enc, NULL); 432 } 433 434 static inline void 435 vn_encode_VkImageStencilUsageCreateInfo_self(struct vn_cs_encoder *enc, const VkImageStencilUsageCreateInfo *val) 436 { 437 /* skip val->{sType,pNext} */ 438 vn_encode_VkFlags(enc, &val->stencilUsage); 439 } 440 441 static inline void 442 vn_encode_VkImageStencilUsageCreateInfo(struct vn_cs_encoder *enc, const VkImageStencilUsageCreateInfo *val) 443 { 444 assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO); 445 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO }); 446 vn_encode_VkImageStencilUsageCreateInfo_pnext(enc, val->pNext); 447 vn_encode_VkImageStencilUsageCreateInfo_self(enc, val); 448 } 449 450 /* struct VkComponentMapping */ 451 452 static inline size_t 453 vn_sizeof_VkComponentMapping(const VkComponentMapping *val) 454 { 455 size_t size = 0; 456 size += vn_sizeof_VkComponentSwizzle(&val->r); 457 size += vn_sizeof_VkComponentSwizzle(&val->g); 458 size += vn_sizeof_VkComponentSwizzle(&val->b); 459 size += vn_sizeof_VkComponentSwizzle(&val->a); 460 return size; 461 } 462 463 static inline void 464 vn_encode_VkComponentMapping(struct vn_cs_encoder *enc, const VkComponentMapping *val) 465 { 466 vn_encode_VkComponentSwizzle(enc, &val->r); 467 vn_encode_VkComponentSwizzle(enc, &val->g); 468 vn_encode_VkComponentSwizzle(enc, &val->b); 469 vn_encode_VkComponentSwizzle(enc, &val->a); 470 } 471 472 static inline void 473 vn_decode_VkComponentMapping(struct vn_cs_decoder *dec, VkComponentMapping *val) 474 { 475 vn_decode_VkComponentSwizzle(dec, &val->r); 476 vn_decode_VkComponentSwizzle(dec, &val->g); 477 vn_decode_VkComponentSwizzle(dec, &val->b); 478 vn_decode_VkComponentSwizzle(dec, &val->a); 479 } 480 481 static inline size_t 482 vn_sizeof_VkComponentMapping_partial(const VkComponentMapping *val) 483 { 484 size_t size = 0; 485 /* skip val->r */ 486 /* skip val->g */ 487 /* skip val->b */ 488 /* skip val->a */ 489 return size; 490 } 491 492 static inline void 493 vn_encode_VkComponentMapping_partial(struct vn_cs_encoder *enc, const VkComponentMapping *val) 494 { 495 /* skip val->r */ 496 /* skip val->g */ 497 /* skip val->b */ 498 /* skip val->a */ 499 } 500 501 /* struct VkImageSubresourceRange */ 502 503 static inline size_t 504 vn_sizeof_VkImageSubresourceRange(const VkImageSubresourceRange *val) 505 { 506 size_t size = 0; 507 size += vn_sizeof_VkFlags(&val->aspectMask); 508 size += vn_sizeof_uint32_t(&val->baseMipLevel); 509 size += vn_sizeof_uint32_t(&val->levelCount); 510 size += vn_sizeof_uint32_t(&val->baseArrayLayer); 511 size += vn_sizeof_uint32_t(&val->layerCount); 512 return size; 513 } 514 515 static inline void 516 vn_encode_VkImageSubresourceRange(struct vn_cs_encoder *enc, const VkImageSubresourceRange *val) 517 { 518 vn_encode_VkFlags(enc, &val->aspectMask); 519 vn_encode_uint32_t(enc, &val->baseMipLevel); 520 vn_encode_uint32_t(enc, &val->levelCount); 521 vn_encode_uint32_t(enc, &val->baseArrayLayer); 522 vn_encode_uint32_t(enc, &val->layerCount); 523 } 524 525 /* struct VkSamplerYcbcrConversionInfo chain */ 526 527 static inline size_t 528 vn_sizeof_VkSamplerYcbcrConversionInfo_pnext(const void *val) 529 { 530 /* no known/supported struct */ 531 return vn_sizeof_simple_pointer(NULL); 532 } 533 534 static inline size_t 535 vn_sizeof_VkSamplerYcbcrConversionInfo_self(const VkSamplerYcbcrConversionInfo *val) 536 { 537 size_t size = 0; 538 /* skip val->{sType,pNext} */ 539 size += vn_sizeof_VkSamplerYcbcrConversion(&val->conversion); 540 return size; 541 } 542 543 static inline size_t 544 vn_sizeof_VkSamplerYcbcrConversionInfo(const VkSamplerYcbcrConversionInfo *val) 545 { 546 size_t size = 0; 547 548 size += vn_sizeof_VkStructureType(&val->sType); 549 size += vn_sizeof_VkSamplerYcbcrConversionInfo_pnext(val->pNext); 550 size += vn_sizeof_VkSamplerYcbcrConversionInfo_self(val); 551 552 return size; 553 } 554 555 static inline void 556 vn_encode_VkSamplerYcbcrConversionInfo_pnext(struct vn_cs_encoder *enc, const void *val) 557 { 558 /* no known/supported struct */ 559 vn_encode_simple_pointer(enc, NULL); 560 } 561 562 static inline void 563 vn_encode_VkSamplerYcbcrConversionInfo_self(struct vn_cs_encoder *enc, const VkSamplerYcbcrConversionInfo *val) 564 { 565 /* skip val->{sType,pNext} */ 566 vn_encode_VkSamplerYcbcrConversion(enc, &val->conversion); 567 } 568 569 static inline void 570 vn_encode_VkSamplerYcbcrConversionInfo(struct vn_cs_encoder *enc, const VkSamplerYcbcrConversionInfo *val) 571 { 572 assert(val->sType == VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO); 573 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO }); 574 vn_encode_VkSamplerYcbcrConversionInfo_pnext(enc, val->pNext); 575 vn_encode_VkSamplerYcbcrConversionInfo_self(enc, val); 576 } 577 578 /* struct VkViewport */ 579 580 static inline size_t 581 vn_sizeof_VkViewport(const VkViewport *val) 582 { 583 size_t size = 0; 584 size += vn_sizeof_float(&val->x); 585 size += vn_sizeof_float(&val->y); 586 size += vn_sizeof_float(&val->width); 587 size += vn_sizeof_float(&val->height); 588 size += vn_sizeof_float(&val->minDepth); 589 size += vn_sizeof_float(&val->maxDepth); 590 return size; 591 } 592 593 static inline void 594 vn_encode_VkViewport(struct vn_cs_encoder *enc, const VkViewport *val) 595 { 596 vn_encode_float(enc, &val->x); 597 vn_encode_float(enc, &val->y); 598 vn_encode_float(enc, &val->width); 599 vn_encode_float(enc, &val->height); 600 vn_encode_float(enc, &val->minDepth); 601 vn_encode_float(enc, &val->maxDepth); 602 } 603 604 static inline void 605 vn_decode_VkViewport(struct vn_cs_decoder *dec, VkViewport *val) 606 { 607 vn_decode_float(dec, &val->x); 608 vn_decode_float(dec, &val->y); 609 vn_decode_float(dec, &val->width); 610 vn_decode_float(dec, &val->height); 611 vn_decode_float(dec, &val->minDepth); 612 vn_decode_float(dec, &val->maxDepth); 613 } 614 615 /* struct VkOffset2D */ 616 617 static inline size_t 618 vn_sizeof_VkOffset2D(const VkOffset2D *val) 619 { 620 size_t size = 0; 621 size += vn_sizeof_int32_t(&val->x); 622 size += vn_sizeof_int32_t(&val->y); 623 return size; 624 } 625 626 static inline void 627 vn_encode_VkOffset2D(struct vn_cs_encoder *enc, const VkOffset2D *val) 628 { 629 vn_encode_int32_t(enc, &val->x); 630 vn_encode_int32_t(enc, &val->y); 631 } 632 633 static inline void 634 vn_decode_VkOffset2D(struct vn_cs_decoder *dec, VkOffset2D *val) 635 { 636 vn_decode_int32_t(dec, &val->x); 637 vn_decode_int32_t(dec, &val->y); 638 } 639 640 static inline size_t 641 vn_sizeof_VkOffset2D_partial(const VkOffset2D *val) 642 { 643 size_t size = 0; 644 /* skip val->x */ 645 /* skip val->y */ 646 return size; 647 } 648 649 static inline void 650 vn_encode_VkOffset2D_partial(struct vn_cs_encoder *enc, const VkOffset2D *val) 651 { 652 /* skip val->x */ 653 /* skip val->y */ 654 } 655 656 /* struct VkExtent2D */ 657 658 static inline size_t 659 vn_sizeof_VkExtent2D(const VkExtent2D *val) 660 { 661 size_t size = 0; 662 size += vn_sizeof_uint32_t(&val->width); 663 size += vn_sizeof_uint32_t(&val->height); 664 return size; 665 } 666 667 static inline void 668 vn_encode_VkExtent2D(struct vn_cs_encoder *enc, const VkExtent2D *val) 669 { 670 vn_encode_uint32_t(enc, &val->width); 671 vn_encode_uint32_t(enc, &val->height); 672 } 673 674 static inline void 675 vn_decode_VkExtent2D(struct vn_cs_decoder *dec, VkExtent2D *val) 676 { 677 vn_decode_uint32_t(dec, &val->width); 678 vn_decode_uint32_t(dec, &val->height); 679 } 680 681 static inline size_t 682 vn_sizeof_VkExtent2D_partial(const VkExtent2D *val) 683 { 684 size_t size = 0; 685 /* skip val->width */ 686 /* skip val->height */ 687 return size; 688 } 689 690 static inline void 691 vn_encode_VkExtent2D_partial(struct vn_cs_encoder *enc, const VkExtent2D *val) 692 { 693 /* skip val->width */ 694 /* skip val->height */ 695 } 696 697 /* struct VkRect2D */ 698 699 static inline size_t 700 vn_sizeof_VkRect2D(const VkRect2D *val) 701 { 702 size_t size = 0; 703 size += vn_sizeof_VkOffset2D(&val->offset); 704 size += vn_sizeof_VkExtent2D(&val->extent); 705 return size; 706 } 707 708 static inline void 709 vn_encode_VkRect2D(struct vn_cs_encoder *enc, const VkRect2D *val) 710 { 711 vn_encode_VkOffset2D(enc, &val->offset); 712 vn_encode_VkExtent2D(enc, &val->extent); 713 } 714 715 static inline void 716 vn_decode_VkRect2D(struct vn_cs_decoder *dec, VkRect2D *val) 717 { 718 vn_decode_VkOffset2D(dec, &val->offset); 719 vn_decode_VkExtent2D(dec, &val->extent); 720 } 721 722 static inline size_t 723 vn_sizeof_VkRect2D_partial(const VkRect2D *val) 724 { 725 size_t size = 0; 726 size += vn_sizeof_VkOffset2D_partial(&val->offset); 727 size += vn_sizeof_VkExtent2D_partial(&val->extent); 728 return size; 729 } 730 731 static inline void 732 vn_encode_VkRect2D_partial(struct vn_cs_encoder *enc, const VkRect2D *val) 733 { 734 vn_encode_VkOffset2D_partial(enc, &val->offset); 735 vn_encode_VkExtent2D_partial(enc, &val->extent); 736 } 737 738 /* struct VkMemoryDedicatedRequirements chain */ 739 740 static inline size_t 741 vn_sizeof_VkMemoryDedicatedRequirements_pnext(const void *val) 742 { 743 /* no known/supported struct */ 744 return vn_sizeof_simple_pointer(NULL); 745 } 746 747 static inline size_t 748 vn_sizeof_VkMemoryDedicatedRequirements_self(const VkMemoryDedicatedRequirements *val) 749 { 750 size_t size = 0; 751 /* skip val->{sType,pNext} */ 752 size += vn_sizeof_VkBool32(&val->prefersDedicatedAllocation); 753 size += vn_sizeof_VkBool32(&val->requiresDedicatedAllocation); 754 return size; 755 } 756 757 static inline size_t 758 vn_sizeof_VkMemoryDedicatedRequirements(const VkMemoryDedicatedRequirements *val) 759 { 760 size_t size = 0; 761 762 size += vn_sizeof_VkStructureType(&val->sType); 763 size += vn_sizeof_VkMemoryDedicatedRequirements_pnext(val->pNext); 764 size += vn_sizeof_VkMemoryDedicatedRequirements_self(val); 765 766 return size; 767 } 768 769 static inline void 770 vn_decode_VkMemoryDedicatedRequirements_pnext(struct vn_cs_decoder *dec, const void *val) 771 { 772 /* no known/supported struct */ 773 if (vn_decode_simple_pointer(dec)) 774 assert(false); 775 } 776 777 static inline void 778 vn_decode_VkMemoryDedicatedRequirements_self(struct vn_cs_decoder *dec, VkMemoryDedicatedRequirements *val) 779 { 780 /* skip val->{sType,pNext} */ 781 vn_decode_VkBool32(dec, &val->prefersDedicatedAllocation); 782 vn_decode_VkBool32(dec, &val->requiresDedicatedAllocation); 783 } 784 785 static inline void 786 vn_decode_VkMemoryDedicatedRequirements(struct vn_cs_decoder *dec, VkMemoryDedicatedRequirements *val) 787 { 788 VkStructureType stype; 789 vn_decode_VkStructureType(dec, &stype); 790 assert(stype == VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS); 791 792 assert(val->sType == stype); 793 vn_decode_VkMemoryDedicatedRequirements_pnext(dec, val->pNext); 794 vn_decode_VkMemoryDedicatedRequirements_self(dec, val); 795 } 796 797 static inline size_t 798 vn_sizeof_VkMemoryDedicatedRequirements_pnext_partial(const void *val) 799 { 800 /* no known/supported struct */ 801 return vn_sizeof_simple_pointer(NULL); 802 } 803 804 static inline size_t 805 vn_sizeof_VkMemoryDedicatedRequirements_self_partial(const VkMemoryDedicatedRequirements *val) 806 { 807 size_t size = 0; 808 /* skip val->{sType,pNext} */ 809 /* skip val->prefersDedicatedAllocation */ 810 /* skip val->requiresDedicatedAllocation */ 811 return size; 812 } 813 814 static inline size_t 815 vn_sizeof_VkMemoryDedicatedRequirements_partial(const VkMemoryDedicatedRequirements *val) 816 { 817 size_t size = 0; 818 819 size += vn_sizeof_VkStructureType(&val->sType); 820 size += vn_sizeof_VkMemoryDedicatedRequirements_pnext_partial(val->pNext); 821 size += vn_sizeof_VkMemoryDedicatedRequirements_self_partial(val); 822 823 return size; 824 } 825 826 static inline void 827 vn_encode_VkMemoryDedicatedRequirements_pnext_partial(struct vn_cs_encoder *enc, const void *val) 828 { 829 /* no known/supported struct */ 830 vn_encode_simple_pointer(enc, NULL); 831 } 832 833 static inline void 834 vn_encode_VkMemoryDedicatedRequirements_self_partial(struct vn_cs_encoder *enc, const VkMemoryDedicatedRequirements *val) 835 { 836 /* skip val->{sType,pNext} */ 837 /* skip val->prefersDedicatedAllocation */ 838 /* skip val->requiresDedicatedAllocation */ 839 } 840 841 static inline void 842 vn_encode_VkMemoryDedicatedRequirements_partial(struct vn_cs_encoder *enc, const VkMemoryDedicatedRequirements *val) 843 { 844 assert(val->sType == VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS); 845 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS }); 846 vn_encode_VkMemoryDedicatedRequirements_pnext_partial(enc, val->pNext); 847 vn_encode_VkMemoryDedicatedRequirements_self_partial(enc, val); 848 } 849 850 /* struct VkMemoryRequirements2 chain */ 851 852 static inline size_t 853 vn_sizeof_VkMemoryRequirements2_pnext(const void *val) 854 { 855 const VkBaseInStructure *pnext = val; 856 size_t size = 0; 857 858 while (pnext) { 859 switch ((int32_t)pnext->sType) { 860 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: 861 size += vn_sizeof_simple_pointer(pnext); 862 size += vn_sizeof_VkStructureType(&pnext->sType); 863 size += vn_sizeof_VkMemoryRequirements2_pnext(pnext->pNext); 864 size += vn_sizeof_VkMemoryDedicatedRequirements_self((const VkMemoryDedicatedRequirements *)pnext); 865 return size; 866 default: 867 /* ignore unknown/unsupported struct */ 868 break; 869 } 870 pnext = pnext->pNext; 871 } 872 873 return vn_sizeof_simple_pointer(NULL); 874 } 875 876 static inline size_t 877 vn_sizeof_VkMemoryRequirements2_self(const VkMemoryRequirements2 *val) 878 { 879 size_t size = 0; 880 /* skip val->{sType,pNext} */ 881 size += vn_sizeof_VkMemoryRequirements(&val->memoryRequirements); 882 return size; 883 } 884 885 static inline size_t 886 vn_sizeof_VkMemoryRequirements2(const VkMemoryRequirements2 *val) 887 { 888 size_t size = 0; 889 890 size += vn_sizeof_VkStructureType(&val->sType); 891 size += vn_sizeof_VkMemoryRequirements2_pnext(val->pNext); 892 size += vn_sizeof_VkMemoryRequirements2_self(val); 893 894 return size; 895 } 896 897 static inline void 898 vn_decode_VkMemoryRequirements2_pnext(struct vn_cs_decoder *dec, const void *val) 899 { 900 VkBaseOutStructure *pnext = (VkBaseOutStructure *)val; 901 VkStructureType stype; 902 903 if (!vn_decode_simple_pointer(dec)) 904 return; 905 906 vn_decode_VkStructureType(dec, &stype); 907 while (true) { 908 assert(pnext); 909 if (pnext->sType == stype) 910 break; 911 } 912 913 switch ((int32_t)pnext->sType) { 914 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: 915 vn_decode_VkMemoryRequirements2_pnext(dec, pnext->pNext); 916 vn_decode_VkMemoryDedicatedRequirements_self(dec, (VkMemoryDedicatedRequirements *)pnext); 917 break; 918 default: 919 assert(false); 920 break; 921 } 922 } 923 924 static inline void 925 vn_decode_VkMemoryRequirements2_self(struct vn_cs_decoder *dec, VkMemoryRequirements2 *val) 926 { 927 /* skip val->{sType,pNext} */ 928 vn_decode_VkMemoryRequirements(dec, &val->memoryRequirements); 929 } 930 931 static inline void 932 vn_decode_VkMemoryRequirements2(struct vn_cs_decoder *dec, VkMemoryRequirements2 *val) 933 { 934 VkStructureType stype; 935 vn_decode_VkStructureType(dec, &stype); 936 assert(stype == VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2); 937 938 assert(val->sType == stype); 939 vn_decode_VkMemoryRequirements2_pnext(dec, val->pNext); 940 vn_decode_VkMemoryRequirements2_self(dec, val); 941 } 942 943 static inline size_t 944 vn_sizeof_VkMemoryRequirements2_pnext_partial(const void *val) 945 { 946 const VkBaseInStructure *pnext = val; 947 size_t size = 0; 948 949 while (pnext) { 950 switch ((int32_t)pnext->sType) { 951 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: 952 size += vn_sizeof_simple_pointer(pnext); 953 size += vn_sizeof_VkStructureType(&pnext->sType); 954 size += vn_sizeof_VkMemoryRequirements2_pnext_partial(pnext->pNext); 955 size += vn_sizeof_VkMemoryDedicatedRequirements_self_partial((const VkMemoryDedicatedRequirements *)pnext); 956 return size; 957 default: 958 /* ignore unknown/unsupported struct */ 959 break; 960 } 961 pnext = pnext->pNext; 962 } 963 964 return vn_sizeof_simple_pointer(NULL); 965 } 966 967 static inline size_t 968 vn_sizeof_VkMemoryRequirements2_self_partial(const VkMemoryRequirements2 *val) 969 { 970 size_t size = 0; 971 /* skip val->{sType,pNext} */ 972 size += vn_sizeof_VkMemoryRequirements_partial(&val->memoryRequirements); 973 return size; 974 } 975 976 static inline size_t 977 vn_sizeof_VkMemoryRequirements2_partial(const VkMemoryRequirements2 *val) 978 { 979 size_t size = 0; 980 981 size += vn_sizeof_VkStructureType(&val->sType); 982 size += vn_sizeof_VkMemoryRequirements2_pnext_partial(val->pNext); 983 size += vn_sizeof_VkMemoryRequirements2_self_partial(val); 984 985 return size; 986 } 987 988 static inline void 989 vn_encode_VkMemoryRequirements2_pnext_partial(struct vn_cs_encoder *enc, const void *val) 990 { 991 const VkBaseInStructure *pnext = val; 992 993 while (pnext) { 994 switch ((int32_t)pnext->sType) { 995 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: 996 vn_encode_simple_pointer(enc, pnext); 997 vn_encode_VkStructureType(enc, &pnext->sType); 998 vn_encode_VkMemoryRequirements2_pnext_partial(enc, pnext->pNext); 999 vn_encode_VkMemoryDedicatedRequirements_self_partial(enc, (const VkMemoryDedicatedRequirements *)pnext); 1000 return; 1001 default: 1002 /* ignore unknown/unsupported struct */ 1003 break; 1004 } 1005 pnext = pnext->pNext; 1006 } 1007 1008 vn_encode_simple_pointer(enc, NULL); 1009 } 1010 1011 static inline void 1012 vn_encode_VkMemoryRequirements2_self_partial(struct vn_cs_encoder *enc, const VkMemoryRequirements2 *val) 1013 { 1014 /* skip val->{sType,pNext} */ 1015 vn_encode_VkMemoryRequirements_partial(enc, &val->memoryRequirements); 1016 } 1017 1018 static inline void 1019 vn_encode_VkMemoryRequirements2_partial(struct vn_cs_encoder *enc, const VkMemoryRequirements2 *val) 1020 { 1021 assert(val->sType == VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2); 1022 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 }); 1023 vn_encode_VkMemoryRequirements2_pnext_partial(enc, val->pNext); 1024 vn_encode_VkMemoryRequirements2_self_partial(enc, val); 1025 } 1026 1027 #endif /* VN_PROTOCOL_DRIVER_STRUCTS_H */ 1028