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_IMAGE_H 9 #define VN_PROTOCOL_DRIVER_IMAGE_H 10 11 #include "vn_instance.h" 12 #include "vn_protocol_driver_structs.h" 13 14 /* struct VkSparseImageMemoryRequirements */ 15 16 static inline size_t 17 vn_sizeof_VkSparseImageMemoryRequirements(const VkSparseImageMemoryRequirements *val) 18 { 19 size_t size = 0; 20 size += vn_sizeof_VkSparseImageFormatProperties(&val->formatProperties); 21 size += vn_sizeof_uint32_t(&val->imageMipTailFirstLod); 22 size += vn_sizeof_VkDeviceSize(&val->imageMipTailSize); 23 size += vn_sizeof_VkDeviceSize(&val->imageMipTailOffset); 24 size += vn_sizeof_VkDeviceSize(&val->imageMipTailStride); 25 return size; 26 } 27 28 static inline void 29 vn_decode_VkSparseImageMemoryRequirements(struct vn_cs_decoder *dec, VkSparseImageMemoryRequirements *val) 30 { 31 vn_decode_VkSparseImageFormatProperties(dec, &val->formatProperties); 32 vn_decode_uint32_t(dec, &val->imageMipTailFirstLod); 33 vn_decode_VkDeviceSize(dec, &val->imageMipTailSize); 34 vn_decode_VkDeviceSize(dec, &val->imageMipTailOffset); 35 vn_decode_VkDeviceSize(dec, &val->imageMipTailStride); 36 } 37 38 static inline size_t 39 vn_sizeof_VkSparseImageMemoryRequirements_partial(const VkSparseImageMemoryRequirements *val) 40 { 41 size_t size = 0; 42 size += vn_sizeof_VkSparseImageFormatProperties_partial(&val->formatProperties); 43 /* skip val->imageMipTailFirstLod */ 44 /* skip val->imageMipTailSize */ 45 /* skip val->imageMipTailOffset */ 46 /* skip val->imageMipTailStride */ 47 return size; 48 } 49 50 static inline void 51 vn_encode_VkSparseImageMemoryRequirements_partial(struct vn_cs_encoder *enc, const VkSparseImageMemoryRequirements *val) 52 { 53 vn_encode_VkSparseImageFormatProperties_partial(enc, &val->formatProperties); 54 /* skip val->imageMipTailFirstLod */ 55 /* skip val->imageMipTailSize */ 56 /* skip val->imageMipTailOffset */ 57 /* skip val->imageMipTailStride */ 58 } 59 60 /* struct VkExternalMemoryImageCreateInfo chain */ 61 62 static inline size_t 63 vn_sizeof_VkExternalMemoryImageCreateInfo_pnext(const void *val) 64 { 65 /* no known/supported struct */ 66 return vn_sizeof_simple_pointer(NULL); 67 } 68 69 static inline size_t 70 vn_sizeof_VkExternalMemoryImageCreateInfo_self(const VkExternalMemoryImageCreateInfo *val) 71 { 72 size_t size = 0; 73 /* skip val->{sType,pNext} */ 74 size += vn_sizeof_VkFlags(&val->handleTypes); 75 return size; 76 } 77 78 static inline size_t 79 vn_sizeof_VkExternalMemoryImageCreateInfo(const VkExternalMemoryImageCreateInfo *val) 80 { 81 size_t size = 0; 82 83 size += vn_sizeof_VkStructureType(&val->sType); 84 size += vn_sizeof_VkExternalMemoryImageCreateInfo_pnext(val->pNext); 85 size += vn_sizeof_VkExternalMemoryImageCreateInfo_self(val); 86 87 return size; 88 } 89 90 static inline void 91 vn_encode_VkExternalMemoryImageCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val) 92 { 93 /* no known/supported struct */ 94 vn_encode_simple_pointer(enc, NULL); 95 } 96 97 static inline void 98 vn_encode_VkExternalMemoryImageCreateInfo_self(struct vn_cs_encoder *enc, const VkExternalMemoryImageCreateInfo *val) 99 { 100 /* skip val->{sType,pNext} */ 101 vn_encode_VkFlags(enc, &val->handleTypes); 102 } 103 104 static inline void 105 vn_encode_VkExternalMemoryImageCreateInfo(struct vn_cs_encoder *enc, const VkExternalMemoryImageCreateInfo *val) 106 { 107 assert(val->sType == VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO); 108 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO }); 109 vn_encode_VkExternalMemoryImageCreateInfo_pnext(enc, val->pNext); 110 vn_encode_VkExternalMemoryImageCreateInfo_self(enc, val); 111 } 112 113 /* struct VkImageDrmFormatModifierListCreateInfoEXT chain */ 114 115 static inline size_t 116 vn_sizeof_VkImageDrmFormatModifierListCreateInfoEXT_pnext(const void *val) 117 { 118 /* no known/supported struct */ 119 return vn_sizeof_simple_pointer(NULL); 120 } 121 122 static inline size_t 123 vn_sizeof_VkImageDrmFormatModifierListCreateInfoEXT_self(const VkImageDrmFormatModifierListCreateInfoEXT *val) 124 { 125 size_t size = 0; 126 /* skip val->{sType,pNext} */ 127 size += vn_sizeof_uint32_t(&val->drmFormatModifierCount); 128 if (val->pDrmFormatModifiers) { 129 size += vn_sizeof_array_size(val->drmFormatModifierCount); 130 size += vn_sizeof_uint64_t_array(val->pDrmFormatModifiers, val->drmFormatModifierCount); 131 } else { 132 size += vn_sizeof_array_size(0); 133 } 134 return size; 135 } 136 137 static inline size_t 138 vn_sizeof_VkImageDrmFormatModifierListCreateInfoEXT(const VkImageDrmFormatModifierListCreateInfoEXT *val) 139 { 140 size_t size = 0; 141 142 size += vn_sizeof_VkStructureType(&val->sType); 143 size += vn_sizeof_VkImageDrmFormatModifierListCreateInfoEXT_pnext(val->pNext); 144 size += vn_sizeof_VkImageDrmFormatModifierListCreateInfoEXT_self(val); 145 146 return size; 147 } 148 149 static inline void 150 vn_encode_VkImageDrmFormatModifierListCreateInfoEXT_pnext(struct vn_cs_encoder *enc, const void *val) 151 { 152 /* no known/supported struct */ 153 vn_encode_simple_pointer(enc, NULL); 154 } 155 156 static inline void 157 vn_encode_VkImageDrmFormatModifierListCreateInfoEXT_self(struct vn_cs_encoder *enc, const VkImageDrmFormatModifierListCreateInfoEXT *val) 158 { 159 /* skip val->{sType,pNext} */ 160 vn_encode_uint32_t(enc, &val->drmFormatModifierCount); 161 if (val->pDrmFormatModifiers) { 162 vn_encode_array_size(enc, val->drmFormatModifierCount); 163 vn_encode_uint64_t_array(enc, val->pDrmFormatModifiers, val->drmFormatModifierCount); 164 } else { 165 vn_encode_array_size(enc, 0); 166 } 167 } 168 169 static inline void 170 vn_encode_VkImageDrmFormatModifierListCreateInfoEXT(struct vn_cs_encoder *enc, const VkImageDrmFormatModifierListCreateInfoEXT *val) 171 { 172 assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT); 173 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT }); 174 vn_encode_VkImageDrmFormatModifierListCreateInfoEXT_pnext(enc, val->pNext); 175 vn_encode_VkImageDrmFormatModifierListCreateInfoEXT_self(enc, val); 176 } 177 178 /* struct VkSubresourceLayout */ 179 180 static inline size_t 181 vn_sizeof_VkSubresourceLayout(const VkSubresourceLayout *val) 182 { 183 size_t size = 0; 184 size += vn_sizeof_VkDeviceSize(&val->offset); 185 size += vn_sizeof_VkDeviceSize(&val->size); 186 size += vn_sizeof_VkDeviceSize(&val->rowPitch); 187 size += vn_sizeof_VkDeviceSize(&val->arrayPitch); 188 size += vn_sizeof_VkDeviceSize(&val->depthPitch); 189 return size; 190 } 191 192 static inline void 193 vn_encode_VkSubresourceLayout(struct vn_cs_encoder *enc, const VkSubresourceLayout *val) 194 { 195 vn_encode_VkDeviceSize(enc, &val->offset); 196 vn_encode_VkDeviceSize(enc, &val->size); 197 vn_encode_VkDeviceSize(enc, &val->rowPitch); 198 vn_encode_VkDeviceSize(enc, &val->arrayPitch); 199 vn_encode_VkDeviceSize(enc, &val->depthPitch); 200 } 201 202 static inline void 203 vn_decode_VkSubresourceLayout(struct vn_cs_decoder *dec, VkSubresourceLayout *val) 204 { 205 vn_decode_VkDeviceSize(dec, &val->offset); 206 vn_decode_VkDeviceSize(dec, &val->size); 207 vn_decode_VkDeviceSize(dec, &val->rowPitch); 208 vn_decode_VkDeviceSize(dec, &val->arrayPitch); 209 vn_decode_VkDeviceSize(dec, &val->depthPitch); 210 } 211 212 static inline size_t 213 vn_sizeof_VkSubresourceLayout_partial(const VkSubresourceLayout *val) 214 { 215 size_t size = 0; 216 /* skip val->offset */ 217 /* skip val->size */ 218 /* skip val->rowPitch */ 219 /* skip val->arrayPitch */ 220 /* skip val->depthPitch */ 221 return size; 222 } 223 224 static inline void 225 vn_encode_VkSubresourceLayout_partial(struct vn_cs_encoder *enc, const VkSubresourceLayout *val) 226 { 227 /* skip val->offset */ 228 /* skip val->size */ 229 /* skip val->rowPitch */ 230 /* skip val->arrayPitch */ 231 /* skip val->depthPitch */ 232 } 233 234 /* struct VkImageDrmFormatModifierExplicitCreateInfoEXT chain */ 235 236 static inline size_t 237 vn_sizeof_VkImageDrmFormatModifierExplicitCreateInfoEXT_pnext(const void *val) 238 { 239 /* no known/supported struct */ 240 return vn_sizeof_simple_pointer(NULL); 241 } 242 243 static inline size_t 244 vn_sizeof_VkImageDrmFormatModifierExplicitCreateInfoEXT_self(const VkImageDrmFormatModifierExplicitCreateInfoEXT *val) 245 { 246 size_t size = 0; 247 /* skip val->{sType,pNext} */ 248 size += vn_sizeof_uint64_t(&val->drmFormatModifier); 249 size += vn_sizeof_uint32_t(&val->drmFormatModifierPlaneCount); 250 if (val->pPlaneLayouts) { 251 size += vn_sizeof_array_size(val->drmFormatModifierPlaneCount); 252 for (uint32_t i = 0; i < val->drmFormatModifierPlaneCount; i++) 253 size += vn_sizeof_VkSubresourceLayout(&val->pPlaneLayouts[i]); 254 } else { 255 size += vn_sizeof_array_size(0); 256 } 257 return size; 258 } 259 260 static inline size_t 261 vn_sizeof_VkImageDrmFormatModifierExplicitCreateInfoEXT(const VkImageDrmFormatModifierExplicitCreateInfoEXT *val) 262 { 263 size_t size = 0; 264 265 size += vn_sizeof_VkStructureType(&val->sType); 266 size += vn_sizeof_VkImageDrmFormatModifierExplicitCreateInfoEXT_pnext(val->pNext); 267 size += vn_sizeof_VkImageDrmFormatModifierExplicitCreateInfoEXT_self(val); 268 269 return size; 270 } 271 272 static inline void 273 vn_encode_VkImageDrmFormatModifierExplicitCreateInfoEXT_pnext(struct vn_cs_encoder *enc, const void *val) 274 { 275 /* no known/supported struct */ 276 vn_encode_simple_pointer(enc, NULL); 277 } 278 279 static inline void 280 vn_encode_VkImageDrmFormatModifierExplicitCreateInfoEXT_self(struct vn_cs_encoder *enc, const VkImageDrmFormatModifierExplicitCreateInfoEXT *val) 281 { 282 /* skip val->{sType,pNext} */ 283 vn_encode_uint64_t(enc, &val->drmFormatModifier); 284 vn_encode_uint32_t(enc, &val->drmFormatModifierPlaneCount); 285 if (val->pPlaneLayouts) { 286 vn_encode_array_size(enc, val->drmFormatModifierPlaneCount); 287 for (uint32_t i = 0; i < val->drmFormatModifierPlaneCount; i++) 288 vn_encode_VkSubresourceLayout(enc, &val->pPlaneLayouts[i]); 289 } else { 290 vn_encode_array_size(enc, 0); 291 } 292 } 293 294 static inline void 295 vn_encode_VkImageDrmFormatModifierExplicitCreateInfoEXT(struct vn_cs_encoder *enc, const VkImageDrmFormatModifierExplicitCreateInfoEXT *val) 296 { 297 assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT); 298 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT }); 299 vn_encode_VkImageDrmFormatModifierExplicitCreateInfoEXT_pnext(enc, val->pNext); 300 vn_encode_VkImageDrmFormatModifierExplicitCreateInfoEXT_self(enc, val); 301 } 302 303 /* struct VkImageCreateInfo chain */ 304 305 static inline size_t 306 vn_sizeof_VkImageCreateInfo_pnext(const void *val) 307 { 308 const VkBaseInStructure *pnext = val; 309 size_t size = 0; 310 311 while (pnext) { 312 switch ((int32_t)pnext->sType) { 313 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: 314 size += vn_sizeof_simple_pointer(pnext); 315 size += vn_sizeof_VkStructureType(&pnext->sType); 316 size += vn_sizeof_VkImageCreateInfo_pnext(pnext->pNext); 317 size += vn_sizeof_VkExternalMemoryImageCreateInfo_self((const VkExternalMemoryImageCreateInfo *)pnext); 318 return size; 319 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: 320 size += vn_sizeof_simple_pointer(pnext); 321 size += vn_sizeof_VkStructureType(&pnext->sType); 322 size += vn_sizeof_VkImageCreateInfo_pnext(pnext->pNext); 323 size += vn_sizeof_VkImageFormatListCreateInfo_self((const VkImageFormatListCreateInfo *)pnext); 324 return size; 325 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: 326 size += vn_sizeof_simple_pointer(pnext); 327 size += vn_sizeof_VkStructureType(&pnext->sType); 328 size += vn_sizeof_VkImageCreateInfo_pnext(pnext->pNext); 329 size += vn_sizeof_VkImageDrmFormatModifierListCreateInfoEXT_self((const VkImageDrmFormatModifierListCreateInfoEXT *)pnext); 330 return size; 331 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: 332 size += vn_sizeof_simple_pointer(pnext); 333 size += vn_sizeof_VkStructureType(&pnext->sType); 334 size += vn_sizeof_VkImageCreateInfo_pnext(pnext->pNext); 335 size += vn_sizeof_VkImageDrmFormatModifierExplicitCreateInfoEXT_self((const VkImageDrmFormatModifierExplicitCreateInfoEXT *)pnext); 336 return size; 337 case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: 338 size += vn_sizeof_simple_pointer(pnext); 339 size += vn_sizeof_VkStructureType(&pnext->sType); 340 size += vn_sizeof_VkImageCreateInfo_pnext(pnext->pNext); 341 size += vn_sizeof_VkImageStencilUsageCreateInfo_self((const VkImageStencilUsageCreateInfo *)pnext); 342 return size; 343 default: 344 /* ignore unknown/unsupported struct */ 345 break; 346 } 347 pnext = pnext->pNext; 348 } 349 350 return vn_sizeof_simple_pointer(NULL); 351 } 352 353 static inline size_t 354 vn_sizeof_VkImageCreateInfo_self(const VkImageCreateInfo *val) 355 { 356 size_t size = 0; 357 /* skip val->{sType,pNext} */ 358 size += vn_sizeof_VkFlags(&val->flags); 359 size += vn_sizeof_VkImageType(&val->imageType); 360 size += vn_sizeof_VkFormat(&val->format); 361 size += vn_sizeof_VkExtent3D(&val->extent); 362 size += vn_sizeof_uint32_t(&val->mipLevels); 363 size += vn_sizeof_uint32_t(&val->arrayLayers); 364 size += vn_sizeof_VkSampleCountFlagBits(&val->samples); 365 size += vn_sizeof_VkImageTiling(&val->tiling); 366 size += vn_sizeof_VkFlags(&val->usage); 367 size += vn_sizeof_VkSharingMode(&val->sharingMode); 368 size += vn_sizeof_uint32_t(&val->queueFamilyIndexCount); 369 if (val->pQueueFamilyIndices) { 370 size += vn_sizeof_array_size(val->queueFamilyIndexCount); 371 size += vn_sizeof_uint32_t_array(val->pQueueFamilyIndices, val->queueFamilyIndexCount); 372 } else { 373 size += vn_sizeof_array_size(0); 374 } 375 size += vn_sizeof_VkImageLayout(&val->initialLayout); 376 return size; 377 } 378 379 static inline size_t 380 vn_sizeof_VkImageCreateInfo(const VkImageCreateInfo *val) 381 { 382 size_t size = 0; 383 384 size += vn_sizeof_VkStructureType(&val->sType); 385 size += vn_sizeof_VkImageCreateInfo_pnext(val->pNext); 386 size += vn_sizeof_VkImageCreateInfo_self(val); 387 388 return size; 389 } 390 391 static inline void 392 vn_encode_VkImageCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val) 393 { 394 const VkBaseInStructure *pnext = val; 395 396 while (pnext) { 397 switch ((int32_t)pnext->sType) { 398 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: 399 vn_encode_simple_pointer(enc, pnext); 400 vn_encode_VkStructureType(enc, &pnext->sType); 401 vn_encode_VkImageCreateInfo_pnext(enc, pnext->pNext); 402 vn_encode_VkExternalMemoryImageCreateInfo_self(enc, (const VkExternalMemoryImageCreateInfo *)pnext); 403 return; 404 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: 405 vn_encode_simple_pointer(enc, pnext); 406 vn_encode_VkStructureType(enc, &pnext->sType); 407 vn_encode_VkImageCreateInfo_pnext(enc, pnext->pNext); 408 vn_encode_VkImageFormatListCreateInfo_self(enc, (const VkImageFormatListCreateInfo *)pnext); 409 return; 410 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: 411 vn_encode_simple_pointer(enc, pnext); 412 vn_encode_VkStructureType(enc, &pnext->sType); 413 vn_encode_VkImageCreateInfo_pnext(enc, pnext->pNext); 414 vn_encode_VkImageDrmFormatModifierListCreateInfoEXT_self(enc, (const VkImageDrmFormatModifierListCreateInfoEXT *)pnext); 415 return; 416 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: 417 vn_encode_simple_pointer(enc, pnext); 418 vn_encode_VkStructureType(enc, &pnext->sType); 419 vn_encode_VkImageCreateInfo_pnext(enc, pnext->pNext); 420 vn_encode_VkImageDrmFormatModifierExplicitCreateInfoEXT_self(enc, (const VkImageDrmFormatModifierExplicitCreateInfoEXT *)pnext); 421 return; 422 case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: 423 vn_encode_simple_pointer(enc, pnext); 424 vn_encode_VkStructureType(enc, &pnext->sType); 425 vn_encode_VkImageCreateInfo_pnext(enc, pnext->pNext); 426 vn_encode_VkImageStencilUsageCreateInfo_self(enc, (const VkImageStencilUsageCreateInfo *)pnext); 427 return; 428 default: 429 /* ignore unknown/unsupported struct */ 430 break; 431 } 432 pnext = pnext->pNext; 433 } 434 435 vn_encode_simple_pointer(enc, NULL); 436 } 437 438 static inline void 439 vn_encode_VkImageCreateInfo_self(struct vn_cs_encoder *enc, const VkImageCreateInfo *val) 440 { 441 /* skip val->{sType,pNext} */ 442 vn_encode_VkFlags(enc, &val->flags); 443 vn_encode_VkImageType(enc, &val->imageType); 444 vn_encode_VkFormat(enc, &val->format); 445 vn_encode_VkExtent3D(enc, &val->extent); 446 vn_encode_uint32_t(enc, &val->mipLevels); 447 vn_encode_uint32_t(enc, &val->arrayLayers); 448 vn_encode_VkSampleCountFlagBits(enc, &val->samples); 449 vn_encode_VkImageTiling(enc, &val->tiling); 450 vn_encode_VkFlags(enc, &val->usage); 451 vn_encode_VkSharingMode(enc, &val->sharingMode); 452 vn_encode_uint32_t(enc, &val->queueFamilyIndexCount); 453 if (val->pQueueFamilyIndices) { 454 vn_encode_array_size(enc, val->queueFamilyIndexCount); 455 vn_encode_uint32_t_array(enc, val->pQueueFamilyIndices, val->queueFamilyIndexCount); 456 } else { 457 vn_encode_array_size(enc, 0); 458 } 459 vn_encode_VkImageLayout(enc, &val->initialLayout); 460 } 461 462 static inline void 463 vn_encode_VkImageCreateInfo(struct vn_cs_encoder *enc, const VkImageCreateInfo *val) 464 { 465 assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO); 466 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO }); 467 vn_encode_VkImageCreateInfo_pnext(enc, val->pNext); 468 vn_encode_VkImageCreateInfo_self(enc, val); 469 } 470 471 /* struct VkBindImageMemoryDeviceGroupInfo chain */ 472 473 static inline size_t 474 vn_sizeof_VkBindImageMemoryDeviceGroupInfo_pnext(const void *val) 475 { 476 /* no known/supported struct */ 477 return vn_sizeof_simple_pointer(NULL); 478 } 479 480 static inline size_t 481 vn_sizeof_VkBindImageMemoryDeviceGroupInfo_self(const VkBindImageMemoryDeviceGroupInfo *val) 482 { 483 size_t size = 0; 484 /* skip val->{sType,pNext} */ 485 size += vn_sizeof_uint32_t(&val->deviceIndexCount); 486 if (val->pDeviceIndices) { 487 size += vn_sizeof_array_size(val->deviceIndexCount); 488 size += vn_sizeof_uint32_t_array(val->pDeviceIndices, val->deviceIndexCount); 489 } else { 490 size += vn_sizeof_array_size(0); 491 } 492 size += vn_sizeof_uint32_t(&val->splitInstanceBindRegionCount); 493 if (val->pSplitInstanceBindRegions) { 494 size += vn_sizeof_array_size(val->splitInstanceBindRegionCount); 495 for (uint32_t i = 0; i < val->splitInstanceBindRegionCount; i++) 496 size += vn_sizeof_VkRect2D(&val->pSplitInstanceBindRegions[i]); 497 } else { 498 size += vn_sizeof_array_size(0); 499 } 500 return size; 501 } 502 503 static inline size_t 504 vn_sizeof_VkBindImageMemoryDeviceGroupInfo(const VkBindImageMemoryDeviceGroupInfo *val) 505 { 506 size_t size = 0; 507 508 size += vn_sizeof_VkStructureType(&val->sType); 509 size += vn_sizeof_VkBindImageMemoryDeviceGroupInfo_pnext(val->pNext); 510 size += vn_sizeof_VkBindImageMemoryDeviceGroupInfo_self(val); 511 512 return size; 513 } 514 515 static inline void 516 vn_encode_VkBindImageMemoryDeviceGroupInfo_pnext(struct vn_cs_encoder *enc, const void *val) 517 { 518 /* no known/supported struct */ 519 vn_encode_simple_pointer(enc, NULL); 520 } 521 522 static inline void 523 vn_encode_VkBindImageMemoryDeviceGroupInfo_self(struct vn_cs_encoder *enc, const VkBindImageMemoryDeviceGroupInfo *val) 524 { 525 /* skip val->{sType,pNext} */ 526 vn_encode_uint32_t(enc, &val->deviceIndexCount); 527 if (val->pDeviceIndices) { 528 vn_encode_array_size(enc, val->deviceIndexCount); 529 vn_encode_uint32_t_array(enc, val->pDeviceIndices, val->deviceIndexCount); 530 } else { 531 vn_encode_array_size(enc, 0); 532 } 533 vn_encode_uint32_t(enc, &val->splitInstanceBindRegionCount); 534 if (val->pSplitInstanceBindRegions) { 535 vn_encode_array_size(enc, val->splitInstanceBindRegionCount); 536 for (uint32_t i = 0; i < val->splitInstanceBindRegionCount; i++) 537 vn_encode_VkRect2D(enc, &val->pSplitInstanceBindRegions[i]); 538 } else { 539 vn_encode_array_size(enc, 0); 540 } 541 } 542 543 static inline void 544 vn_encode_VkBindImageMemoryDeviceGroupInfo(struct vn_cs_encoder *enc, const VkBindImageMemoryDeviceGroupInfo *val) 545 { 546 assert(val->sType == VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO); 547 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO }); 548 vn_encode_VkBindImageMemoryDeviceGroupInfo_pnext(enc, val->pNext); 549 vn_encode_VkBindImageMemoryDeviceGroupInfo_self(enc, val); 550 } 551 552 static inline void 553 vn_decode_VkBindImageMemoryDeviceGroupInfo_pnext(struct vn_cs_decoder *dec, const void *val) 554 { 555 /* no known/supported struct */ 556 if (vn_decode_simple_pointer(dec)) 557 assert(false); 558 } 559 560 static inline void 561 vn_decode_VkBindImageMemoryDeviceGroupInfo_self(struct vn_cs_decoder *dec, VkBindImageMemoryDeviceGroupInfo *val) 562 { 563 /* skip val->{sType,pNext} */ 564 vn_decode_uint32_t(dec, &val->deviceIndexCount); 565 if (vn_peek_array_size(dec)) { 566 const size_t array_size = vn_decode_array_size(dec, val->deviceIndexCount); 567 vn_decode_uint32_t_array(dec, (uint32_t *)val->pDeviceIndices, array_size); 568 } else { 569 vn_decode_array_size_unchecked(dec); 570 val->pDeviceIndices = NULL; 571 } 572 vn_decode_uint32_t(dec, &val->splitInstanceBindRegionCount); 573 if (vn_peek_array_size(dec)) { 574 const uint32_t iter_count = vn_decode_array_size(dec, val->splitInstanceBindRegionCount); 575 for (uint32_t i = 0; i < iter_count; i++) 576 vn_decode_VkRect2D(dec, &((VkRect2D *)val->pSplitInstanceBindRegions)[i]); 577 } else { 578 vn_decode_array_size_unchecked(dec); 579 val->pSplitInstanceBindRegions = NULL; 580 } 581 } 582 583 static inline void 584 vn_decode_VkBindImageMemoryDeviceGroupInfo(struct vn_cs_decoder *dec, VkBindImageMemoryDeviceGroupInfo *val) 585 { 586 VkStructureType stype; 587 vn_decode_VkStructureType(dec, &stype); 588 assert(stype == VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO); 589 590 assert(val->sType == stype); 591 vn_decode_VkBindImageMemoryDeviceGroupInfo_pnext(dec, val->pNext); 592 vn_decode_VkBindImageMemoryDeviceGroupInfo_self(dec, val); 593 } 594 595 /* struct VkBindImagePlaneMemoryInfo chain */ 596 597 static inline size_t 598 vn_sizeof_VkBindImagePlaneMemoryInfo_pnext(const void *val) 599 { 600 /* no known/supported struct */ 601 return vn_sizeof_simple_pointer(NULL); 602 } 603 604 static inline size_t 605 vn_sizeof_VkBindImagePlaneMemoryInfo_self(const VkBindImagePlaneMemoryInfo *val) 606 { 607 size_t size = 0; 608 /* skip val->{sType,pNext} */ 609 size += vn_sizeof_VkImageAspectFlagBits(&val->planeAspect); 610 return size; 611 } 612 613 static inline size_t 614 vn_sizeof_VkBindImagePlaneMemoryInfo(const VkBindImagePlaneMemoryInfo *val) 615 { 616 size_t size = 0; 617 618 size += vn_sizeof_VkStructureType(&val->sType); 619 size += vn_sizeof_VkBindImagePlaneMemoryInfo_pnext(val->pNext); 620 size += vn_sizeof_VkBindImagePlaneMemoryInfo_self(val); 621 622 return size; 623 } 624 625 static inline void 626 vn_encode_VkBindImagePlaneMemoryInfo_pnext(struct vn_cs_encoder *enc, const void *val) 627 { 628 /* no known/supported struct */ 629 vn_encode_simple_pointer(enc, NULL); 630 } 631 632 static inline void 633 vn_encode_VkBindImagePlaneMemoryInfo_self(struct vn_cs_encoder *enc, const VkBindImagePlaneMemoryInfo *val) 634 { 635 /* skip val->{sType,pNext} */ 636 vn_encode_VkImageAspectFlagBits(enc, &val->planeAspect); 637 } 638 639 static inline void 640 vn_encode_VkBindImagePlaneMemoryInfo(struct vn_cs_encoder *enc, const VkBindImagePlaneMemoryInfo *val) 641 { 642 assert(val->sType == VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO); 643 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO }); 644 vn_encode_VkBindImagePlaneMemoryInfo_pnext(enc, val->pNext); 645 vn_encode_VkBindImagePlaneMemoryInfo_self(enc, val); 646 } 647 648 static inline void 649 vn_decode_VkBindImagePlaneMemoryInfo_pnext(struct vn_cs_decoder *dec, const void *val) 650 { 651 /* no known/supported struct */ 652 if (vn_decode_simple_pointer(dec)) 653 assert(false); 654 } 655 656 static inline void 657 vn_decode_VkBindImagePlaneMemoryInfo_self(struct vn_cs_decoder *dec, VkBindImagePlaneMemoryInfo *val) 658 { 659 /* skip val->{sType,pNext} */ 660 vn_decode_VkImageAspectFlagBits(dec, &val->planeAspect); 661 } 662 663 static inline void 664 vn_decode_VkBindImagePlaneMemoryInfo(struct vn_cs_decoder *dec, VkBindImagePlaneMemoryInfo *val) 665 { 666 VkStructureType stype; 667 vn_decode_VkStructureType(dec, &stype); 668 assert(stype == VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO); 669 670 assert(val->sType == stype); 671 vn_decode_VkBindImagePlaneMemoryInfo_pnext(dec, val->pNext); 672 vn_decode_VkBindImagePlaneMemoryInfo_self(dec, val); 673 } 674 675 /* struct VkBindImageMemoryInfo chain */ 676 677 static inline size_t 678 vn_sizeof_VkBindImageMemoryInfo_pnext(const void *val) 679 { 680 const VkBaseInStructure *pnext = val; 681 size_t size = 0; 682 683 while (pnext) { 684 switch ((int32_t)pnext->sType) { 685 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: 686 size += vn_sizeof_simple_pointer(pnext); 687 size += vn_sizeof_VkStructureType(&pnext->sType); 688 size += vn_sizeof_VkBindImageMemoryInfo_pnext(pnext->pNext); 689 size += vn_sizeof_VkBindImageMemoryDeviceGroupInfo_self((const VkBindImageMemoryDeviceGroupInfo *)pnext); 690 return size; 691 case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: 692 size += vn_sizeof_simple_pointer(pnext); 693 size += vn_sizeof_VkStructureType(&pnext->sType); 694 size += vn_sizeof_VkBindImageMemoryInfo_pnext(pnext->pNext); 695 size += vn_sizeof_VkBindImagePlaneMemoryInfo_self((const VkBindImagePlaneMemoryInfo *)pnext); 696 return size; 697 default: 698 /* ignore unknown/unsupported struct */ 699 break; 700 } 701 pnext = pnext->pNext; 702 } 703 704 return vn_sizeof_simple_pointer(NULL); 705 } 706 707 static inline size_t 708 vn_sizeof_VkBindImageMemoryInfo_self(const VkBindImageMemoryInfo *val) 709 { 710 size_t size = 0; 711 /* skip val->{sType,pNext} */ 712 size += vn_sizeof_VkImage(&val->image); 713 size += vn_sizeof_VkDeviceMemory(&val->memory); 714 size += vn_sizeof_VkDeviceSize(&val->memoryOffset); 715 return size; 716 } 717 718 static inline size_t 719 vn_sizeof_VkBindImageMemoryInfo(const VkBindImageMemoryInfo *val) 720 { 721 size_t size = 0; 722 723 size += vn_sizeof_VkStructureType(&val->sType); 724 size += vn_sizeof_VkBindImageMemoryInfo_pnext(val->pNext); 725 size += vn_sizeof_VkBindImageMemoryInfo_self(val); 726 727 return size; 728 } 729 730 static inline void 731 vn_encode_VkBindImageMemoryInfo_pnext(struct vn_cs_encoder *enc, const void *val) 732 { 733 const VkBaseInStructure *pnext = val; 734 735 while (pnext) { 736 switch ((int32_t)pnext->sType) { 737 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: 738 vn_encode_simple_pointer(enc, pnext); 739 vn_encode_VkStructureType(enc, &pnext->sType); 740 vn_encode_VkBindImageMemoryInfo_pnext(enc, pnext->pNext); 741 vn_encode_VkBindImageMemoryDeviceGroupInfo_self(enc, (const VkBindImageMemoryDeviceGroupInfo *)pnext); 742 return; 743 case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: 744 vn_encode_simple_pointer(enc, pnext); 745 vn_encode_VkStructureType(enc, &pnext->sType); 746 vn_encode_VkBindImageMemoryInfo_pnext(enc, pnext->pNext); 747 vn_encode_VkBindImagePlaneMemoryInfo_self(enc, (const VkBindImagePlaneMemoryInfo *)pnext); 748 return; 749 default: 750 /* ignore unknown/unsupported struct */ 751 break; 752 } 753 pnext = pnext->pNext; 754 } 755 756 vn_encode_simple_pointer(enc, NULL); 757 } 758 759 static inline void 760 vn_encode_VkBindImageMemoryInfo_self(struct vn_cs_encoder *enc, const VkBindImageMemoryInfo *val) 761 { 762 /* skip val->{sType,pNext} */ 763 vn_encode_VkImage(enc, &val->image); 764 vn_encode_VkDeviceMemory(enc, &val->memory); 765 vn_encode_VkDeviceSize(enc, &val->memoryOffset); 766 } 767 768 static inline void 769 vn_encode_VkBindImageMemoryInfo(struct vn_cs_encoder *enc, const VkBindImageMemoryInfo *val) 770 { 771 assert(val->sType == VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO); 772 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO }); 773 vn_encode_VkBindImageMemoryInfo_pnext(enc, val->pNext); 774 vn_encode_VkBindImageMemoryInfo_self(enc, val); 775 } 776 777 static inline void 778 vn_decode_VkBindImageMemoryInfo_pnext(struct vn_cs_decoder *dec, const void *val) 779 { 780 VkBaseOutStructure *pnext = (VkBaseOutStructure *)val; 781 VkStructureType stype; 782 783 if (!vn_decode_simple_pointer(dec)) 784 return; 785 786 vn_decode_VkStructureType(dec, &stype); 787 while (true) { 788 assert(pnext); 789 if (pnext->sType == stype) 790 break; 791 } 792 793 switch ((int32_t)pnext->sType) { 794 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: 795 vn_decode_VkBindImageMemoryInfo_pnext(dec, pnext->pNext); 796 vn_decode_VkBindImageMemoryDeviceGroupInfo_self(dec, (VkBindImageMemoryDeviceGroupInfo *)pnext); 797 break; 798 case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: 799 vn_decode_VkBindImageMemoryInfo_pnext(dec, pnext->pNext); 800 vn_decode_VkBindImagePlaneMemoryInfo_self(dec, (VkBindImagePlaneMemoryInfo *)pnext); 801 break; 802 default: 803 assert(false); 804 break; 805 } 806 } 807 808 static inline void 809 vn_decode_VkBindImageMemoryInfo_self(struct vn_cs_decoder *dec, VkBindImageMemoryInfo *val) 810 { 811 /* skip val->{sType,pNext} */ 812 vn_decode_VkImage(dec, &val->image); 813 vn_decode_VkDeviceMemory(dec, &val->memory); 814 vn_decode_VkDeviceSize(dec, &val->memoryOffset); 815 } 816 817 static inline void 818 vn_decode_VkBindImageMemoryInfo(struct vn_cs_decoder *dec, VkBindImageMemoryInfo *val) 819 { 820 VkStructureType stype; 821 vn_decode_VkStructureType(dec, &stype); 822 assert(stype == VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO); 823 824 assert(val->sType == stype); 825 vn_decode_VkBindImageMemoryInfo_pnext(dec, val->pNext); 826 vn_decode_VkBindImageMemoryInfo_self(dec, val); 827 } 828 829 /* struct VkImagePlaneMemoryRequirementsInfo chain */ 830 831 static inline size_t 832 vn_sizeof_VkImagePlaneMemoryRequirementsInfo_pnext(const void *val) 833 { 834 /* no known/supported struct */ 835 return vn_sizeof_simple_pointer(NULL); 836 } 837 838 static inline size_t 839 vn_sizeof_VkImagePlaneMemoryRequirementsInfo_self(const VkImagePlaneMemoryRequirementsInfo *val) 840 { 841 size_t size = 0; 842 /* skip val->{sType,pNext} */ 843 size += vn_sizeof_VkImageAspectFlagBits(&val->planeAspect); 844 return size; 845 } 846 847 static inline size_t 848 vn_sizeof_VkImagePlaneMemoryRequirementsInfo(const VkImagePlaneMemoryRequirementsInfo *val) 849 { 850 size_t size = 0; 851 852 size += vn_sizeof_VkStructureType(&val->sType); 853 size += vn_sizeof_VkImagePlaneMemoryRequirementsInfo_pnext(val->pNext); 854 size += vn_sizeof_VkImagePlaneMemoryRequirementsInfo_self(val); 855 856 return size; 857 } 858 859 static inline void 860 vn_encode_VkImagePlaneMemoryRequirementsInfo_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_VkImagePlaneMemoryRequirementsInfo_self(struct vn_cs_encoder *enc, const VkImagePlaneMemoryRequirementsInfo *val) 868 { 869 /* skip val->{sType,pNext} */ 870 vn_encode_VkImageAspectFlagBits(enc, &val->planeAspect); 871 } 872 873 static inline void 874 vn_encode_VkImagePlaneMemoryRequirementsInfo(struct vn_cs_encoder *enc, const VkImagePlaneMemoryRequirementsInfo *val) 875 { 876 assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO); 877 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO }); 878 vn_encode_VkImagePlaneMemoryRequirementsInfo_pnext(enc, val->pNext); 879 vn_encode_VkImagePlaneMemoryRequirementsInfo_self(enc, val); 880 } 881 882 /* struct VkImageMemoryRequirementsInfo2 chain */ 883 884 static inline size_t 885 vn_sizeof_VkImageMemoryRequirementsInfo2_pnext(const void *val) 886 { 887 const VkBaseInStructure *pnext = val; 888 size_t size = 0; 889 890 while (pnext) { 891 switch ((int32_t)pnext->sType) { 892 case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: 893 size += vn_sizeof_simple_pointer(pnext); 894 size += vn_sizeof_VkStructureType(&pnext->sType); 895 size += vn_sizeof_VkImageMemoryRequirementsInfo2_pnext(pnext->pNext); 896 size += vn_sizeof_VkImagePlaneMemoryRequirementsInfo_self((const VkImagePlaneMemoryRequirementsInfo *)pnext); 897 return size; 898 default: 899 /* ignore unknown/unsupported struct */ 900 break; 901 } 902 pnext = pnext->pNext; 903 } 904 905 return vn_sizeof_simple_pointer(NULL); 906 } 907 908 static inline size_t 909 vn_sizeof_VkImageMemoryRequirementsInfo2_self(const VkImageMemoryRequirementsInfo2 *val) 910 { 911 size_t size = 0; 912 /* skip val->{sType,pNext} */ 913 size += vn_sizeof_VkImage(&val->image); 914 return size; 915 } 916 917 static inline size_t 918 vn_sizeof_VkImageMemoryRequirementsInfo2(const VkImageMemoryRequirementsInfo2 *val) 919 { 920 size_t size = 0; 921 922 size += vn_sizeof_VkStructureType(&val->sType); 923 size += vn_sizeof_VkImageMemoryRequirementsInfo2_pnext(val->pNext); 924 size += vn_sizeof_VkImageMemoryRequirementsInfo2_self(val); 925 926 return size; 927 } 928 929 static inline void 930 vn_encode_VkImageMemoryRequirementsInfo2_pnext(struct vn_cs_encoder *enc, const void *val) 931 { 932 const VkBaseInStructure *pnext = val; 933 934 while (pnext) { 935 switch ((int32_t)pnext->sType) { 936 case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: 937 vn_encode_simple_pointer(enc, pnext); 938 vn_encode_VkStructureType(enc, &pnext->sType); 939 vn_encode_VkImageMemoryRequirementsInfo2_pnext(enc, pnext->pNext); 940 vn_encode_VkImagePlaneMemoryRequirementsInfo_self(enc, (const VkImagePlaneMemoryRequirementsInfo *)pnext); 941 return; 942 default: 943 /* ignore unknown/unsupported struct */ 944 break; 945 } 946 pnext = pnext->pNext; 947 } 948 949 vn_encode_simple_pointer(enc, NULL); 950 } 951 952 static inline void 953 vn_encode_VkImageMemoryRequirementsInfo2_self(struct vn_cs_encoder *enc, const VkImageMemoryRequirementsInfo2 *val) 954 { 955 /* skip val->{sType,pNext} */ 956 vn_encode_VkImage(enc, &val->image); 957 } 958 959 static inline void 960 vn_encode_VkImageMemoryRequirementsInfo2(struct vn_cs_encoder *enc, const VkImageMemoryRequirementsInfo2 *val) 961 { 962 assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2); 963 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 }); 964 vn_encode_VkImageMemoryRequirementsInfo2_pnext(enc, val->pNext); 965 vn_encode_VkImageMemoryRequirementsInfo2_self(enc, val); 966 } 967 968 /* struct VkImageSparseMemoryRequirementsInfo2 chain */ 969 970 static inline size_t 971 vn_sizeof_VkImageSparseMemoryRequirementsInfo2_pnext(const void *val) 972 { 973 /* no known/supported struct */ 974 return vn_sizeof_simple_pointer(NULL); 975 } 976 977 static inline size_t 978 vn_sizeof_VkImageSparseMemoryRequirementsInfo2_self(const VkImageSparseMemoryRequirementsInfo2 *val) 979 { 980 size_t size = 0; 981 /* skip val->{sType,pNext} */ 982 size += vn_sizeof_VkImage(&val->image); 983 return size; 984 } 985 986 static inline size_t 987 vn_sizeof_VkImageSparseMemoryRequirementsInfo2(const VkImageSparseMemoryRequirementsInfo2 *val) 988 { 989 size_t size = 0; 990 991 size += vn_sizeof_VkStructureType(&val->sType); 992 size += vn_sizeof_VkImageSparseMemoryRequirementsInfo2_pnext(val->pNext); 993 size += vn_sizeof_VkImageSparseMemoryRequirementsInfo2_self(val); 994 995 return size; 996 } 997 998 static inline void 999 vn_encode_VkImageSparseMemoryRequirementsInfo2_pnext(struct vn_cs_encoder *enc, const void *val) 1000 { 1001 /* no known/supported struct */ 1002 vn_encode_simple_pointer(enc, NULL); 1003 } 1004 1005 static inline void 1006 vn_encode_VkImageSparseMemoryRequirementsInfo2_self(struct vn_cs_encoder *enc, const VkImageSparseMemoryRequirementsInfo2 *val) 1007 { 1008 /* skip val->{sType,pNext} */ 1009 vn_encode_VkImage(enc, &val->image); 1010 } 1011 1012 static inline void 1013 vn_encode_VkImageSparseMemoryRequirementsInfo2(struct vn_cs_encoder *enc, const VkImageSparseMemoryRequirementsInfo2 *val) 1014 { 1015 assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2); 1016 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 }); 1017 vn_encode_VkImageSparseMemoryRequirementsInfo2_pnext(enc, val->pNext); 1018 vn_encode_VkImageSparseMemoryRequirementsInfo2_self(enc, val); 1019 } 1020 1021 /* struct VkSparseImageMemoryRequirements2 chain */ 1022 1023 static inline size_t 1024 vn_sizeof_VkSparseImageMemoryRequirements2_pnext(const void *val) 1025 { 1026 /* no known/supported struct */ 1027 return vn_sizeof_simple_pointer(NULL); 1028 } 1029 1030 static inline size_t 1031 vn_sizeof_VkSparseImageMemoryRequirements2_self(const VkSparseImageMemoryRequirements2 *val) 1032 { 1033 size_t size = 0; 1034 /* skip val->{sType,pNext} */ 1035 size += vn_sizeof_VkSparseImageMemoryRequirements(&val->memoryRequirements); 1036 return size; 1037 } 1038 1039 static inline size_t 1040 vn_sizeof_VkSparseImageMemoryRequirements2(const VkSparseImageMemoryRequirements2 *val) 1041 { 1042 size_t size = 0; 1043 1044 size += vn_sizeof_VkStructureType(&val->sType); 1045 size += vn_sizeof_VkSparseImageMemoryRequirements2_pnext(val->pNext); 1046 size += vn_sizeof_VkSparseImageMemoryRequirements2_self(val); 1047 1048 return size; 1049 } 1050 1051 static inline void 1052 vn_decode_VkSparseImageMemoryRequirements2_pnext(struct vn_cs_decoder *dec, const void *val) 1053 { 1054 /* no known/supported struct */ 1055 if (vn_decode_simple_pointer(dec)) 1056 assert(false); 1057 } 1058 1059 static inline void 1060 vn_decode_VkSparseImageMemoryRequirements2_self(struct vn_cs_decoder *dec, VkSparseImageMemoryRequirements2 *val) 1061 { 1062 /* skip val->{sType,pNext} */ 1063 vn_decode_VkSparseImageMemoryRequirements(dec, &val->memoryRequirements); 1064 } 1065 1066 static inline void 1067 vn_decode_VkSparseImageMemoryRequirements2(struct vn_cs_decoder *dec, VkSparseImageMemoryRequirements2 *val) 1068 { 1069 VkStructureType stype; 1070 vn_decode_VkStructureType(dec, &stype); 1071 assert(stype == VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2); 1072 1073 assert(val->sType == stype); 1074 vn_decode_VkSparseImageMemoryRequirements2_pnext(dec, val->pNext); 1075 vn_decode_VkSparseImageMemoryRequirements2_self(dec, val); 1076 } 1077 1078 static inline size_t 1079 vn_sizeof_VkSparseImageMemoryRequirements2_pnext_partial(const void *val) 1080 { 1081 /* no known/supported struct */ 1082 return vn_sizeof_simple_pointer(NULL); 1083 } 1084 1085 static inline size_t 1086 vn_sizeof_VkSparseImageMemoryRequirements2_self_partial(const VkSparseImageMemoryRequirements2 *val) 1087 { 1088 size_t size = 0; 1089 /* skip val->{sType,pNext} */ 1090 size += vn_sizeof_VkSparseImageMemoryRequirements_partial(&val->memoryRequirements); 1091 return size; 1092 } 1093 1094 static inline size_t 1095 vn_sizeof_VkSparseImageMemoryRequirements2_partial(const VkSparseImageMemoryRequirements2 *val) 1096 { 1097 size_t size = 0; 1098 1099 size += vn_sizeof_VkStructureType(&val->sType); 1100 size += vn_sizeof_VkSparseImageMemoryRequirements2_pnext_partial(val->pNext); 1101 size += vn_sizeof_VkSparseImageMemoryRequirements2_self_partial(val); 1102 1103 return size; 1104 } 1105 1106 static inline void 1107 vn_encode_VkSparseImageMemoryRequirements2_pnext_partial(struct vn_cs_encoder *enc, const void *val) 1108 { 1109 /* no known/supported struct */ 1110 vn_encode_simple_pointer(enc, NULL); 1111 } 1112 1113 static inline void 1114 vn_encode_VkSparseImageMemoryRequirements2_self_partial(struct vn_cs_encoder *enc, const VkSparseImageMemoryRequirements2 *val) 1115 { 1116 /* skip val->{sType,pNext} */ 1117 vn_encode_VkSparseImageMemoryRequirements_partial(enc, &val->memoryRequirements); 1118 } 1119 1120 static inline void 1121 vn_encode_VkSparseImageMemoryRequirements2_partial(struct vn_cs_encoder *enc, const VkSparseImageMemoryRequirements2 *val) 1122 { 1123 assert(val->sType == VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2); 1124 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 }); 1125 vn_encode_VkSparseImageMemoryRequirements2_pnext_partial(enc, val->pNext); 1126 vn_encode_VkSparseImageMemoryRequirements2_self_partial(enc, val); 1127 } 1128 1129 /* struct VkImageDrmFormatModifierPropertiesEXT chain */ 1130 1131 static inline size_t 1132 vn_sizeof_VkImageDrmFormatModifierPropertiesEXT_pnext(const void *val) 1133 { 1134 /* no known/supported struct */ 1135 return vn_sizeof_simple_pointer(NULL); 1136 } 1137 1138 static inline size_t 1139 vn_sizeof_VkImageDrmFormatModifierPropertiesEXT_self(const VkImageDrmFormatModifierPropertiesEXT *val) 1140 { 1141 size_t size = 0; 1142 /* skip val->{sType,pNext} */ 1143 size += vn_sizeof_uint64_t(&val->drmFormatModifier); 1144 return size; 1145 } 1146 1147 static inline size_t 1148 vn_sizeof_VkImageDrmFormatModifierPropertiesEXT(const VkImageDrmFormatModifierPropertiesEXT *val) 1149 { 1150 size_t size = 0; 1151 1152 size += vn_sizeof_VkStructureType(&val->sType); 1153 size += vn_sizeof_VkImageDrmFormatModifierPropertiesEXT_pnext(val->pNext); 1154 size += vn_sizeof_VkImageDrmFormatModifierPropertiesEXT_self(val); 1155 1156 return size; 1157 } 1158 1159 static inline void 1160 vn_decode_VkImageDrmFormatModifierPropertiesEXT_pnext(struct vn_cs_decoder *dec, const void *val) 1161 { 1162 /* no known/supported struct */ 1163 if (vn_decode_simple_pointer(dec)) 1164 assert(false); 1165 } 1166 1167 static inline void 1168 vn_decode_VkImageDrmFormatModifierPropertiesEXT_self(struct vn_cs_decoder *dec, VkImageDrmFormatModifierPropertiesEXT *val) 1169 { 1170 /* skip val->{sType,pNext} */ 1171 vn_decode_uint64_t(dec, &val->drmFormatModifier); 1172 } 1173 1174 static inline void 1175 vn_decode_VkImageDrmFormatModifierPropertiesEXT(struct vn_cs_decoder *dec, VkImageDrmFormatModifierPropertiesEXT *val) 1176 { 1177 VkStructureType stype; 1178 vn_decode_VkStructureType(dec, &stype); 1179 assert(stype == VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT); 1180 1181 assert(val->sType == stype); 1182 vn_decode_VkImageDrmFormatModifierPropertiesEXT_pnext(dec, val->pNext); 1183 vn_decode_VkImageDrmFormatModifierPropertiesEXT_self(dec, val); 1184 } 1185 1186 static inline size_t 1187 vn_sizeof_VkImageDrmFormatModifierPropertiesEXT_pnext_partial(const void *val) 1188 { 1189 /* no known/supported struct */ 1190 return vn_sizeof_simple_pointer(NULL); 1191 } 1192 1193 static inline size_t 1194 vn_sizeof_VkImageDrmFormatModifierPropertiesEXT_self_partial(const VkImageDrmFormatModifierPropertiesEXT *val) 1195 { 1196 size_t size = 0; 1197 /* skip val->{sType,pNext} */ 1198 /* skip val->drmFormatModifier */ 1199 return size; 1200 } 1201 1202 static inline size_t 1203 vn_sizeof_VkImageDrmFormatModifierPropertiesEXT_partial(const VkImageDrmFormatModifierPropertiesEXT *val) 1204 { 1205 size_t size = 0; 1206 1207 size += vn_sizeof_VkStructureType(&val->sType); 1208 size += vn_sizeof_VkImageDrmFormatModifierPropertiesEXT_pnext_partial(val->pNext); 1209 size += vn_sizeof_VkImageDrmFormatModifierPropertiesEXT_self_partial(val); 1210 1211 return size; 1212 } 1213 1214 static inline void 1215 vn_encode_VkImageDrmFormatModifierPropertiesEXT_pnext_partial(struct vn_cs_encoder *enc, const void *val) 1216 { 1217 /* no known/supported struct */ 1218 vn_encode_simple_pointer(enc, NULL); 1219 } 1220 1221 static inline void 1222 vn_encode_VkImageDrmFormatModifierPropertiesEXT_self_partial(struct vn_cs_encoder *enc, const VkImageDrmFormatModifierPropertiesEXT *val) 1223 { 1224 /* skip val->{sType,pNext} */ 1225 /* skip val->drmFormatModifier */ 1226 } 1227 1228 static inline void 1229 vn_encode_VkImageDrmFormatModifierPropertiesEXT_partial(struct vn_cs_encoder *enc, const VkImageDrmFormatModifierPropertiesEXT *val) 1230 { 1231 assert(val->sType == VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT); 1232 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT }); 1233 vn_encode_VkImageDrmFormatModifierPropertiesEXT_pnext_partial(enc, val->pNext); 1234 vn_encode_VkImageDrmFormatModifierPropertiesEXT_self_partial(enc, val); 1235 } 1236 1237 static inline size_t vn_sizeof_vkGetImageMemoryRequirements(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) 1238 { 1239 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageMemoryRequirements_EXT; 1240 const VkFlags cmd_flags = 0; 1241 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1242 1243 cmd_size += vn_sizeof_VkDevice(&device); 1244 cmd_size += vn_sizeof_VkImage(&image); 1245 cmd_size += vn_sizeof_simple_pointer(pMemoryRequirements); 1246 if (pMemoryRequirements) 1247 cmd_size += vn_sizeof_VkMemoryRequirements_partial(pMemoryRequirements); 1248 1249 return cmd_size; 1250 } 1251 1252 static inline void vn_encode_vkGetImageMemoryRequirements(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) 1253 { 1254 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageMemoryRequirements_EXT; 1255 1256 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1257 vn_encode_VkFlags(enc, &cmd_flags); 1258 1259 vn_encode_VkDevice(enc, &device); 1260 vn_encode_VkImage(enc, &image); 1261 if (vn_encode_simple_pointer(enc, pMemoryRequirements)) 1262 vn_encode_VkMemoryRequirements_partial(enc, pMemoryRequirements); 1263 } 1264 1265 static inline size_t vn_sizeof_vkGetImageMemoryRequirements_reply(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) 1266 { 1267 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageMemoryRequirements_EXT; 1268 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1269 1270 /* skip device */ 1271 /* skip image */ 1272 cmd_size += vn_sizeof_simple_pointer(pMemoryRequirements); 1273 if (pMemoryRequirements) 1274 cmd_size += vn_sizeof_VkMemoryRequirements(pMemoryRequirements); 1275 1276 return cmd_size; 1277 } 1278 1279 static inline void vn_decode_vkGetImageMemoryRequirements_reply(struct vn_cs_decoder *dec, VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) 1280 { 1281 VkCommandTypeEXT command_type; 1282 vn_decode_VkCommandTypeEXT(dec, &command_type); 1283 assert(command_type == VK_COMMAND_TYPE_vkGetImageMemoryRequirements_EXT); 1284 1285 /* skip device */ 1286 /* skip image */ 1287 if (vn_decode_simple_pointer(dec)) { 1288 vn_decode_VkMemoryRequirements(dec, pMemoryRequirements); 1289 } else { 1290 pMemoryRequirements = NULL; 1291 } 1292 } 1293 1294 static inline size_t vn_sizeof_vkBindImageMemory(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) 1295 { 1296 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBindImageMemory_EXT; 1297 const VkFlags cmd_flags = 0; 1298 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1299 1300 cmd_size += vn_sizeof_VkDevice(&device); 1301 cmd_size += vn_sizeof_VkImage(&image); 1302 cmd_size += vn_sizeof_VkDeviceMemory(&memory); 1303 cmd_size += vn_sizeof_VkDeviceSize(&memoryOffset); 1304 1305 return cmd_size; 1306 } 1307 1308 static inline void vn_encode_vkBindImageMemory(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) 1309 { 1310 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBindImageMemory_EXT; 1311 1312 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1313 vn_encode_VkFlags(enc, &cmd_flags); 1314 1315 vn_encode_VkDevice(enc, &device); 1316 vn_encode_VkImage(enc, &image); 1317 vn_encode_VkDeviceMemory(enc, &memory); 1318 vn_encode_VkDeviceSize(enc, &memoryOffset); 1319 } 1320 1321 static inline size_t vn_sizeof_vkBindImageMemory_reply(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) 1322 { 1323 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBindImageMemory_EXT; 1324 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1325 1326 VkResult ret; 1327 cmd_size += vn_sizeof_VkResult(&ret); 1328 /* skip device */ 1329 /* skip image */ 1330 /* skip memory */ 1331 /* skip memoryOffset */ 1332 1333 return cmd_size; 1334 } 1335 1336 static inline VkResult vn_decode_vkBindImageMemory_reply(struct vn_cs_decoder *dec, VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) 1337 { 1338 VkCommandTypeEXT command_type; 1339 vn_decode_VkCommandTypeEXT(dec, &command_type); 1340 assert(command_type == VK_COMMAND_TYPE_vkBindImageMemory_EXT); 1341 1342 VkResult ret; 1343 vn_decode_VkResult(dec, &ret); 1344 /* skip device */ 1345 /* skip image */ 1346 /* skip memory */ 1347 /* skip memoryOffset */ 1348 1349 return ret; 1350 } 1351 1352 static inline size_t vn_sizeof_vkGetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) 1353 { 1354 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements_EXT; 1355 const VkFlags cmd_flags = 0; 1356 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1357 1358 cmd_size += vn_sizeof_VkDevice(&device); 1359 cmd_size += vn_sizeof_VkImage(&image); 1360 cmd_size += vn_sizeof_simple_pointer(pSparseMemoryRequirementCount); 1361 if (pSparseMemoryRequirementCount) 1362 cmd_size += vn_sizeof_uint32_t(pSparseMemoryRequirementCount); 1363 if (pSparseMemoryRequirements) { 1364 cmd_size += vn_sizeof_array_size((pSparseMemoryRequirementCount ? *pSparseMemoryRequirementCount : 0)); 1365 for (uint32_t i = 0; i < (pSparseMemoryRequirementCount ? *pSparseMemoryRequirementCount : 0); i++) 1366 cmd_size += vn_sizeof_VkSparseImageMemoryRequirements_partial(&pSparseMemoryRequirements[i]); 1367 } else { 1368 cmd_size += vn_sizeof_array_size(0); 1369 } 1370 1371 return cmd_size; 1372 } 1373 1374 static inline void vn_encode_vkGetImageSparseMemoryRequirements(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) 1375 { 1376 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements_EXT; 1377 1378 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1379 vn_encode_VkFlags(enc, &cmd_flags); 1380 1381 vn_encode_VkDevice(enc, &device); 1382 vn_encode_VkImage(enc, &image); 1383 if (vn_encode_simple_pointer(enc, pSparseMemoryRequirementCount)) 1384 vn_encode_uint32_t(enc, pSparseMemoryRequirementCount); 1385 if (pSparseMemoryRequirements) { 1386 vn_encode_array_size(enc, (pSparseMemoryRequirementCount ? *pSparseMemoryRequirementCount : 0)); 1387 for (uint32_t i = 0; i < (pSparseMemoryRequirementCount ? *pSparseMemoryRequirementCount : 0); i++) 1388 vn_encode_VkSparseImageMemoryRequirements_partial(enc, &pSparseMemoryRequirements[i]); 1389 } else { 1390 vn_encode_array_size(enc, 0); 1391 } 1392 } 1393 1394 static inline size_t vn_sizeof_vkGetImageSparseMemoryRequirements_reply(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) 1395 { 1396 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements_EXT; 1397 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1398 1399 /* skip device */ 1400 /* skip image */ 1401 cmd_size += vn_sizeof_simple_pointer(pSparseMemoryRequirementCount); 1402 if (pSparseMemoryRequirementCount) 1403 cmd_size += vn_sizeof_uint32_t(pSparseMemoryRequirementCount); 1404 if (pSparseMemoryRequirements) { 1405 cmd_size += vn_sizeof_array_size((pSparseMemoryRequirementCount ? *pSparseMemoryRequirementCount : 0)); 1406 for (uint32_t i = 0; i < (pSparseMemoryRequirementCount ? *pSparseMemoryRequirementCount : 0); i++) 1407 cmd_size += vn_sizeof_VkSparseImageMemoryRequirements(&pSparseMemoryRequirements[i]); 1408 } else { 1409 cmd_size += vn_sizeof_array_size(0); 1410 } 1411 1412 return cmd_size; 1413 } 1414 1415 static inline void vn_decode_vkGetImageSparseMemoryRequirements_reply(struct vn_cs_decoder *dec, VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) 1416 { 1417 VkCommandTypeEXT command_type; 1418 vn_decode_VkCommandTypeEXT(dec, &command_type); 1419 assert(command_type == VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements_EXT); 1420 1421 /* skip device */ 1422 /* skip image */ 1423 if (vn_decode_simple_pointer(dec)) { 1424 vn_decode_uint32_t(dec, pSparseMemoryRequirementCount); 1425 } else { 1426 pSparseMemoryRequirementCount = NULL; 1427 } 1428 if (vn_peek_array_size(dec)) { 1429 const uint32_t iter_count = vn_decode_array_size(dec, (pSparseMemoryRequirementCount ? *pSparseMemoryRequirementCount : 0)); 1430 for (uint32_t i = 0; i < iter_count; i++) 1431 vn_decode_VkSparseImageMemoryRequirements(dec, &pSparseMemoryRequirements[i]); 1432 } else { 1433 vn_decode_array_size_unchecked(dec); 1434 pSparseMemoryRequirements = NULL; 1435 } 1436 } 1437 1438 static inline size_t vn_sizeof_vkCreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) 1439 { 1440 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateImage_EXT; 1441 const VkFlags cmd_flags = 0; 1442 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1443 1444 cmd_size += vn_sizeof_VkDevice(&device); 1445 cmd_size += vn_sizeof_simple_pointer(pCreateInfo); 1446 if (pCreateInfo) 1447 cmd_size += vn_sizeof_VkImageCreateInfo(pCreateInfo); 1448 cmd_size += vn_sizeof_simple_pointer(pAllocator); 1449 if (pAllocator) 1450 assert(false); 1451 cmd_size += vn_sizeof_simple_pointer(pImage); 1452 if (pImage) 1453 cmd_size += vn_sizeof_VkImage(pImage); 1454 1455 return cmd_size; 1456 } 1457 1458 static inline void vn_encode_vkCreateImage(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) 1459 { 1460 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateImage_EXT; 1461 1462 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1463 vn_encode_VkFlags(enc, &cmd_flags); 1464 1465 vn_encode_VkDevice(enc, &device); 1466 if (vn_encode_simple_pointer(enc, pCreateInfo)) 1467 vn_encode_VkImageCreateInfo(enc, pCreateInfo); 1468 if (vn_encode_simple_pointer(enc, pAllocator)) 1469 assert(false); 1470 if (vn_encode_simple_pointer(enc, pImage)) 1471 vn_encode_VkImage(enc, pImage); 1472 } 1473 1474 static inline size_t vn_sizeof_vkCreateImage_reply(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) 1475 { 1476 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateImage_EXT; 1477 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1478 1479 VkResult ret; 1480 cmd_size += vn_sizeof_VkResult(&ret); 1481 /* skip device */ 1482 /* skip pCreateInfo */ 1483 /* skip pAllocator */ 1484 cmd_size += vn_sizeof_simple_pointer(pImage); 1485 if (pImage) 1486 cmd_size += vn_sizeof_VkImage(pImage); 1487 1488 return cmd_size; 1489 } 1490 1491 static inline VkResult vn_decode_vkCreateImage_reply(struct vn_cs_decoder *dec, VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) 1492 { 1493 VkCommandTypeEXT command_type; 1494 vn_decode_VkCommandTypeEXT(dec, &command_type); 1495 assert(command_type == VK_COMMAND_TYPE_vkCreateImage_EXT); 1496 1497 VkResult ret; 1498 vn_decode_VkResult(dec, &ret); 1499 /* skip device */ 1500 /* skip pCreateInfo */ 1501 /* skip pAllocator */ 1502 if (vn_decode_simple_pointer(dec)) { 1503 vn_decode_VkImage(dec, pImage); 1504 } else { 1505 pImage = NULL; 1506 } 1507 1508 return ret; 1509 } 1510 1511 static inline size_t vn_sizeof_vkDestroyImage(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) 1512 { 1513 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyImage_EXT; 1514 const VkFlags cmd_flags = 0; 1515 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1516 1517 cmd_size += vn_sizeof_VkDevice(&device); 1518 cmd_size += vn_sizeof_VkImage(&image); 1519 cmd_size += vn_sizeof_simple_pointer(pAllocator); 1520 if (pAllocator) 1521 assert(false); 1522 1523 return cmd_size; 1524 } 1525 1526 static inline void vn_encode_vkDestroyImage(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) 1527 { 1528 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyImage_EXT; 1529 1530 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1531 vn_encode_VkFlags(enc, &cmd_flags); 1532 1533 vn_encode_VkDevice(enc, &device); 1534 vn_encode_VkImage(enc, &image); 1535 if (vn_encode_simple_pointer(enc, pAllocator)) 1536 assert(false); 1537 } 1538 1539 static inline size_t vn_sizeof_vkDestroyImage_reply(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) 1540 { 1541 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyImage_EXT; 1542 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1543 1544 /* skip device */ 1545 /* skip image */ 1546 /* skip pAllocator */ 1547 1548 return cmd_size; 1549 } 1550 1551 static inline void vn_decode_vkDestroyImage_reply(struct vn_cs_decoder *dec, VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) 1552 { 1553 VkCommandTypeEXT command_type; 1554 vn_decode_VkCommandTypeEXT(dec, &command_type); 1555 assert(command_type == VK_COMMAND_TYPE_vkDestroyImage_EXT); 1556 1557 /* skip device */ 1558 /* skip image */ 1559 /* skip pAllocator */ 1560 } 1561 1562 static inline size_t vn_sizeof_vkGetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) 1563 { 1564 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageSubresourceLayout_EXT; 1565 const VkFlags cmd_flags = 0; 1566 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1567 1568 cmd_size += vn_sizeof_VkDevice(&device); 1569 cmd_size += vn_sizeof_VkImage(&image); 1570 cmd_size += vn_sizeof_simple_pointer(pSubresource); 1571 if (pSubresource) 1572 cmd_size += vn_sizeof_VkImageSubresource(pSubresource); 1573 cmd_size += vn_sizeof_simple_pointer(pLayout); 1574 if (pLayout) 1575 cmd_size += vn_sizeof_VkSubresourceLayout_partial(pLayout); 1576 1577 return cmd_size; 1578 } 1579 1580 static inline void vn_encode_vkGetImageSubresourceLayout(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) 1581 { 1582 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageSubresourceLayout_EXT; 1583 1584 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1585 vn_encode_VkFlags(enc, &cmd_flags); 1586 1587 vn_encode_VkDevice(enc, &device); 1588 vn_encode_VkImage(enc, &image); 1589 if (vn_encode_simple_pointer(enc, pSubresource)) 1590 vn_encode_VkImageSubresource(enc, pSubresource); 1591 if (vn_encode_simple_pointer(enc, pLayout)) 1592 vn_encode_VkSubresourceLayout_partial(enc, pLayout); 1593 } 1594 1595 static inline size_t vn_sizeof_vkGetImageSubresourceLayout_reply(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) 1596 { 1597 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageSubresourceLayout_EXT; 1598 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1599 1600 /* skip device */ 1601 /* skip image */ 1602 /* skip pSubresource */ 1603 cmd_size += vn_sizeof_simple_pointer(pLayout); 1604 if (pLayout) 1605 cmd_size += vn_sizeof_VkSubresourceLayout(pLayout); 1606 1607 return cmd_size; 1608 } 1609 1610 static inline void vn_decode_vkGetImageSubresourceLayout_reply(struct vn_cs_decoder *dec, VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) 1611 { 1612 VkCommandTypeEXT command_type; 1613 vn_decode_VkCommandTypeEXT(dec, &command_type); 1614 assert(command_type == VK_COMMAND_TYPE_vkGetImageSubresourceLayout_EXT); 1615 1616 /* skip device */ 1617 /* skip image */ 1618 /* skip pSubresource */ 1619 if (vn_decode_simple_pointer(dec)) { 1620 vn_decode_VkSubresourceLayout(dec, pLayout); 1621 } else { 1622 pLayout = NULL; 1623 } 1624 } 1625 1626 static inline size_t vn_sizeof_vkBindImageMemory2(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) 1627 { 1628 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBindImageMemory2_EXT; 1629 const VkFlags cmd_flags = 0; 1630 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1631 1632 cmd_size += vn_sizeof_VkDevice(&device); 1633 cmd_size += vn_sizeof_uint32_t(&bindInfoCount); 1634 if (pBindInfos) { 1635 cmd_size += vn_sizeof_array_size(bindInfoCount); 1636 for (uint32_t i = 0; i < bindInfoCount; i++) 1637 cmd_size += vn_sizeof_VkBindImageMemoryInfo(&pBindInfos[i]); 1638 } else { 1639 cmd_size += vn_sizeof_array_size(0); 1640 } 1641 1642 return cmd_size; 1643 } 1644 1645 static inline void vn_encode_vkBindImageMemory2(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) 1646 { 1647 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBindImageMemory2_EXT; 1648 1649 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1650 vn_encode_VkFlags(enc, &cmd_flags); 1651 1652 vn_encode_VkDevice(enc, &device); 1653 vn_encode_uint32_t(enc, &bindInfoCount); 1654 if (pBindInfos) { 1655 vn_encode_array_size(enc, bindInfoCount); 1656 for (uint32_t i = 0; i < bindInfoCount; i++) 1657 vn_encode_VkBindImageMemoryInfo(enc, &pBindInfos[i]); 1658 } else { 1659 vn_encode_array_size(enc, 0); 1660 } 1661 } 1662 1663 static inline size_t vn_sizeof_vkBindImageMemory2_reply(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) 1664 { 1665 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkBindImageMemory2_EXT; 1666 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1667 1668 VkResult ret; 1669 cmd_size += vn_sizeof_VkResult(&ret); 1670 /* skip device */ 1671 /* skip bindInfoCount */ 1672 /* skip pBindInfos */ 1673 1674 return cmd_size; 1675 } 1676 1677 static inline VkResult vn_decode_vkBindImageMemory2_reply(struct vn_cs_decoder *dec, VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) 1678 { 1679 VkCommandTypeEXT command_type; 1680 vn_decode_VkCommandTypeEXT(dec, &command_type); 1681 assert(command_type == VK_COMMAND_TYPE_vkBindImageMemory2_EXT); 1682 1683 VkResult ret; 1684 vn_decode_VkResult(dec, &ret); 1685 /* skip device */ 1686 /* skip bindInfoCount */ 1687 /* skip pBindInfos */ 1688 1689 return ret; 1690 } 1691 1692 static inline size_t vn_sizeof_vkGetImageMemoryRequirements2(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) 1693 { 1694 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageMemoryRequirements2_EXT; 1695 const VkFlags cmd_flags = 0; 1696 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1697 1698 cmd_size += vn_sizeof_VkDevice(&device); 1699 cmd_size += vn_sizeof_simple_pointer(pInfo); 1700 if (pInfo) 1701 cmd_size += vn_sizeof_VkImageMemoryRequirementsInfo2(pInfo); 1702 cmd_size += vn_sizeof_simple_pointer(pMemoryRequirements); 1703 if (pMemoryRequirements) 1704 cmd_size += vn_sizeof_VkMemoryRequirements2_partial(pMemoryRequirements); 1705 1706 return cmd_size; 1707 } 1708 1709 static inline void vn_encode_vkGetImageMemoryRequirements2(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) 1710 { 1711 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageMemoryRequirements2_EXT; 1712 1713 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1714 vn_encode_VkFlags(enc, &cmd_flags); 1715 1716 vn_encode_VkDevice(enc, &device); 1717 if (vn_encode_simple_pointer(enc, pInfo)) 1718 vn_encode_VkImageMemoryRequirementsInfo2(enc, pInfo); 1719 if (vn_encode_simple_pointer(enc, pMemoryRequirements)) 1720 vn_encode_VkMemoryRequirements2_partial(enc, pMemoryRequirements); 1721 } 1722 1723 static inline size_t vn_sizeof_vkGetImageMemoryRequirements2_reply(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) 1724 { 1725 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageMemoryRequirements2_EXT; 1726 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1727 1728 /* skip device */ 1729 /* skip pInfo */ 1730 cmd_size += vn_sizeof_simple_pointer(pMemoryRequirements); 1731 if (pMemoryRequirements) 1732 cmd_size += vn_sizeof_VkMemoryRequirements2(pMemoryRequirements); 1733 1734 return cmd_size; 1735 } 1736 1737 static inline void vn_decode_vkGetImageMemoryRequirements2_reply(struct vn_cs_decoder *dec, VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) 1738 { 1739 VkCommandTypeEXT command_type; 1740 vn_decode_VkCommandTypeEXT(dec, &command_type); 1741 assert(command_type == VK_COMMAND_TYPE_vkGetImageMemoryRequirements2_EXT); 1742 1743 /* skip device */ 1744 /* skip pInfo */ 1745 if (vn_decode_simple_pointer(dec)) { 1746 vn_decode_VkMemoryRequirements2(dec, pMemoryRequirements); 1747 } else { 1748 pMemoryRequirements = NULL; 1749 } 1750 } 1751 1752 static inline size_t vn_sizeof_vkGetImageSparseMemoryRequirements2(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) 1753 { 1754 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements2_EXT; 1755 const VkFlags cmd_flags = 0; 1756 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1757 1758 cmd_size += vn_sizeof_VkDevice(&device); 1759 cmd_size += vn_sizeof_simple_pointer(pInfo); 1760 if (pInfo) 1761 cmd_size += vn_sizeof_VkImageSparseMemoryRequirementsInfo2(pInfo); 1762 cmd_size += vn_sizeof_simple_pointer(pSparseMemoryRequirementCount); 1763 if (pSparseMemoryRequirementCount) 1764 cmd_size += vn_sizeof_uint32_t(pSparseMemoryRequirementCount); 1765 if (pSparseMemoryRequirements) { 1766 cmd_size += vn_sizeof_array_size((pSparseMemoryRequirementCount ? *pSparseMemoryRequirementCount : 0)); 1767 for (uint32_t i = 0; i < (pSparseMemoryRequirementCount ? *pSparseMemoryRequirementCount : 0); i++) 1768 cmd_size += vn_sizeof_VkSparseImageMemoryRequirements2_partial(&pSparseMemoryRequirements[i]); 1769 } else { 1770 cmd_size += vn_sizeof_array_size(0); 1771 } 1772 1773 return cmd_size; 1774 } 1775 1776 static inline void vn_encode_vkGetImageSparseMemoryRequirements2(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) 1777 { 1778 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements2_EXT; 1779 1780 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1781 vn_encode_VkFlags(enc, &cmd_flags); 1782 1783 vn_encode_VkDevice(enc, &device); 1784 if (vn_encode_simple_pointer(enc, pInfo)) 1785 vn_encode_VkImageSparseMemoryRequirementsInfo2(enc, pInfo); 1786 if (vn_encode_simple_pointer(enc, pSparseMemoryRequirementCount)) 1787 vn_encode_uint32_t(enc, pSparseMemoryRequirementCount); 1788 if (pSparseMemoryRequirements) { 1789 vn_encode_array_size(enc, (pSparseMemoryRequirementCount ? *pSparseMemoryRequirementCount : 0)); 1790 for (uint32_t i = 0; i < (pSparseMemoryRequirementCount ? *pSparseMemoryRequirementCount : 0); i++) 1791 vn_encode_VkSparseImageMemoryRequirements2_partial(enc, &pSparseMemoryRequirements[i]); 1792 } else { 1793 vn_encode_array_size(enc, 0); 1794 } 1795 } 1796 1797 static inline size_t vn_sizeof_vkGetImageSparseMemoryRequirements2_reply(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) 1798 { 1799 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements2_EXT; 1800 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1801 1802 /* skip device */ 1803 /* skip pInfo */ 1804 cmd_size += vn_sizeof_simple_pointer(pSparseMemoryRequirementCount); 1805 if (pSparseMemoryRequirementCount) 1806 cmd_size += vn_sizeof_uint32_t(pSparseMemoryRequirementCount); 1807 if (pSparseMemoryRequirements) { 1808 cmd_size += vn_sizeof_array_size((pSparseMemoryRequirementCount ? *pSparseMemoryRequirementCount : 0)); 1809 for (uint32_t i = 0; i < (pSparseMemoryRequirementCount ? *pSparseMemoryRequirementCount : 0); i++) 1810 cmd_size += vn_sizeof_VkSparseImageMemoryRequirements2(&pSparseMemoryRequirements[i]); 1811 } else { 1812 cmd_size += vn_sizeof_array_size(0); 1813 } 1814 1815 return cmd_size; 1816 } 1817 1818 static inline void vn_decode_vkGetImageSparseMemoryRequirements2_reply(struct vn_cs_decoder *dec, VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) 1819 { 1820 VkCommandTypeEXT command_type; 1821 vn_decode_VkCommandTypeEXT(dec, &command_type); 1822 assert(command_type == VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements2_EXT); 1823 1824 /* skip device */ 1825 /* skip pInfo */ 1826 if (vn_decode_simple_pointer(dec)) { 1827 vn_decode_uint32_t(dec, pSparseMemoryRequirementCount); 1828 } else { 1829 pSparseMemoryRequirementCount = NULL; 1830 } 1831 if (vn_peek_array_size(dec)) { 1832 const uint32_t iter_count = vn_decode_array_size(dec, (pSparseMemoryRequirementCount ? *pSparseMemoryRequirementCount : 0)); 1833 for (uint32_t i = 0; i < iter_count; i++) 1834 vn_decode_VkSparseImageMemoryRequirements2(dec, &pSparseMemoryRequirements[i]); 1835 } else { 1836 vn_decode_array_size_unchecked(dec); 1837 pSparseMemoryRequirements = NULL; 1838 } 1839 } 1840 1841 static inline size_t vn_sizeof_vkGetImageDrmFormatModifierPropertiesEXT(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties) 1842 { 1843 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageDrmFormatModifierPropertiesEXT_EXT; 1844 const VkFlags cmd_flags = 0; 1845 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 1846 1847 cmd_size += vn_sizeof_VkDevice(&device); 1848 cmd_size += vn_sizeof_VkImage(&image); 1849 cmd_size += vn_sizeof_simple_pointer(pProperties); 1850 if (pProperties) 1851 cmd_size += vn_sizeof_VkImageDrmFormatModifierPropertiesEXT_partial(pProperties); 1852 1853 return cmd_size; 1854 } 1855 1856 static inline void vn_encode_vkGetImageDrmFormatModifierPropertiesEXT(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties) 1857 { 1858 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageDrmFormatModifierPropertiesEXT_EXT; 1859 1860 vn_encode_VkCommandTypeEXT(enc, &cmd_type); 1861 vn_encode_VkFlags(enc, &cmd_flags); 1862 1863 vn_encode_VkDevice(enc, &device); 1864 vn_encode_VkImage(enc, &image); 1865 if (vn_encode_simple_pointer(enc, pProperties)) 1866 vn_encode_VkImageDrmFormatModifierPropertiesEXT_partial(enc, pProperties); 1867 } 1868 1869 static inline size_t vn_sizeof_vkGetImageDrmFormatModifierPropertiesEXT_reply(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties) 1870 { 1871 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetImageDrmFormatModifierPropertiesEXT_EXT; 1872 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 1873 1874 VkResult ret; 1875 cmd_size += vn_sizeof_VkResult(&ret); 1876 /* skip device */ 1877 /* skip image */ 1878 cmd_size += vn_sizeof_simple_pointer(pProperties); 1879 if (pProperties) 1880 cmd_size += vn_sizeof_VkImageDrmFormatModifierPropertiesEXT(pProperties); 1881 1882 return cmd_size; 1883 } 1884 1885 static inline VkResult vn_decode_vkGetImageDrmFormatModifierPropertiesEXT_reply(struct vn_cs_decoder *dec, VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties) 1886 { 1887 VkCommandTypeEXT command_type; 1888 vn_decode_VkCommandTypeEXT(dec, &command_type); 1889 assert(command_type == VK_COMMAND_TYPE_vkGetImageDrmFormatModifierPropertiesEXT_EXT); 1890 1891 VkResult ret; 1892 vn_decode_VkResult(dec, &ret); 1893 /* skip device */ 1894 /* skip image */ 1895 if (vn_decode_simple_pointer(dec)) { 1896 vn_decode_VkImageDrmFormatModifierPropertiesEXT(dec, pProperties); 1897 } else { 1898 pProperties = NULL; 1899 } 1900 1901 return ret; 1902 } 1903 1904 static inline void vn_submit_vkGetImageMemoryRequirements(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements, struct vn_instance_submit_command *submit) 1905 { 1906 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 1907 void *cmd_data = local_cmd_data; 1908 size_t cmd_size = vn_sizeof_vkGetImageMemoryRequirements(device, image, pMemoryRequirements); 1909 if (cmd_size > sizeof(local_cmd_data)) { 1910 cmd_data = malloc(cmd_size); 1911 if (!cmd_data) 1912 cmd_size = 0; 1913 } 1914 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetImageMemoryRequirements_reply(device, image, pMemoryRequirements) : 0; 1915 1916 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 1917 if (cmd_size) { 1918 vn_encode_vkGetImageMemoryRequirements(enc, cmd_flags, device, image, pMemoryRequirements); 1919 vn_instance_submit_command(vn_instance, submit); 1920 if (cmd_data != local_cmd_data) 1921 free(cmd_data); 1922 } 1923 } 1924 1925 static inline void vn_submit_vkBindImageMemory(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset, struct vn_instance_submit_command *submit) 1926 { 1927 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 1928 void *cmd_data = local_cmd_data; 1929 size_t cmd_size = vn_sizeof_vkBindImageMemory(device, image, memory, memoryOffset); 1930 if (cmd_size > sizeof(local_cmd_data)) { 1931 cmd_data = malloc(cmd_size); 1932 if (!cmd_data) 1933 cmd_size = 0; 1934 } 1935 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkBindImageMemory_reply(device, image, memory, memoryOffset) : 0; 1936 1937 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 1938 if (cmd_size) { 1939 vn_encode_vkBindImageMemory(enc, cmd_flags, device, image, memory, memoryOffset); 1940 vn_instance_submit_command(vn_instance, submit); 1941 if (cmd_data != local_cmd_data) 1942 free(cmd_data); 1943 } 1944 } 1945 1946 static inline void vn_submit_vkGetImageSparseMemoryRequirements(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements, struct vn_instance_submit_command *submit) 1947 { 1948 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 1949 void *cmd_data = local_cmd_data; 1950 size_t cmd_size = vn_sizeof_vkGetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements); 1951 if (cmd_size > sizeof(local_cmd_data)) { 1952 cmd_data = malloc(cmd_size); 1953 if (!cmd_data) 1954 cmd_size = 0; 1955 } 1956 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetImageSparseMemoryRequirements_reply(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements) : 0; 1957 1958 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 1959 if (cmd_size) { 1960 vn_encode_vkGetImageSparseMemoryRequirements(enc, cmd_flags, device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements); 1961 vn_instance_submit_command(vn_instance, submit); 1962 if (cmd_data != local_cmd_data) 1963 free(cmd_data); 1964 } 1965 } 1966 1967 static inline void vn_submit_vkCreateImage(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage, struct vn_instance_submit_command *submit) 1968 { 1969 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 1970 void *cmd_data = local_cmd_data; 1971 size_t cmd_size = vn_sizeof_vkCreateImage(device, pCreateInfo, pAllocator, pImage); 1972 if (cmd_size > sizeof(local_cmd_data)) { 1973 cmd_data = malloc(cmd_size); 1974 if (!cmd_data) 1975 cmd_size = 0; 1976 } 1977 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCreateImage_reply(device, pCreateInfo, pAllocator, pImage) : 0; 1978 1979 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 1980 if (cmd_size) { 1981 vn_encode_vkCreateImage(enc, cmd_flags, device, pCreateInfo, pAllocator, pImage); 1982 vn_instance_submit_command(vn_instance, submit); 1983 if (cmd_data != local_cmd_data) 1984 free(cmd_data); 1985 } 1986 } 1987 1988 static inline void vn_submit_vkDestroyImage(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator, struct vn_instance_submit_command *submit) 1989 { 1990 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 1991 void *cmd_data = local_cmd_data; 1992 size_t cmd_size = vn_sizeof_vkDestroyImage(device, image, pAllocator); 1993 if (cmd_size > sizeof(local_cmd_data)) { 1994 cmd_data = malloc(cmd_size); 1995 if (!cmd_data) 1996 cmd_size = 0; 1997 } 1998 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkDestroyImage_reply(device, image, pAllocator) : 0; 1999 2000 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 2001 if (cmd_size) { 2002 vn_encode_vkDestroyImage(enc, cmd_flags, device, image, pAllocator); 2003 vn_instance_submit_command(vn_instance, submit); 2004 if (cmd_data != local_cmd_data) 2005 free(cmd_data); 2006 } 2007 } 2008 2009 static inline void vn_submit_vkGetImageSubresourceLayout(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout, struct vn_instance_submit_command *submit) 2010 { 2011 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 2012 void *cmd_data = local_cmd_data; 2013 size_t cmd_size = vn_sizeof_vkGetImageSubresourceLayout(device, image, pSubresource, pLayout); 2014 if (cmd_size > sizeof(local_cmd_data)) { 2015 cmd_data = malloc(cmd_size); 2016 if (!cmd_data) 2017 cmd_size = 0; 2018 } 2019 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetImageSubresourceLayout_reply(device, image, pSubresource, pLayout) : 0; 2020 2021 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 2022 if (cmd_size) { 2023 vn_encode_vkGetImageSubresourceLayout(enc, cmd_flags, device, image, pSubresource, pLayout); 2024 vn_instance_submit_command(vn_instance, submit); 2025 if (cmd_data != local_cmd_data) 2026 free(cmd_data); 2027 } 2028 } 2029 2030 static inline void vn_submit_vkBindImageMemory2(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos, struct vn_instance_submit_command *submit) 2031 { 2032 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 2033 void *cmd_data = local_cmd_data; 2034 size_t cmd_size = vn_sizeof_vkBindImageMemory2(device, bindInfoCount, pBindInfos); 2035 if (cmd_size > sizeof(local_cmd_data)) { 2036 cmd_data = malloc(cmd_size); 2037 if (!cmd_data) 2038 cmd_size = 0; 2039 } 2040 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkBindImageMemory2_reply(device, bindInfoCount, pBindInfos) : 0; 2041 2042 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 2043 if (cmd_size) { 2044 vn_encode_vkBindImageMemory2(enc, cmd_flags, device, bindInfoCount, pBindInfos); 2045 vn_instance_submit_command(vn_instance, submit); 2046 if (cmd_data != local_cmd_data) 2047 free(cmd_data); 2048 } 2049 } 2050 2051 static inline void vn_submit_vkGetImageMemoryRequirements2(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements, struct vn_instance_submit_command *submit) 2052 { 2053 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 2054 void *cmd_data = local_cmd_data; 2055 size_t cmd_size = vn_sizeof_vkGetImageMemoryRequirements2(device, pInfo, pMemoryRequirements); 2056 if (cmd_size > sizeof(local_cmd_data)) { 2057 cmd_data = malloc(cmd_size); 2058 if (!cmd_data) 2059 cmd_size = 0; 2060 } 2061 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetImageMemoryRequirements2_reply(device, pInfo, pMemoryRequirements) : 0; 2062 2063 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 2064 if (cmd_size) { 2065 vn_encode_vkGetImageMemoryRequirements2(enc, cmd_flags, device, pInfo, pMemoryRequirements); 2066 vn_instance_submit_command(vn_instance, submit); 2067 if (cmd_data != local_cmd_data) 2068 free(cmd_data); 2069 } 2070 } 2071 2072 static inline void vn_submit_vkGetImageSparseMemoryRequirements2(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements, struct vn_instance_submit_command *submit) 2073 { 2074 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 2075 void *cmd_data = local_cmd_data; 2076 size_t cmd_size = vn_sizeof_vkGetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); 2077 if (cmd_size > sizeof(local_cmd_data)) { 2078 cmd_data = malloc(cmd_size); 2079 if (!cmd_data) 2080 cmd_size = 0; 2081 } 2082 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetImageSparseMemoryRequirements2_reply(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements) : 0; 2083 2084 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 2085 if (cmd_size) { 2086 vn_encode_vkGetImageSparseMemoryRequirements2(enc, cmd_flags, device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); 2087 vn_instance_submit_command(vn_instance, submit); 2088 if (cmd_data != local_cmd_data) 2089 free(cmd_data); 2090 } 2091 } 2092 2093 static inline void vn_submit_vkGetImageDrmFormatModifierPropertiesEXT(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties, struct vn_instance_submit_command *submit) 2094 { 2095 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 2096 void *cmd_data = local_cmd_data; 2097 size_t cmd_size = vn_sizeof_vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties); 2098 if (cmd_size > sizeof(local_cmd_data)) { 2099 cmd_data = malloc(cmd_size); 2100 if (!cmd_data) 2101 cmd_size = 0; 2102 } 2103 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetImageDrmFormatModifierPropertiesEXT_reply(device, image, pProperties) : 0; 2104 2105 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 2106 if (cmd_size) { 2107 vn_encode_vkGetImageDrmFormatModifierPropertiesEXT(enc, cmd_flags, device, image, pProperties); 2108 vn_instance_submit_command(vn_instance, submit); 2109 if (cmd_data != local_cmd_data) 2110 free(cmd_data); 2111 } 2112 } 2113 2114 static inline void vn_call_vkGetImageMemoryRequirements(struct vn_instance *vn_instance, VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) 2115 { 2116 VN_TRACE_FUNC(); 2117 2118 struct vn_instance_submit_command submit; 2119 vn_submit_vkGetImageMemoryRequirements(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, image, pMemoryRequirements, &submit); 2120 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 2121 if (dec) { 2122 vn_decode_vkGetImageMemoryRequirements_reply(dec, device, image, pMemoryRequirements); 2123 vn_instance_free_command_reply(vn_instance, &submit); 2124 } 2125 } 2126 2127 static inline void vn_async_vkGetImageMemoryRequirements(struct vn_instance *vn_instance, VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) 2128 { 2129 struct vn_instance_submit_command submit; 2130 vn_submit_vkGetImageMemoryRequirements(vn_instance, 0, device, image, pMemoryRequirements, &submit); 2131 } 2132 2133 static inline VkResult vn_call_vkBindImageMemory(struct vn_instance *vn_instance, VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) 2134 { 2135 VN_TRACE_FUNC(); 2136 2137 struct vn_instance_submit_command submit; 2138 vn_submit_vkBindImageMemory(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, image, memory, memoryOffset, &submit); 2139 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 2140 if (dec) { 2141 const VkResult ret = vn_decode_vkBindImageMemory_reply(dec, device, image, memory, memoryOffset); 2142 vn_instance_free_command_reply(vn_instance, &submit); 2143 return ret; 2144 } else { 2145 return VK_ERROR_OUT_OF_HOST_MEMORY; 2146 } 2147 } 2148 2149 static inline void vn_async_vkBindImageMemory(struct vn_instance *vn_instance, VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) 2150 { 2151 struct vn_instance_submit_command submit; 2152 vn_submit_vkBindImageMemory(vn_instance, 0, device, image, memory, memoryOffset, &submit); 2153 } 2154 2155 static inline void vn_call_vkGetImageSparseMemoryRequirements(struct vn_instance *vn_instance, VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) 2156 { 2157 VN_TRACE_FUNC(); 2158 2159 struct vn_instance_submit_command submit; 2160 vn_submit_vkGetImageSparseMemoryRequirements(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements, &submit); 2161 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 2162 if (dec) { 2163 vn_decode_vkGetImageSparseMemoryRequirements_reply(dec, device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements); 2164 vn_instance_free_command_reply(vn_instance, &submit); 2165 } 2166 } 2167 2168 static inline void vn_async_vkGetImageSparseMemoryRequirements(struct vn_instance *vn_instance, VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) 2169 { 2170 struct vn_instance_submit_command submit; 2171 vn_submit_vkGetImageSparseMemoryRequirements(vn_instance, 0, device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements, &submit); 2172 } 2173 2174 static inline VkResult vn_call_vkCreateImage(struct vn_instance *vn_instance, VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) 2175 { 2176 VN_TRACE_FUNC(); 2177 2178 struct vn_instance_submit_command submit; 2179 vn_submit_vkCreateImage(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pCreateInfo, pAllocator, pImage, &submit); 2180 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 2181 if (dec) { 2182 const VkResult ret = vn_decode_vkCreateImage_reply(dec, device, pCreateInfo, pAllocator, pImage); 2183 vn_instance_free_command_reply(vn_instance, &submit); 2184 return ret; 2185 } else { 2186 return VK_ERROR_OUT_OF_HOST_MEMORY; 2187 } 2188 } 2189 2190 static inline void vn_async_vkCreateImage(struct vn_instance *vn_instance, VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) 2191 { 2192 struct vn_instance_submit_command submit; 2193 vn_submit_vkCreateImage(vn_instance, 0, device, pCreateInfo, pAllocator, pImage, &submit); 2194 } 2195 2196 static inline void vn_call_vkDestroyImage(struct vn_instance *vn_instance, VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) 2197 { 2198 VN_TRACE_FUNC(); 2199 2200 struct vn_instance_submit_command submit; 2201 vn_submit_vkDestroyImage(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, image, pAllocator, &submit); 2202 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 2203 if (dec) { 2204 vn_decode_vkDestroyImage_reply(dec, device, image, pAllocator); 2205 vn_instance_free_command_reply(vn_instance, &submit); 2206 } 2207 } 2208 2209 static inline void vn_async_vkDestroyImage(struct vn_instance *vn_instance, VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) 2210 { 2211 struct vn_instance_submit_command submit; 2212 vn_submit_vkDestroyImage(vn_instance, 0, device, image, pAllocator, &submit); 2213 } 2214 2215 static inline void vn_call_vkGetImageSubresourceLayout(struct vn_instance *vn_instance, VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) 2216 { 2217 VN_TRACE_FUNC(); 2218 2219 struct vn_instance_submit_command submit; 2220 vn_submit_vkGetImageSubresourceLayout(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, image, pSubresource, pLayout, &submit); 2221 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 2222 if (dec) { 2223 vn_decode_vkGetImageSubresourceLayout_reply(dec, device, image, pSubresource, pLayout); 2224 vn_instance_free_command_reply(vn_instance, &submit); 2225 } 2226 } 2227 2228 static inline void vn_async_vkGetImageSubresourceLayout(struct vn_instance *vn_instance, VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) 2229 { 2230 struct vn_instance_submit_command submit; 2231 vn_submit_vkGetImageSubresourceLayout(vn_instance, 0, device, image, pSubresource, pLayout, &submit); 2232 } 2233 2234 static inline VkResult vn_call_vkBindImageMemory2(struct vn_instance *vn_instance, VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) 2235 { 2236 VN_TRACE_FUNC(); 2237 2238 struct vn_instance_submit_command submit; 2239 vn_submit_vkBindImageMemory2(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, bindInfoCount, pBindInfos, &submit); 2240 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 2241 if (dec) { 2242 const VkResult ret = vn_decode_vkBindImageMemory2_reply(dec, device, bindInfoCount, pBindInfos); 2243 vn_instance_free_command_reply(vn_instance, &submit); 2244 return ret; 2245 } else { 2246 return VK_ERROR_OUT_OF_HOST_MEMORY; 2247 } 2248 } 2249 2250 static inline void vn_async_vkBindImageMemory2(struct vn_instance *vn_instance, VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) 2251 { 2252 struct vn_instance_submit_command submit; 2253 vn_submit_vkBindImageMemory2(vn_instance, 0, device, bindInfoCount, pBindInfos, &submit); 2254 } 2255 2256 static inline void vn_call_vkGetImageMemoryRequirements2(struct vn_instance *vn_instance, VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) 2257 { 2258 VN_TRACE_FUNC(); 2259 2260 struct vn_instance_submit_command submit; 2261 vn_submit_vkGetImageMemoryRequirements2(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pInfo, pMemoryRequirements, &submit); 2262 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 2263 if (dec) { 2264 vn_decode_vkGetImageMemoryRequirements2_reply(dec, device, pInfo, pMemoryRequirements); 2265 vn_instance_free_command_reply(vn_instance, &submit); 2266 } 2267 } 2268 2269 static inline void vn_async_vkGetImageMemoryRequirements2(struct vn_instance *vn_instance, VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) 2270 { 2271 struct vn_instance_submit_command submit; 2272 vn_submit_vkGetImageMemoryRequirements2(vn_instance, 0, device, pInfo, pMemoryRequirements, &submit); 2273 } 2274 2275 static inline void vn_call_vkGetImageSparseMemoryRequirements2(struct vn_instance *vn_instance, VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) 2276 { 2277 VN_TRACE_FUNC(); 2278 2279 struct vn_instance_submit_command submit; 2280 vn_submit_vkGetImageSparseMemoryRequirements2(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, &submit); 2281 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 2282 if (dec) { 2283 vn_decode_vkGetImageSparseMemoryRequirements2_reply(dec, device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements); 2284 vn_instance_free_command_reply(vn_instance, &submit); 2285 } 2286 } 2287 2288 static inline void vn_async_vkGetImageSparseMemoryRequirements2(struct vn_instance *vn_instance, VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) 2289 { 2290 struct vn_instance_submit_command submit; 2291 vn_submit_vkGetImageSparseMemoryRequirements2(vn_instance, 0, device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, &submit); 2292 } 2293 2294 static inline VkResult vn_call_vkGetImageDrmFormatModifierPropertiesEXT(struct vn_instance *vn_instance, VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties) 2295 { 2296 VN_TRACE_FUNC(); 2297 2298 struct vn_instance_submit_command submit; 2299 vn_submit_vkGetImageDrmFormatModifierPropertiesEXT(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, image, pProperties, &submit); 2300 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 2301 if (dec) { 2302 const VkResult ret = vn_decode_vkGetImageDrmFormatModifierPropertiesEXT_reply(dec, device, image, pProperties); 2303 vn_instance_free_command_reply(vn_instance, &submit); 2304 return ret; 2305 } else { 2306 return VK_ERROR_OUT_OF_HOST_MEMORY; 2307 } 2308 } 2309 2310 static inline void vn_async_vkGetImageDrmFormatModifierPropertiesEXT(struct vn_instance *vn_instance, VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties) 2311 { 2312 struct vn_instance_submit_command submit; 2313 vn_submit_vkGetImageDrmFormatModifierPropertiesEXT(vn_instance, 0, device, image, pProperties, &submit); 2314 } 2315 2316 #endif /* VN_PROTOCOL_DRIVER_IMAGE_H */ 2317