1/* WARNING: This is auto-generated file. Do not modify, since changes will 2 * be lost! Modify the generating script instead. 3 * This file was generated by /scripts/gen_framework.py 4 */ 5 6 7inline VkOffset2D makeOffset2D (int32_t x, int32_t y) 8{ 9 VkOffset2D res; 10 res.x = x; 11 res.y = y; 12 return res; 13} 14 15inline VkOffset3D makeOffset3D (int32_t x, int32_t y, int32_t z) 16{ 17 VkOffset3D res; 18 res.x = x; 19 res.y = y; 20 res.z = z; 21 return res; 22} 23 24inline VkExtent2D makeExtent2D (uint32_t width, uint32_t height) 25{ 26 VkExtent2D res; 27 res.width = width; 28 res.height = height; 29 return res; 30} 31 32inline VkExtent3D makeExtent3D (uint32_t width, uint32_t height, uint32_t depth) 33{ 34 VkExtent3D res; 35 res.width = width; 36 res.height = height; 37 res.depth = depth; 38 return res; 39} 40 41inline VkViewport makeViewport (float x, float y, float width, float height, float minDepth, float maxDepth) 42{ 43 VkViewport res; 44 res.x = x; 45 res.y = y; 46 res.width = width; 47 res.height = height; 48 res.minDepth = minDepth; 49 res.maxDepth = maxDepth; 50 return res; 51} 52 53inline VkComponentMapping makeComponentMapping (VkComponentSwizzle r, VkComponentSwizzle g, VkComponentSwizzle b, VkComponentSwizzle a) 54{ 55 VkComponentMapping res; 56 res.r = r; 57 res.g = g; 58 res.b = b; 59 res.a = a; 60 return res; 61} 62 63inline VkAllocationCallbacks makeAllocationCallbacks (void* pUserData, PFN_vkAllocationFunction pfnAllocation, PFN_vkReallocationFunction pfnReallocation, PFN_vkFreeFunction pfnFree, PFN_vkInternalAllocationNotification pfnInternalAllocation, PFN_vkInternalFreeNotification pfnInternalFree) 64{ 65 VkAllocationCallbacks res; 66 res.pUserData = pUserData; 67 res.pfnAllocation = pfnAllocation; 68 res.pfnReallocation = pfnReallocation; 69 res.pfnFree = pfnFree; 70 res.pfnInternalAllocation = pfnInternalAllocation; 71 res.pfnInternalFree = pfnInternalFree; 72 return res; 73} 74 75inline VkMemoryRequirements makeMemoryRequirements (VkDeviceSize size, VkDeviceSize alignment, uint32_t memoryTypeBits) 76{ 77 VkMemoryRequirements res; 78 res.size = size; 79 res.alignment = alignment; 80 res.memoryTypeBits = memoryTypeBits; 81 return res; 82} 83 84inline VkDescriptorBufferInfo makeDescriptorBufferInfo (VkBuffer buffer, VkDeviceSize offset, VkDeviceSize range) 85{ 86 VkDescriptorBufferInfo res; 87 res.buffer = buffer; 88 res.offset = offset; 89 res.range = range; 90 return res; 91} 92 93inline VkDescriptorImageInfo makeDescriptorImageInfo (VkSampler sampler, VkImageView imageView, VkImageLayout imageLayout) 94{ 95 VkDescriptorImageInfo res; 96 res.sampler = sampler; 97 res.imageView = imageView; 98 res.imageLayout = imageLayout; 99 return res; 100} 101 102inline VkImageSubresource makeImageSubresource (VkImageAspectFlags aspectMask, uint32_t mipLevel, uint32_t arrayLayer) 103{ 104 VkImageSubresource res; 105 res.aspectMask = aspectMask; 106 res.mipLevel = mipLevel; 107 res.arrayLayer = arrayLayer; 108 return res; 109} 110 111inline VkImageSubresourceLayers makeImageSubresourceLayers (VkImageAspectFlags aspectMask, uint32_t mipLevel, uint32_t baseArrayLayer, uint32_t layerCount) 112{ 113 VkImageSubresourceLayers res; 114 res.aspectMask = aspectMask; 115 res.mipLevel = mipLevel; 116 res.baseArrayLayer = baseArrayLayer; 117 res.layerCount = layerCount; 118 return res; 119} 120 121inline VkImageSubresourceRange makeImageSubresourceRange (VkImageAspectFlags aspectMask, uint32_t baseMipLevel, uint32_t levelCount, uint32_t baseArrayLayer, uint32_t layerCount) 122{ 123 VkImageSubresourceRange res; 124 res.aspectMask = aspectMask; 125 res.baseMipLevel = baseMipLevel; 126 res.levelCount = levelCount; 127 res.baseArrayLayer = baseArrayLayer; 128 res.layerCount = layerCount; 129 return res; 130} 131 132inline VkSubresourceLayout makeSubresourceLayout (VkDeviceSize offset, VkDeviceSize size, VkDeviceSize rowPitch, VkDeviceSize arrayPitch, VkDeviceSize depthPitch) 133{ 134 VkSubresourceLayout res; 135 res.offset = offset; 136 res.size = size; 137 res.rowPitch = rowPitch; 138 res.arrayPitch = arrayPitch; 139 res.depthPitch = depthPitch; 140 return res; 141} 142 143inline VkBufferCopy makeBufferCopy (VkDeviceSize srcOffset, VkDeviceSize dstOffset, VkDeviceSize size) 144{ 145 VkBufferCopy res; 146 res.srcOffset = srcOffset; 147 res.dstOffset = dstOffset; 148 res.size = size; 149 return res; 150} 151 152inline VkSparseMemoryBind makeSparseMemoryBind (VkDeviceSize resourceOffset, VkDeviceSize size, VkDeviceMemory memory, VkDeviceSize memoryOffset, VkSparseMemoryBindFlags flags) 153{ 154 VkSparseMemoryBind res; 155 res.resourceOffset = resourceOffset; 156 res.size = size; 157 res.memory = memory; 158 res.memoryOffset = memoryOffset; 159 res.flags = flags; 160 return res; 161} 162 163inline VkSparseBufferMemoryBindInfo makeSparseBufferMemoryBindInfo (VkBuffer buffer, uint32_t bindCount, const VkSparseMemoryBind* pBinds) 164{ 165 VkSparseBufferMemoryBindInfo res; 166 res.buffer = buffer; 167 res.bindCount = bindCount; 168 res.pBinds = pBinds; 169 return res; 170} 171 172inline VkSparseImageOpaqueMemoryBindInfo makeSparseImageOpaqueMemoryBindInfo (VkImage image, uint32_t bindCount, const VkSparseMemoryBind* pBinds) 173{ 174 VkSparseImageOpaqueMemoryBindInfo res; 175 res.image = image; 176 res.bindCount = bindCount; 177 res.pBinds = pBinds; 178 return res; 179} 180 181inline VkSparseImageMemoryBindInfo makeSparseImageMemoryBindInfo (VkImage image, uint32_t bindCount, const VkSparseImageMemoryBind* pBinds) 182{ 183 VkSparseImageMemoryBindInfo res; 184 res.image = image; 185 res.bindCount = bindCount; 186 res.pBinds = pBinds; 187 return res; 188} 189 190inline VkCopyMemoryIndirectCommandNV makeCopyMemoryIndirectCommandNV (VkDeviceAddress srcAddress, VkDeviceAddress dstAddress, VkDeviceSize size) 191{ 192 VkCopyMemoryIndirectCommandNV res; 193 res.srcAddress = srcAddress; 194 res.dstAddress = dstAddress; 195 res.size = size; 196 return res; 197} 198 199inline VkDescriptorSetLayoutBinding makeDescriptorSetLayoutBinding (uint32_t binding, VkDescriptorType descriptorType, uint32_t descriptorCount, VkShaderStageFlags stageFlags, const VkSampler* pImmutableSamplers) 200{ 201 VkDescriptorSetLayoutBinding res; 202 res.binding = binding; 203 res.descriptorType = descriptorType; 204 res.descriptorCount = descriptorCount; 205 res.stageFlags = stageFlags; 206 res.pImmutableSamplers = pImmutableSamplers; 207 return res; 208} 209 210inline VkDescriptorPoolSize makeDescriptorPoolSize (VkDescriptorType type, uint32_t descriptorCount) 211{ 212 VkDescriptorPoolSize res; 213 res.type = type; 214 res.descriptorCount = descriptorCount; 215 return res; 216} 217 218inline VkSpecializationMapEntry makeSpecializationMapEntry (uint32_t constantID, uint32_t offset, size_t size) 219{ 220 VkSpecializationMapEntry res; 221 res.constantID = constantID; 222 res.offset = offset; 223 res.size = size; 224 return res; 225} 226 227inline VkSpecializationInfo makeSpecializationInfo (uint32_t mapEntryCount, const VkSpecializationMapEntry* pMapEntries, size_t dataSize, const void* pData) 228{ 229 VkSpecializationInfo res; 230 res.mapEntryCount = mapEntryCount; 231 res.pMapEntries = pMapEntries; 232 res.dataSize = dataSize; 233 res.pData = pData; 234 return res; 235} 236 237inline VkVertexInputBindingDescription makeVertexInputBindingDescription (uint32_t binding, uint32_t stride, VkVertexInputRate inputRate) 238{ 239 VkVertexInputBindingDescription res; 240 res.binding = binding; 241 res.stride = stride; 242 res.inputRate = inputRate; 243 return res; 244} 245 246inline VkVertexInputAttributeDescription makeVertexInputAttributeDescription (uint32_t location, uint32_t binding, VkFormat format, uint32_t offset) 247{ 248 VkVertexInputAttributeDescription res; 249 res.location = location; 250 res.binding = binding; 251 res.format = format; 252 res.offset = offset; 253 return res; 254} 255 256inline VkPipelineColorBlendAttachmentState makePipelineColorBlendAttachmentState (VkBool32 blendEnable, VkBlendFactor srcColorBlendFactor, VkBlendFactor dstColorBlendFactor, VkBlendOp colorBlendOp, VkBlendFactor srcAlphaBlendFactor, VkBlendFactor dstAlphaBlendFactor, VkBlendOp alphaBlendOp, VkColorComponentFlags colorWriteMask) 257{ 258 VkPipelineColorBlendAttachmentState res; 259 res.blendEnable = blendEnable; 260 res.srcColorBlendFactor = srcColorBlendFactor; 261 res.dstColorBlendFactor = dstColorBlendFactor; 262 res.colorBlendOp = colorBlendOp; 263 res.srcAlphaBlendFactor = srcAlphaBlendFactor; 264 res.dstAlphaBlendFactor = dstAlphaBlendFactor; 265 res.alphaBlendOp = alphaBlendOp; 266 res.colorWriteMask = colorWriteMask; 267 return res; 268} 269 270inline VkStencilOpState makeStencilOpState (VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp, uint32_t compareMask, uint32_t writeMask, uint32_t reference) 271{ 272 VkStencilOpState res; 273 res.failOp = failOp; 274 res.passOp = passOp; 275 res.depthFailOp = depthFailOp; 276 res.compareOp = compareOp; 277 res.compareMask = compareMask; 278 res.writeMask = writeMask; 279 res.reference = reference; 280 return res; 281} 282 283inline VkPushConstantRange makePushConstantRange (VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size) 284{ 285 VkPushConstantRange res; 286 res.stageFlags = stageFlags; 287 res.offset = offset; 288 res.size = size; 289 return res; 290} 291 292inline VkClearDepthStencilValue makeClearDepthStencilValue (float depth, uint32_t stencil) 293{ 294 VkClearDepthStencilValue res; 295 res.depth = depth; 296 res.stencil = stencil; 297 return res; 298} 299 300inline VkAttachmentDescription makeAttachmentDescription (VkAttachmentDescriptionFlags flags, VkFormat format, VkSampleCountFlagBits samples, VkAttachmentLoadOp loadOp, VkAttachmentStoreOp storeOp, VkAttachmentLoadOp stencilLoadOp, VkAttachmentStoreOp stencilStoreOp, VkImageLayout initialLayout, VkImageLayout finalLayout) 301{ 302 VkAttachmentDescription res; 303 res.flags = flags; 304 res.format = format; 305 res.samples = samples; 306 res.loadOp = loadOp; 307 res.storeOp = storeOp; 308 res.stencilLoadOp = stencilLoadOp; 309 res.stencilStoreOp = stencilStoreOp; 310 res.initialLayout = initialLayout; 311 res.finalLayout = finalLayout; 312 return res; 313} 314 315inline VkAttachmentReference makeAttachmentReference (uint32_t attachment, VkImageLayout layout) 316{ 317 VkAttachmentReference res; 318 res.attachment = attachment; 319 res.layout = layout; 320 return res; 321} 322 323inline VkSubpassDescription makeSubpassDescription (VkSubpassDescriptionFlags flags, VkPipelineBindPoint pipelineBindPoint, uint32_t inputAttachmentCount, const VkAttachmentReference* pInputAttachments, uint32_t colorAttachmentCount, const VkAttachmentReference* pColorAttachments, const VkAttachmentReference* pResolveAttachments, const VkAttachmentReference* pDepthStencilAttachment, uint32_t preserveAttachmentCount, const uint32_t* pPreserveAttachments) 324{ 325 VkSubpassDescription res; 326 res.flags = flags; 327 res.pipelineBindPoint = pipelineBindPoint; 328 res.inputAttachmentCount = inputAttachmentCount; 329 res.pInputAttachments = pInputAttachments; 330 res.colorAttachmentCount = colorAttachmentCount; 331 res.pColorAttachments = pColorAttachments; 332 res.pResolveAttachments = pResolveAttachments; 333 res.pDepthStencilAttachment = pDepthStencilAttachment; 334 res.preserveAttachmentCount = preserveAttachmentCount; 335 res.pPreserveAttachments = pPreserveAttachments; 336 return res; 337} 338 339inline VkSubpassDependency makeSubpassDependency (uint32_t srcSubpass, uint32_t dstSubpass, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkDependencyFlags dependencyFlags) 340{ 341 VkSubpassDependency res; 342 res.srcSubpass = srcSubpass; 343 res.dstSubpass = dstSubpass; 344 res.srcStageMask = srcStageMask; 345 res.dstStageMask = dstStageMask; 346 res.srcAccessMask = srcAccessMask; 347 res.dstAccessMask = dstAccessMask; 348 res.dependencyFlags = dependencyFlags; 349 return res; 350} 351 352inline VkDrawIndirectCommand makeDrawIndirectCommand (uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) 353{ 354 VkDrawIndirectCommand res; 355 res.vertexCount = vertexCount; 356 res.instanceCount = instanceCount; 357 res.firstVertex = firstVertex; 358 res.firstInstance = firstInstance; 359 return res; 360} 361 362inline VkDrawIndexedIndirectCommand makeDrawIndexedIndirectCommand (uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) 363{ 364 VkDrawIndexedIndirectCommand res; 365 res.indexCount = indexCount; 366 res.instanceCount = instanceCount; 367 res.firstIndex = firstIndex; 368 res.vertexOffset = vertexOffset; 369 res.firstInstance = firstInstance; 370 return res; 371} 372 373inline VkDispatchIndirectCommand makeDispatchIndirectCommand (uint32_t x, uint32_t y, uint32_t z) 374{ 375 VkDispatchIndirectCommand res; 376 res.x = x; 377 res.y = y; 378 res.z = z; 379 return res; 380} 381 382inline VkMultiDrawInfoEXT makeMultiDrawInfoEXT (uint32_t firstVertex, uint32_t vertexCount) 383{ 384 VkMultiDrawInfoEXT res; 385 res.firstVertex = firstVertex; 386 res.vertexCount = vertexCount; 387 return res; 388} 389 390inline VkMultiDrawIndexedInfoEXT makeMultiDrawIndexedInfoEXT (uint32_t firstIndex, uint32_t indexCount, int32_t vertexOffset) 391{ 392 VkMultiDrawIndexedInfoEXT res; 393 res.firstIndex = firstIndex; 394 res.indexCount = indexCount; 395 res.vertexOffset = vertexOffset; 396 return res; 397} 398 399inline VkDisplayPlanePropertiesKHR makeDisplayPlanePropertiesKHR (VkDisplayKHR currentDisplay, uint32_t currentStackIndex) 400{ 401 VkDisplayPlanePropertiesKHR res; 402 res.currentDisplay = currentDisplay; 403 res.currentStackIndex = currentStackIndex; 404 return res; 405} 406 407inline VkSurfaceFormatKHR makeSurfaceFormatKHR (VkFormat format, VkColorSpaceKHR colorSpace) 408{ 409 VkSurfaceFormatKHR res; 410 res.format = format; 411 res.colorSpace = colorSpace; 412 return res; 413} 414 415inline VkLayerSettingEXT makeLayerSettingEXT (const char* pLayerName, const char* pSettingName, VkLayerSettingTypeEXT type, uint32_t valueCount, const void* pValues) 416{ 417 VkLayerSettingEXT res; 418 res.pLayerName = pLayerName; 419 res.pSettingName = pSettingName; 420 res.type = type; 421 res.valueCount = valueCount; 422 res.pValues = pValues; 423 return res; 424} 425 426inline VkBindShaderGroupIndirectCommandNV makeBindShaderGroupIndirectCommandNV (uint32_t groupIndex) 427{ 428 VkBindShaderGroupIndirectCommandNV res; 429 res.groupIndex = groupIndex; 430 return res; 431} 432 433inline VkBindIndexBufferIndirectCommandNV makeBindIndexBufferIndirectCommandNV (VkDeviceAddress bufferAddress, uint32_t size, VkIndexType indexType) 434{ 435 VkBindIndexBufferIndirectCommandNV res; 436 res.bufferAddress = bufferAddress; 437 res.size = size; 438 res.indexType = indexType; 439 return res; 440} 441 442inline VkBindVertexBufferIndirectCommandNV makeBindVertexBufferIndirectCommandNV (VkDeviceAddress bufferAddress, uint32_t size, uint32_t stride) 443{ 444 VkBindVertexBufferIndirectCommandNV res; 445 res.bufferAddress = bufferAddress; 446 res.size = size; 447 res.stride = stride; 448 return res; 449} 450 451inline VkSetStateFlagsIndirectCommandNV makeSetStateFlagsIndirectCommandNV (uint32_t data) 452{ 453 VkSetStateFlagsIndirectCommandNV res; 454 res.data = data; 455 return res; 456} 457 458inline VkIndirectCommandsStreamNV makeIndirectCommandsStreamNV (VkBuffer buffer, VkDeviceSize offset) 459{ 460 VkIndirectCommandsStreamNV res; 461 res.buffer = buffer; 462 res.offset = offset; 463 return res; 464} 465 466inline VkBindPipelineIndirectCommandNV makeBindPipelineIndirectCommandNV (VkDeviceAddress pipelineAddress) 467{ 468 VkBindPipelineIndirectCommandNV res; 469 res.pipelineAddress = pipelineAddress; 470 return res; 471} 472 473inline VkConformanceVersion makeConformanceVersion (uint8_t major, uint8_t minor, uint8_t subminor, uint8_t patch) 474{ 475 VkConformanceVersion res; 476 res.major = major; 477 res.minor = minor; 478 res.subminor = subminor; 479 res.patch = patch; 480 return res; 481} 482 483inline VkPresentRegionKHR makePresentRegionKHR (uint32_t rectangleCount, const VkRectLayerKHR* pRectangles) 484{ 485 VkPresentRegionKHR res; 486 res.rectangleCount = rectangleCount; 487 res.pRectangles = pRectangles; 488 return res; 489} 490 491inline VkExternalMemoryProperties makeExternalMemoryProperties (VkExternalMemoryFeatureFlags externalMemoryFeatures, VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes, VkExternalMemoryHandleTypeFlags compatibleHandleTypes) 492{ 493 VkExternalMemoryProperties res; 494 res.externalMemoryFeatures = externalMemoryFeatures; 495 res.exportFromImportedHandleTypes = exportFromImportedHandleTypes; 496 res.compatibleHandleTypes = compatibleHandleTypes; 497 return res; 498} 499 500inline VkDescriptorUpdateTemplateEntry makeDescriptorUpdateTemplateEntry (uint32_t dstBinding, uint32_t dstArrayElement, uint32_t descriptorCount, VkDescriptorType descriptorType, size_t offset, size_t stride) 501{ 502 VkDescriptorUpdateTemplateEntry res; 503 res.dstBinding = dstBinding; 504 res.dstArrayElement = dstArrayElement; 505 res.descriptorCount = descriptorCount; 506 res.descriptorType = descriptorType; 507 res.offset = offset; 508 res.stride = stride; 509 return res; 510} 511 512inline VkXYColorEXT makeXYColorEXT (float x, float y) 513{ 514 VkXYColorEXT res; 515 res.x = x; 516 res.y = y; 517 return res; 518} 519 520inline VkRefreshCycleDurationGOOGLE makeRefreshCycleDurationGOOGLE (uint64_t refreshDuration) 521{ 522 VkRefreshCycleDurationGOOGLE res; 523 res.refreshDuration = refreshDuration; 524 return res; 525} 526 527inline VkPastPresentationTimingGOOGLE makePastPresentationTimingGOOGLE (uint32_t presentID, uint64_t desiredPresentTime, uint64_t actualPresentTime, uint64_t earliestPresentTime, uint64_t presentMargin) 528{ 529 VkPastPresentationTimingGOOGLE res; 530 res.presentID = presentID; 531 res.desiredPresentTime = desiredPresentTime; 532 res.actualPresentTime = actualPresentTime; 533 res.earliestPresentTime = earliestPresentTime; 534 res.presentMargin = presentMargin; 535 return res; 536} 537 538inline VkPresentTimeGOOGLE makePresentTimeGOOGLE (uint32_t presentID, uint64_t desiredPresentTime) 539{ 540 VkPresentTimeGOOGLE res; 541 res.presentID = presentID; 542 res.desiredPresentTime = desiredPresentTime; 543 return res; 544} 545 546inline VkViewportWScalingNV makeViewportWScalingNV (float xcoeff, float ycoeff) 547{ 548 VkViewportWScalingNV res; 549 res.xcoeff = xcoeff; 550 res.ycoeff = ycoeff; 551 return res; 552} 553 554inline VkViewportSwizzleNV makeViewportSwizzleNV (VkViewportCoordinateSwizzleNV x, VkViewportCoordinateSwizzleNV y, VkViewportCoordinateSwizzleNV z, VkViewportCoordinateSwizzleNV w) 555{ 556 VkViewportSwizzleNV res; 557 res.x = x; 558 res.y = y; 559 res.z = z; 560 res.w = w; 561 return res; 562} 563 564inline VkInputAttachmentAspectReference makeInputAttachmentAspectReference (uint32_t subpass, uint32_t inputAttachmentIndex, VkImageAspectFlags aspectMask) 565{ 566 VkInputAttachmentAspectReference res; 567 res.subpass = subpass; 568 res.inputAttachmentIndex = inputAttachmentIndex; 569 res.aspectMask = aspectMask; 570 return res; 571} 572 573inline VkSampleLocationEXT makeSampleLocationEXT (float x, float y) 574{ 575 VkSampleLocationEXT res; 576 res.x = x; 577 res.y = y; 578 return res; 579} 580 581inline VkShaderResourceUsageAMD makeShaderResourceUsageAMD (uint32_t numUsedVgprs, uint32_t numUsedSgprs, uint32_t ldsSizePerLocalWorkGroup, size_t ldsUsageSizeInBytes, size_t scratchMemUsageInBytes) 582{ 583 VkShaderResourceUsageAMD res; 584 res.numUsedVgprs = numUsedVgprs; 585 res.numUsedSgprs = numUsedSgprs; 586 res.ldsSizePerLocalWorkGroup = ldsSizePerLocalWorkGroup; 587 res.ldsUsageSizeInBytes = ldsUsageSizeInBytes; 588 res.scratchMemUsageInBytes = scratchMemUsageInBytes; 589 return res; 590} 591 592inline VkVertexInputBindingDivisorDescriptionKHR makeVertexInputBindingDivisorDescriptionKHR (uint32_t binding, uint32_t divisor) 593{ 594 VkVertexInputBindingDivisorDescriptionKHR res; 595 res.binding = binding; 596 res.divisor = divisor; 597 return res; 598} 599 600inline VkShadingRatePaletteNV makeShadingRatePaletteNV (uint32_t shadingRatePaletteEntryCount, const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries) 601{ 602 VkShadingRatePaletteNV res; 603 res.shadingRatePaletteEntryCount = shadingRatePaletteEntryCount; 604 res.pShadingRatePaletteEntries = pShadingRatePaletteEntries; 605 return res; 606} 607 608inline VkCoarseSampleLocationNV makeCoarseSampleLocationNV (uint32_t pixelX, uint32_t pixelY, uint32_t sample) 609{ 610 VkCoarseSampleLocationNV res; 611 res.pixelX = pixelX; 612 res.pixelY = pixelY; 613 res.sample = sample; 614 return res; 615} 616 617inline VkCoarseSampleOrderCustomNV makeCoarseSampleOrderCustomNV (VkShadingRatePaletteEntryNV shadingRate, uint32_t sampleCount, uint32_t sampleLocationCount, const VkCoarseSampleLocationNV* pSampleLocations) 618{ 619 VkCoarseSampleOrderCustomNV res; 620 res.shadingRate = shadingRate; 621 res.sampleCount = sampleCount; 622 res.sampleLocationCount = sampleLocationCount; 623 res.pSampleLocations = pSampleLocations; 624 return res; 625} 626 627inline VkDrawMeshTasksIndirectCommandNV makeDrawMeshTasksIndirectCommandNV (uint32_t taskCount, uint32_t firstTask) 628{ 629 VkDrawMeshTasksIndirectCommandNV res; 630 res.taskCount = taskCount; 631 res.firstTask = firstTask; 632 return res; 633} 634 635inline VkDrawMeshTasksIndirectCommandEXT makeDrawMeshTasksIndirectCommandEXT (uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) 636{ 637 VkDrawMeshTasksIndirectCommandEXT res; 638 res.groupCountX = groupCountX; 639 res.groupCountY = groupCountY; 640 res.groupCountZ = groupCountZ; 641 return res; 642} 643 644inline VkStridedDeviceAddressRegionKHR makeStridedDeviceAddressRegionKHR (VkDeviceAddress deviceAddress, VkDeviceSize stride, VkDeviceSize size) 645{ 646 VkStridedDeviceAddressRegionKHR res; 647 res.deviceAddress = deviceAddress; 648 res.stride = stride; 649 res.size = size; 650 return res; 651} 652 653inline VkTraceRaysIndirectCommandKHR makeTraceRaysIndirectCommandKHR (uint32_t width, uint32_t height, uint32_t depth) 654{ 655 VkTraceRaysIndirectCommandKHR res; 656 res.width = width; 657 res.height = height; 658 res.depth = depth; 659 return res; 660} 661 662inline VkTraceRaysIndirectCommand2KHR makeTraceRaysIndirectCommand2KHR (VkDeviceAddress raygenShaderRecordAddress, VkDeviceSize raygenShaderRecordSize, VkDeviceAddress missShaderBindingTableAddress, VkDeviceSize missShaderBindingTableSize, VkDeviceSize missShaderBindingTableStride, VkDeviceAddress hitShaderBindingTableAddress, VkDeviceSize hitShaderBindingTableSize, VkDeviceSize hitShaderBindingTableStride, VkDeviceAddress callableShaderBindingTableAddress, VkDeviceSize callableShaderBindingTableSize, VkDeviceSize callableShaderBindingTableStride, uint32_t width, uint32_t height, uint32_t depth) 663{ 664 VkTraceRaysIndirectCommand2KHR res; 665 res.raygenShaderRecordAddress = raygenShaderRecordAddress; 666 res.raygenShaderRecordSize = raygenShaderRecordSize; 667 res.missShaderBindingTableAddress = missShaderBindingTableAddress; 668 res.missShaderBindingTableSize = missShaderBindingTableSize; 669 res.missShaderBindingTableStride = missShaderBindingTableStride; 670 res.hitShaderBindingTableAddress = hitShaderBindingTableAddress; 671 res.hitShaderBindingTableSize = hitShaderBindingTableSize; 672 res.hitShaderBindingTableStride = hitShaderBindingTableStride; 673 res.callableShaderBindingTableAddress = callableShaderBindingTableAddress; 674 res.callableShaderBindingTableSize = callableShaderBindingTableSize; 675 res.callableShaderBindingTableStride = callableShaderBindingTableStride; 676 res.width = width; 677 res.height = height; 678 res.depth = depth; 679 return res; 680} 681 682inline VkDrmFormatModifierPropertiesEXT makeDrmFormatModifierPropertiesEXT (uint64_t drmFormatModifier, uint32_t drmFormatModifierPlaneCount, VkFormatFeatureFlags drmFormatModifierTilingFeatures) 683{ 684 VkDrmFormatModifierPropertiesEXT res; 685 res.drmFormatModifier = drmFormatModifier; 686 res.drmFormatModifierPlaneCount = drmFormatModifierPlaneCount; 687 res.drmFormatModifierTilingFeatures = drmFormatModifierTilingFeatures; 688 return res; 689} 690 691inline VkPipelineCreationFeedback makePipelineCreationFeedback (VkPipelineCreationFeedbackFlags flags, uint64_t duration) 692{ 693 VkPipelineCreationFeedback res; 694 res.flags = flags; 695 res.duration = duration; 696 return res; 697} 698 699inline VkAccelerationStructureBuildRangeInfoKHR makeAccelerationStructureBuildRangeInfoKHR (uint32_t primitiveCount, uint32_t primitiveOffset, uint32_t firstVertex, uint32_t transformOffset) 700{ 701 VkAccelerationStructureBuildRangeInfoKHR res; 702 res.primitiveCount = primitiveCount; 703 res.primitiveOffset = primitiveOffset; 704 res.firstVertex = firstVertex; 705 res.transformOffset = transformOffset; 706 return res; 707} 708 709inline VkAabbPositionsKHR makeAabbPositionsKHR (float minX, float minY, float minZ, float maxX, float maxY, float maxZ) 710{ 711 VkAabbPositionsKHR res; 712 res.minX = minX; 713 res.minY = minY; 714 res.minZ = minZ; 715 res.maxX = maxX; 716 res.maxY = maxY; 717 res.maxZ = maxZ; 718 return res; 719} 720 721inline VkColorBlendEquationEXT makeColorBlendEquationEXT (VkBlendFactor srcColorBlendFactor, VkBlendFactor dstColorBlendFactor, VkBlendOp colorBlendOp, VkBlendFactor srcAlphaBlendFactor, VkBlendFactor dstAlphaBlendFactor, VkBlendOp alphaBlendOp) 722{ 723 VkColorBlendEquationEXT res; 724 res.srcColorBlendFactor = srcColorBlendFactor; 725 res.dstColorBlendFactor = dstColorBlendFactor; 726 res.colorBlendOp = colorBlendOp; 727 res.srcAlphaBlendFactor = srcAlphaBlendFactor; 728 res.dstAlphaBlendFactor = dstAlphaBlendFactor; 729 res.alphaBlendOp = alphaBlendOp; 730 return res; 731} 732 733inline VkColorBlendAdvancedEXT makeColorBlendAdvancedEXT (VkBlendOp advancedBlendOp, VkBool32 srcPremultiplied, VkBool32 dstPremultiplied, VkBlendOverlapEXT blendOverlap, VkBool32 clampResults) 734{ 735 VkColorBlendAdvancedEXT res; 736 res.advancedBlendOp = advancedBlendOp; 737 res.srcPremultiplied = srcPremultiplied; 738 res.dstPremultiplied = dstPremultiplied; 739 res.blendOverlap = blendOverlap; 740 res.clampResults = clampResults; 741 return res; 742} 743 744inline VkMutableDescriptorTypeListEXT makeMutableDescriptorTypeListEXT (uint32_t descriptorTypeCount, const VkDescriptorType* pDescriptorTypes) 745{ 746 VkMutableDescriptorTypeListEXT res; 747 res.descriptorTypeCount = descriptorTypeCount; 748 res.pDescriptorTypes = pDescriptorTypes; 749 return res; 750} 751 752inline VkVideoEncodeH264QpKHR makeVideoEncodeH264QpKHR (int32_t qpI, int32_t qpP, int32_t qpB) 753{ 754 VkVideoEncodeH264QpKHR res; 755 res.qpI = qpI; 756 res.qpP = qpP; 757 res.qpB = qpB; 758 return res; 759} 760 761inline VkVideoEncodeH264FrameSizeKHR makeVideoEncodeH264FrameSizeKHR (uint32_t frameISize, uint32_t framePSize, uint32_t frameBSize) 762{ 763 VkVideoEncodeH264FrameSizeKHR res; 764 res.frameISize = frameISize; 765 res.framePSize = framePSize; 766 res.frameBSize = frameBSize; 767 return res; 768} 769 770inline VkVideoEncodeH265QpKHR makeVideoEncodeH265QpKHR (int32_t qpI, int32_t qpP, int32_t qpB) 771{ 772 VkVideoEncodeH265QpKHR res; 773 res.qpI = qpI; 774 res.qpP = qpP; 775 res.qpB = qpB; 776 return res; 777} 778 779inline VkVideoEncodeH265FrameSizeKHR makeVideoEncodeH265FrameSizeKHR (uint32_t frameISize, uint32_t framePSize, uint32_t frameBSize) 780{ 781 VkVideoEncodeH265FrameSizeKHR res; 782 res.frameISize = frameISize; 783 res.framePSize = framePSize; 784 res.frameBSize = frameBSize; 785 return res; 786} 787 788inline VkSRTDataNV makeSRTDataNV (float sx, float a, float b, float pvx, float sy, float c, float pvy, float sz, float pvz, float qx, float qy, float qz, float qw, float tx, float ty, float tz) 789{ 790 VkSRTDataNV res; 791 res.sx = sx; 792 res.a = a; 793 res.b = b; 794 res.pvx = pvx; 795 res.sy = sy; 796 res.c = c; 797 res.pvy = pvy; 798 res.sz = sz; 799 res.pvz = pvz; 800 res.qx = qx; 801 res.qy = qy; 802 res.qz = qz; 803 res.qw = qw; 804 res.tx = tx; 805 res.ty = ty; 806 res.tz = tz; 807 return res; 808} 809 810inline VkDrmFormatModifierProperties2EXT makeDrmFormatModifierProperties2EXT (uint64_t drmFormatModifier, uint32_t drmFormatModifierPlaneCount, VkFormatFeatureFlags2 drmFormatModifierTilingFeatures) 811{ 812 VkDrmFormatModifierProperties2EXT res; 813 res.drmFormatModifier = drmFormatModifier; 814 res.drmFormatModifierPlaneCount = drmFormatModifierPlaneCount; 815 res.drmFormatModifierTilingFeatures = drmFormatModifierTilingFeatures; 816 return res; 817} 818 819inline VkRenderPassCreationFeedbackInfoEXT makeRenderPassCreationFeedbackInfoEXT (uint32_t postMergeSubpassCount) 820{ 821 VkRenderPassCreationFeedbackInfoEXT res; 822 res.postMergeSubpassCount = postMergeSubpassCount; 823 return res; 824} 825 826inline VkMicromapUsageEXT makeMicromapUsageEXT (uint32_t count, uint32_t subdivisionLevel, uint32_t format) 827{ 828 VkMicromapUsageEXT res; 829 res.count = count; 830 res.subdivisionLevel = subdivisionLevel; 831 res.format = format; 832 return res; 833} 834 835inline VkMicromapTriangleEXT makeMicromapTriangleEXT (uint32_t dataOffset, uint16_t subdivisionLevel, uint16_t format) 836{ 837 VkMicromapTriangleEXT res; 838 res.dataOffset = dataOffset; 839 res.subdivisionLevel = subdivisionLevel; 840 res.format = format; 841 return res; 842} 843 844inline VkDeviceFaultAddressInfoEXT makeDeviceFaultAddressInfoEXT (VkDeviceFaultAddressTypeEXT addressType, VkDeviceAddress reportedAddress, VkDeviceSize addressPrecision) 845{ 846 VkDeviceFaultAddressInfoEXT res; 847 res.addressType = addressType; 848 res.reportedAddress = reportedAddress; 849 res.addressPrecision = addressPrecision; 850 return res; 851} 852 853inline VkDecompressMemoryRegionNV makeDecompressMemoryRegionNV (VkDeviceAddress srcAddress, VkDeviceAddress dstAddress, VkDeviceSize compressedSize, VkDeviceSize decompressedSize, VkMemoryDecompressionMethodFlagsNV decompressionMethod) 854{ 855 VkDecompressMemoryRegionNV res; 856 res.srcAddress = srcAddress; 857 res.dstAddress = dstAddress; 858 res.compressedSize = compressedSize; 859 res.decompressedSize = decompressedSize; 860 res.decompressionMethod = decompressionMethod; 861 return res; 862} 863 864inline StdVideoEncodeH264WeightTableFlags makeStdVideoEncodeH264WeightTableFlags (uint32_t luma_weight_l0_flag, uint32_t chroma_weight_l0_flag, uint32_t luma_weight_l1_flag, uint32_t chroma_weight_l1_flag) 865{ 866 StdVideoEncodeH264WeightTableFlags res; 867 res.luma_weight_l0_flag = luma_weight_l0_flag; 868 res.chroma_weight_l0_flag = chroma_weight_l0_flag; 869 res.luma_weight_l1_flag = luma_weight_l1_flag; 870 res.chroma_weight_l1_flag = chroma_weight_l1_flag; 871 return res; 872} 873 874inline StdVideoEncodeH264RefListModEntry makeStdVideoEncodeH264RefListModEntry (StdVideoH264ModificationOfPicNumsIdc modification_of_pic_nums_idc, uint16_t abs_diff_pic_num_minus1, uint16_t long_term_pic_num) 875{ 876 StdVideoEncodeH264RefListModEntry res; 877 res.modification_of_pic_nums_idc = modification_of_pic_nums_idc; 878 res.abs_diff_pic_num_minus1 = abs_diff_pic_num_minus1; 879 res.long_term_pic_num = long_term_pic_num; 880 return res; 881} 882 883inline StdVideoEncodeH264RefPicMarkingEntry makeStdVideoEncodeH264RefPicMarkingEntry (StdVideoH264MemMgmtControlOp memory_management_control_operation, uint16_t difference_of_pic_nums_minus1, uint16_t long_term_pic_num, uint16_t long_term_frame_idx, uint16_t max_long_term_frame_idx_plus1) 884{ 885 StdVideoEncodeH264RefPicMarkingEntry res; 886 res.memory_management_control_operation = memory_management_control_operation; 887 res.difference_of_pic_nums_minus1 = difference_of_pic_nums_minus1; 888 res.long_term_pic_num = long_term_pic_num; 889 res.long_term_frame_idx = long_term_frame_idx; 890 res.max_long_term_frame_idx_plus1 = max_long_term_frame_idx_plus1; 891 return res; 892} 893 894inline StdVideoEncodeH265WeightTableFlags makeStdVideoEncodeH265WeightTableFlags (uint16_t luma_weight_l0_flag, uint16_t chroma_weight_l0_flag, uint16_t luma_weight_l1_flag, uint16_t chroma_weight_l1_flag) 895{ 896 StdVideoEncodeH265WeightTableFlags res; 897 res.luma_weight_l0_flag = luma_weight_l0_flag; 898 res.chroma_weight_l0_flag = chroma_weight_l0_flag; 899 res.luma_weight_l1_flag = luma_weight_l1_flag; 900 res.chroma_weight_l1_flag = chroma_weight_l1_flag; 901 return res; 902} 903