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 VkPipelineBinaryDataKHR makePipelineBinaryDataKHR (size_t dataSize, void* pData) 293{ 294 VkPipelineBinaryDataKHR res; 295 res.dataSize = dataSize; 296 res.pData = pData; 297 return res; 298} 299 300inline VkPipelineBinaryKeysAndDataKHR makePipelineBinaryKeysAndDataKHR (uint32_t binaryCount, const VkPipelineBinaryKeyKHR* pPipelineBinaryKeys, const VkPipelineBinaryDataKHR* pPipelineBinaryData) 301{ 302 VkPipelineBinaryKeysAndDataKHR res; 303 res.binaryCount = binaryCount; 304 res.pPipelineBinaryKeys = pPipelineBinaryKeys; 305 res.pPipelineBinaryData = pPipelineBinaryData; 306 return res; 307} 308 309inline VkClearDepthStencilValue makeClearDepthStencilValue (float depth, uint32_t stencil) 310{ 311 VkClearDepthStencilValue res; 312 res.depth = depth; 313 res.stencil = stencil; 314 return res; 315} 316 317inline VkAttachmentDescription makeAttachmentDescription (VkAttachmentDescriptionFlags flags, VkFormat format, VkSampleCountFlagBits samples, VkAttachmentLoadOp loadOp, VkAttachmentStoreOp storeOp, VkAttachmentLoadOp stencilLoadOp, VkAttachmentStoreOp stencilStoreOp, VkImageLayout initialLayout, VkImageLayout finalLayout) 318{ 319 VkAttachmentDescription res; 320 res.flags = flags; 321 res.format = format; 322 res.samples = samples; 323 res.loadOp = loadOp; 324 res.storeOp = storeOp; 325 res.stencilLoadOp = stencilLoadOp; 326 res.stencilStoreOp = stencilStoreOp; 327 res.initialLayout = initialLayout; 328 res.finalLayout = finalLayout; 329 return res; 330} 331 332inline VkAttachmentReference makeAttachmentReference (uint32_t attachment, VkImageLayout layout) 333{ 334 VkAttachmentReference res; 335 res.attachment = attachment; 336 res.layout = layout; 337 return res; 338} 339 340inline 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) 341{ 342 VkSubpassDescription res; 343 res.flags = flags; 344 res.pipelineBindPoint = pipelineBindPoint; 345 res.inputAttachmentCount = inputAttachmentCount; 346 res.pInputAttachments = pInputAttachments; 347 res.colorAttachmentCount = colorAttachmentCount; 348 res.pColorAttachments = pColorAttachments; 349 res.pResolveAttachments = pResolveAttachments; 350 res.pDepthStencilAttachment = pDepthStencilAttachment; 351 res.preserveAttachmentCount = preserveAttachmentCount; 352 res.pPreserveAttachments = pPreserveAttachments; 353 return res; 354} 355 356inline VkSubpassDependency makeSubpassDependency (uint32_t srcSubpass, uint32_t dstSubpass, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkDependencyFlags dependencyFlags) 357{ 358 VkSubpassDependency res; 359 res.srcSubpass = srcSubpass; 360 res.dstSubpass = dstSubpass; 361 res.srcStageMask = srcStageMask; 362 res.dstStageMask = dstStageMask; 363 res.srcAccessMask = srcAccessMask; 364 res.dstAccessMask = dstAccessMask; 365 res.dependencyFlags = dependencyFlags; 366 return res; 367} 368 369inline VkDrawIndirectCommand makeDrawIndirectCommand (uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) 370{ 371 VkDrawIndirectCommand res; 372 res.vertexCount = vertexCount; 373 res.instanceCount = instanceCount; 374 res.firstVertex = firstVertex; 375 res.firstInstance = firstInstance; 376 return res; 377} 378 379inline VkDrawIndexedIndirectCommand makeDrawIndexedIndirectCommand (uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) 380{ 381 VkDrawIndexedIndirectCommand res; 382 res.indexCount = indexCount; 383 res.instanceCount = instanceCount; 384 res.firstIndex = firstIndex; 385 res.vertexOffset = vertexOffset; 386 res.firstInstance = firstInstance; 387 return res; 388} 389 390inline VkDispatchIndirectCommand makeDispatchIndirectCommand (uint32_t x, uint32_t y, uint32_t z) 391{ 392 VkDispatchIndirectCommand res; 393 res.x = x; 394 res.y = y; 395 res.z = z; 396 return res; 397} 398 399inline VkMultiDrawInfoEXT makeMultiDrawInfoEXT (uint32_t firstVertex, uint32_t vertexCount) 400{ 401 VkMultiDrawInfoEXT res; 402 res.firstVertex = firstVertex; 403 res.vertexCount = vertexCount; 404 return res; 405} 406 407inline VkMultiDrawIndexedInfoEXT makeMultiDrawIndexedInfoEXT (uint32_t firstIndex, uint32_t indexCount, int32_t vertexOffset) 408{ 409 VkMultiDrawIndexedInfoEXT res; 410 res.firstIndex = firstIndex; 411 res.indexCount = indexCount; 412 res.vertexOffset = vertexOffset; 413 return res; 414} 415 416inline VkDisplayPlanePropertiesKHR makeDisplayPlanePropertiesKHR (VkDisplayKHR currentDisplay, uint32_t currentStackIndex) 417{ 418 VkDisplayPlanePropertiesKHR res; 419 res.currentDisplay = currentDisplay; 420 res.currentStackIndex = currentStackIndex; 421 return res; 422} 423 424inline VkSurfaceFormatKHR makeSurfaceFormatKHR (VkFormat format, VkColorSpaceKHR colorSpace) 425{ 426 VkSurfaceFormatKHR res; 427 res.format = format; 428 res.colorSpace = colorSpace; 429 return res; 430} 431 432inline VkLayerSettingEXT makeLayerSettingEXT (const char* pLayerName, const char* pSettingName, VkLayerSettingTypeEXT type, uint32_t valueCount, const void* pValues) 433{ 434 VkLayerSettingEXT res; 435 res.pLayerName = pLayerName; 436 res.pSettingName = pSettingName; 437 res.type = type; 438 res.valueCount = valueCount; 439 res.pValues = pValues; 440 return res; 441} 442 443inline VkBindShaderGroupIndirectCommandNV makeBindShaderGroupIndirectCommandNV (uint32_t groupIndex) 444{ 445 VkBindShaderGroupIndirectCommandNV res; 446 res.groupIndex = groupIndex; 447 return res; 448} 449 450inline VkBindIndexBufferIndirectCommandNV makeBindIndexBufferIndirectCommandNV (VkDeviceAddress bufferAddress, uint32_t size, VkIndexType indexType) 451{ 452 VkBindIndexBufferIndirectCommandNV res; 453 res.bufferAddress = bufferAddress; 454 res.size = size; 455 res.indexType = indexType; 456 return res; 457} 458 459inline VkBindVertexBufferIndirectCommandNV makeBindVertexBufferIndirectCommandNV (VkDeviceAddress bufferAddress, uint32_t size, uint32_t stride) 460{ 461 VkBindVertexBufferIndirectCommandNV res; 462 res.bufferAddress = bufferAddress; 463 res.size = size; 464 res.stride = stride; 465 return res; 466} 467 468inline VkSetStateFlagsIndirectCommandNV makeSetStateFlagsIndirectCommandNV (uint32_t data) 469{ 470 VkSetStateFlagsIndirectCommandNV res; 471 res.data = data; 472 return res; 473} 474 475inline VkIndirectCommandsStreamNV makeIndirectCommandsStreamNV (VkBuffer buffer, VkDeviceSize offset) 476{ 477 VkIndirectCommandsStreamNV res; 478 res.buffer = buffer; 479 res.offset = offset; 480 return res; 481} 482 483inline VkBindPipelineIndirectCommandNV makeBindPipelineIndirectCommandNV (VkDeviceAddress pipelineAddress) 484{ 485 VkBindPipelineIndirectCommandNV res; 486 res.pipelineAddress = pipelineAddress; 487 return res; 488} 489 490inline VkConformanceVersion makeConformanceVersion (uint8_t major, uint8_t minor, uint8_t subminor, uint8_t patch) 491{ 492 VkConformanceVersion res; 493 res.major = major; 494 res.minor = minor; 495 res.subminor = subminor; 496 res.patch = patch; 497 return res; 498} 499 500inline VkPresentRegionKHR makePresentRegionKHR (uint32_t rectangleCount, const VkRectLayerKHR* pRectangles) 501{ 502 VkPresentRegionKHR res; 503 res.rectangleCount = rectangleCount; 504 res.pRectangles = pRectangles; 505 return res; 506} 507 508inline VkExternalMemoryProperties makeExternalMemoryProperties (VkExternalMemoryFeatureFlags externalMemoryFeatures, VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes, VkExternalMemoryHandleTypeFlags compatibleHandleTypes) 509{ 510 VkExternalMemoryProperties res; 511 res.externalMemoryFeatures = externalMemoryFeatures; 512 res.exportFromImportedHandleTypes = exportFromImportedHandleTypes; 513 res.compatibleHandleTypes = compatibleHandleTypes; 514 return res; 515} 516 517inline VkDescriptorUpdateTemplateEntry makeDescriptorUpdateTemplateEntry (uint32_t dstBinding, uint32_t dstArrayElement, uint32_t descriptorCount, VkDescriptorType descriptorType, size_t offset, size_t stride) 518{ 519 VkDescriptorUpdateTemplateEntry res; 520 res.dstBinding = dstBinding; 521 res.dstArrayElement = dstArrayElement; 522 res.descriptorCount = descriptorCount; 523 res.descriptorType = descriptorType; 524 res.offset = offset; 525 res.stride = stride; 526 return res; 527} 528 529inline VkXYColorEXT makeXYColorEXT (float x, float y) 530{ 531 VkXYColorEXT res; 532 res.x = x; 533 res.y = y; 534 return res; 535} 536 537inline VkRefreshCycleDurationGOOGLE makeRefreshCycleDurationGOOGLE (uint64_t refreshDuration) 538{ 539 VkRefreshCycleDurationGOOGLE res; 540 res.refreshDuration = refreshDuration; 541 return res; 542} 543 544inline VkPastPresentationTimingGOOGLE makePastPresentationTimingGOOGLE (uint32_t presentID, uint64_t desiredPresentTime, uint64_t actualPresentTime, uint64_t earliestPresentTime, uint64_t presentMargin) 545{ 546 VkPastPresentationTimingGOOGLE res; 547 res.presentID = presentID; 548 res.desiredPresentTime = desiredPresentTime; 549 res.actualPresentTime = actualPresentTime; 550 res.earliestPresentTime = earliestPresentTime; 551 res.presentMargin = presentMargin; 552 return res; 553} 554 555inline VkPresentTimeGOOGLE makePresentTimeGOOGLE (uint32_t presentID, uint64_t desiredPresentTime) 556{ 557 VkPresentTimeGOOGLE res; 558 res.presentID = presentID; 559 res.desiredPresentTime = desiredPresentTime; 560 return res; 561} 562 563inline VkViewportWScalingNV makeViewportWScalingNV (float xcoeff, float ycoeff) 564{ 565 VkViewportWScalingNV res; 566 res.xcoeff = xcoeff; 567 res.ycoeff = ycoeff; 568 return res; 569} 570 571inline VkViewportSwizzleNV makeViewportSwizzleNV (VkViewportCoordinateSwizzleNV x, VkViewportCoordinateSwizzleNV y, VkViewportCoordinateSwizzleNV z, VkViewportCoordinateSwizzleNV w) 572{ 573 VkViewportSwizzleNV res; 574 res.x = x; 575 res.y = y; 576 res.z = z; 577 res.w = w; 578 return res; 579} 580 581inline VkInputAttachmentAspectReference makeInputAttachmentAspectReference (uint32_t subpass, uint32_t inputAttachmentIndex, VkImageAspectFlags aspectMask) 582{ 583 VkInputAttachmentAspectReference res; 584 res.subpass = subpass; 585 res.inputAttachmentIndex = inputAttachmentIndex; 586 res.aspectMask = aspectMask; 587 return res; 588} 589 590inline VkSampleLocationEXT makeSampleLocationEXT (float x, float y) 591{ 592 VkSampleLocationEXT res; 593 res.x = x; 594 res.y = y; 595 return res; 596} 597 598inline VkShaderResourceUsageAMD makeShaderResourceUsageAMD (uint32_t numUsedVgprs, uint32_t numUsedSgprs, uint32_t ldsSizePerLocalWorkGroup, size_t ldsUsageSizeInBytes, size_t scratchMemUsageInBytes) 599{ 600 VkShaderResourceUsageAMD res; 601 res.numUsedVgprs = numUsedVgprs; 602 res.numUsedSgprs = numUsedSgprs; 603 res.ldsSizePerLocalWorkGroup = ldsSizePerLocalWorkGroup; 604 res.ldsUsageSizeInBytes = ldsUsageSizeInBytes; 605 res.scratchMemUsageInBytes = scratchMemUsageInBytes; 606 return res; 607} 608 609inline VkVertexInputBindingDivisorDescription makeVertexInputBindingDivisorDescription (uint32_t binding, uint32_t divisor) 610{ 611 VkVertexInputBindingDivisorDescription res; 612 res.binding = binding; 613 res.divisor = divisor; 614 return res; 615} 616 617inline VkShadingRatePaletteNV makeShadingRatePaletteNV (uint32_t shadingRatePaletteEntryCount, const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries) 618{ 619 VkShadingRatePaletteNV res; 620 res.shadingRatePaletteEntryCount = shadingRatePaletteEntryCount; 621 res.pShadingRatePaletteEntries = pShadingRatePaletteEntries; 622 return res; 623} 624 625inline VkCoarseSampleLocationNV makeCoarseSampleLocationNV (uint32_t pixelX, uint32_t pixelY, uint32_t sample) 626{ 627 VkCoarseSampleLocationNV res; 628 res.pixelX = pixelX; 629 res.pixelY = pixelY; 630 res.sample = sample; 631 return res; 632} 633 634inline VkCoarseSampleOrderCustomNV makeCoarseSampleOrderCustomNV (VkShadingRatePaletteEntryNV shadingRate, uint32_t sampleCount, uint32_t sampleLocationCount, const VkCoarseSampleLocationNV* pSampleLocations) 635{ 636 VkCoarseSampleOrderCustomNV res; 637 res.shadingRate = shadingRate; 638 res.sampleCount = sampleCount; 639 res.sampleLocationCount = sampleLocationCount; 640 res.pSampleLocations = pSampleLocations; 641 return res; 642} 643 644inline VkDrawMeshTasksIndirectCommandNV makeDrawMeshTasksIndirectCommandNV (uint32_t taskCount, uint32_t firstTask) 645{ 646 VkDrawMeshTasksIndirectCommandNV res; 647 res.taskCount = taskCount; 648 res.firstTask = firstTask; 649 return res; 650} 651 652inline VkDrawMeshTasksIndirectCommandEXT makeDrawMeshTasksIndirectCommandEXT (uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) 653{ 654 VkDrawMeshTasksIndirectCommandEXT res; 655 res.groupCountX = groupCountX; 656 res.groupCountY = groupCountY; 657 res.groupCountZ = groupCountZ; 658 return res; 659} 660 661inline VkStridedDeviceAddressRegionKHR makeStridedDeviceAddressRegionKHR (VkDeviceAddress deviceAddress, VkDeviceSize stride, VkDeviceSize size) 662{ 663 VkStridedDeviceAddressRegionKHR res; 664 res.deviceAddress = deviceAddress; 665 res.stride = stride; 666 res.size = size; 667 return res; 668} 669 670inline VkTraceRaysIndirectCommandKHR makeTraceRaysIndirectCommandKHR (uint32_t width, uint32_t height, uint32_t depth) 671{ 672 VkTraceRaysIndirectCommandKHR res; 673 res.width = width; 674 res.height = height; 675 res.depth = depth; 676 return res; 677} 678 679inline 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) 680{ 681 VkTraceRaysIndirectCommand2KHR res; 682 res.raygenShaderRecordAddress = raygenShaderRecordAddress; 683 res.raygenShaderRecordSize = raygenShaderRecordSize; 684 res.missShaderBindingTableAddress = missShaderBindingTableAddress; 685 res.missShaderBindingTableSize = missShaderBindingTableSize; 686 res.missShaderBindingTableStride = missShaderBindingTableStride; 687 res.hitShaderBindingTableAddress = hitShaderBindingTableAddress; 688 res.hitShaderBindingTableSize = hitShaderBindingTableSize; 689 res.hitShaderBindingTableStride = hitShaderBindingTableStride; 690 res.callableShaderBindingTableAddress = callableShaderBindingTableAddress; 691 res.callableShaderBindingTableSize = callableShaderBindingTableSize; 692 res.callableShaderBindingTableStride = callableShaderBindingTableStride; 693 res.width = width; 694 res.height = height; 695 res.depth = depth; 696 return res; 697} 698 699inline VkDrmFormatModifierPropertiesEXT makeDrmFormatModifierPropertiesEXT (uint64_t drmFormatModifier, uint32_t drmFormatModifierPlaneCount, VkFormatFeatureFlags drmFormatModifierTilingFeatures) 700{ 701 VkDrmFormatModifierPropertiesEXT res; 702 res.drmFormatModifier = drmFormatModifier; 703 res.drmFormatModifierPlaneCount = drmFormatModifierPlaneCount; 704 res.drmFormatModifierTilingFeatures = drmFormatModifierTilingFeatures; 705 return res; 706} 707 708inline VkPipelineCreationFeedback makePipelineCreationFeedback (VkPipelineCreationFeedbackFlags flags, uint64_t duration) 709{ 710 VkPipelineCreationFeedback res; 711 res.flags = flags; 712 res.duration = duration; 713 return res; 714} 715 716inline VkAccelerationStructureBuildRangeInfoKHR makeAccelerationStructureBuildRangeInfoKHR (uint32_t primitiveCount, uint32_t primitiveOffset, uint32_t firstVertex, uint32_t transformOffset) 717{ 718 VkAccelerationStructureBuildRangeInfoKHR res; 719 res.primitiveCount = primitiveCount; 720 res.primitiveOffset = primitiveOffset; 721 res.firstVertex = firstVertex; 722 res.transformOffset = transformOffset; 723 return res; 724} 725 726inline VkAabbPositionsKHR makeAabbPositionsKHR (float minX, float minY, float minZ, float maxX, float maxY, float maxZ) 727{ 728 VkAabbPositionsKHR res; 729 res.minX = minX; 730 res.minY = minY; 731 res.minZ = minZ; 732 res.maxX = maxX; 733 res.maxY = maxY; 734 res.maxZ = maxZ; 735 return res; 736} 737 738inline VkColorBlendEquationEXT makeColorBlendEquationEXT (VkBlendFactor srcColorBlendFactor, VkBlendFactor dstColorBlendFactor, VkBlendOp colorBlendOp, VkBlendFactor srcAlphaBlendFactor, VkBlendFactor dstAlphaBlendFactor, VkBlendOp alphaBlendOp) 739{ 740 VkColorBlendEquationEXT res; 741 res.srcColorBlendFactor = srcColorBlendFactor; 742 res.dstColorBlendFactor = dstColorBlendFactor; 743 res.colorBlendOp = colorBlendOp; 744 res.srcAlphaBlendFactor = srcAlphaBlendFactor; 745 res.dstAlphaBlendFactor = dstAlphaBlendFactor; 746 res.alphaBlendOp = alphaBlendOp; 747 return res; 748} 749 750inline VkColorBlendAdvancedEXT makeColorBlendAdvancedEXT (VkBlendOp advancedBlendOp, VkBool32 srcPremultiplied, VkBool32 dstPremultiplied, VkBlendOverlapEXT blendOverlap, VkBool32 clampResults) 751{ 752 VkColorBlendAdvancedEXT res; 753 res.advancedBlendOp = advancedBlendOp; 754 res.srcPremultiplied = srcPremultiplied; 755 res.dstPremultiplied = dstPremultiplied; 756 res.blendOverlap = blendOverlap; 757 res.clampResults = clampResults; 758 return res; 759} 760 761inline VkMutableDescriptorTypeListEXT makeMutableDescriptorTypeListEXT (uint32_t descriptorTypeCount, const VkDescriptorType* pDescriptorTypes) 762{ 763 VkMutableDescriptorTypeListEXT res; 764 res.descriptorTypeCount = descriptorTypeCount; 765 res.pDescriptorTypes = pDescriptorTypes; 766 return res; 767} 768 769inline VkDrawIndirectCountIndirectCommandEXT makeDrawIndirectCountIndirectCommandEXT (VkDeviceAddress bufferAddress, uint32_t stride, uint32_t commandCount) 770{ 771 VkDrawIndirectCountIndirectCommandEXT res; 772 res.bufferAddress = bufferAddress; 773 res.stride = stride; 774 res.commandCount = commandCount; 775 return res; 776} 777 778inline VkIndirectCommandsVertexBufferTokenEXT makeIndirectCommandsVertexBufferTokenEXT (uint32_t vertexBindingUnit) 779{ 780 VkIndirectCommandsVertexBufferTokenEXT res; 781 res.vertexBindingUnit = vertexBindingUnit; 782 return res; 783} 784 785inline VkBindVertexBufferIndirectCommandEXT makeBindVertexBufferIndirectCommandEXT (VkDeviceAddress bufferAddress, uint32_t size, uint32_t stride) 786{ 787 VkBindVertexBufferIndirectCommandEXT res; 788 res.bufferAddress = bufferAddress; 789 res.size = size; 790 res.stride = stride; 791 return res; 792} 793 794inline VkIndirectCommandsIndexBufferTokenEXT makeIndirectCommandsIndexBufferTokenEXT (VkIndirectCommandsInputModeFlagBitsEXT mode) 795{ 796 VkIndirectCommandsIndexBufferTokenEXT res; 797 res.mode = mode; 798 return res; 799} 800 801inline VkBindIndexBufferIndirectCommandEXT makeBindIndexBufferIndirectCommandEXT (VkDeviceAddress bufferAddress, uint32_t size, VkIndexType indexType) 802{ 803 VkBindIndexBufferIndirectCommandEXT res; 804 res.bufferAddress = bufferAddress; 805 res.size = size; 806 res.indexType = indexType; 807 return res; 808} 809 810inline VkIndirectCommandsExecutionSetTokenEXT makeIndirectCommandsExecutionSetTokenEXT (VkIndirectExecutionSetInfoTypeEXT type, VkShaderStageFlags shaderStages) 811{ 812 VkIndirectCommandsExecutionSetTokenEXT res; 813 res.type = type; 814 res.shaderStages = shaderStages; 815 return res; 816} 817 818inline VkVideoEncodeH264QpKHR makeVideoEncodeH264QpKHR (int32_t qpI, int32_t qpP, int32_t qpB) 819{ 820 VkVideoEncodeH264QpKHR res; 821 res.qpI = qpI; 822 res.qpP = qpP; 823 res.qpB = qpB; 824 return res; 825} 826 827inline VkVideoEncodeH264FrameSizeKHR makeVideoEncodeH264FrameSizeKHR (uint32_t frameISize, uint32_t framePSize, uint32_t frameBSize) 828{ 829 VkVideoEncodeH264FrameSizeKHR res; 830 res.frameISize = frameISize; 831 res.framePSize = framePSize; 832 res.frameBSize = frameBSize; 833 return res; 834} 835 836inline VkVideoEncodeH265QpKHR makeVideoEncodeH265QpKHR (int32_t qpI, int32_t qpP, int32_t qpB) 837{ 838 VkVideoEncodeH265QpKHR res; 839 res.qpI = qpI; 840 res.qpP = qpP; 841 res.qpB = qpB; 842 return res; 843} 844 845inline VkVideoEncodeH265FrameSizeKHR makeVideoEncodeH265FrameSizeKHR (uint32_t frameISize, uint32_t framePSize, uint32_t frameBSize) 846{ 847 VkVideoEncodeH265FrameSizeKHR res; 848 res.frameISize = frameISize; 849 res.framePSize = framePSize; 850 res.frameBSize = frameBSize; 851 return res; 852} 853 854inline VkVideoEncodeAV1QIndexKHR makeVideoEncodeAV1QIndexKHR (uint32_t intraQIndex, uint32_t predictiveQIndex, uint32_t bipredictiveQIndex) 855{ 856 VkVideoEncodeAV1QIndexKHR res; 857 res.intraQIndex = intraQIndex; 858 res.predictiveQIndex = predictiveQIndex; 859 res.bipredictiveQIndex = bipredictiveQIndex; 860 return res; 861} 862 863inline VkVideoEncodeAV1FrameSizeKHR makeVideoEncodeAV1FrameSizeKHR (uint32_t intraFrameSize, uint32_t predictiveFrameSize, uint32_t bipredictiveFrameSize) 864{ 865 VkVideoEncodeAV1FrameSizeKHR res; 866 res.intraFrameSize = intraFrameSize; 867 res.predictiveFrameSize = predictiveFrameSize; 868 res.bipredictiveFrameSize = bipredictiveFrameSize; 869 return res; 870} 871 872inline 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) 873{ 874 VkSRTDataNV res; 875 res.sx = sx; 876 res.a = a; 877 res.b = b; 878 res.pvx = pvx; 879 res.sy = sy; 880 res.c = c; 881 res.pvy = pvy; 882 res.sz = sz; 883 res.pvz = pvz; 884 res.qx = qx; 885 res.qy = qy; 886 res.qz = qz; 887 res.qw = qw; 888 res.tx = tx; 889 res.ty = ty; 890 res.tz = tz; 891 return res; 892} 893 894inline VkDrmFormatModifierProperties2EXT makeDrmFormatModifierProperties2EXT (uint64_t drmFormatModifier, uint32_t drmFormatModifierPlaneCount, VkFormatFeatureFlags2 drmFormatModifierTilingFeatures) 895{ 896 VkDrmFormatModifierProperties2EXT res; 897 res.drmFormatModifier = drmFormatModifier; 898 res.drmFormatModifierPlaneCount = drmFormatModifierPlaneCount; 899 res.drmFormatModifierTilingFeatures = drmFormatModifierTilingFeatures; 900 return res; 901} 902 903inline VkRenderPassCreationFeedbackInfoEXT makeRenderPassCreationFeedbackInfoEXT (uint32_t postMergeSubpassCount) 904{ 905 VkRenderPassCreationFeedbackInfoEXT res; 906 res.postMergeSubpassCount = postMergeSubpassCount; 907 return res; 908} 909 910inline VkMicromapUsageEXT makeMicromapUsageEXT (uint32_t count, uint32_t subdivisionLevel, uint32_t format) 911{ 912 VkMicromapUsageEXT res; 913 res.count = count; 914 res.subdivisionLevel = subdivisionLevel; 915 res.format = format; 916 return res; 917} 918 919inline VkMicromapTriangleEXT makeMicromapTriangleEXT (uint32_t dataOffset, uint16_t subdivisionLevel, uint16_t format) 920{ 921 VkMicromapTriangleEXT res; 922 res.dataOffset = dataOffset; 923 res.subdivisionLevel = subdivisionLevel; 924 res.format = format; 925 return res; 926} 927 928inline VkDeviceFaultAddressInfoEXT makeDeviceFaultAddressInfoEXT (VkDeviceFaultAddressTypeEXT addressType, VkDeviceAddress reportedAddress, VkDeviceSize addressPrecision) 929{ 930 VkDeviceFaultAddressInfoEXT res; 931 res.addressType = addressType; 932 res.reportedAddress = reportedAddress; 933 res.addressPrecision = addressPrecision; 934 return res; 935} 936 937inline VkDecompressMemoryRegionNV makeDecompressMemoryRegionNV (VkDeviceAddress srcAddress, VkDeviceAddress dstAddress, VkDeviceSize compressedSize, VkDeviceSize decompressedSize, VkMemoryDecompressionMethodFlagsNV decompressionMethod) 938{ 939 VkDecompressMemoryRegionNV res; 940 res.srcAddress = srcAddress; 941 res.dstAddress = dstAddress; 942 res.compressedSize = compressedSize; 943 res.decompressedSize = decompressedSize; 944 res.decompressionMethod = decompressionMethod; 945 return res; 946} 947 948inline VkDepthClampRangeEXT makeDepthClampRangeEXT (float minDepthClamp, float maxDepthClamp) 949{ 950 VkDepthClampRangeEXT res; 951 res.minDepthClamp = minDepthClamp; 952 res.maxDepthClamp = maxDepthClamp; 953 return res; 954} 955 956inline 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) 957{ 958 StdVideoEncodeH264WeightTableFlags res; 959 res.luma_weight_l0_flag = luma_weight_l0_flag; 960 res.chroma_weight_l0_flag = chroma_weight_l0_flag; 961 res.luma_weight_l1_flag = luma_weight_l1_flag; 962 res.chroma_weight_l1_flag = chroma_weight_l1_flag; 963 return res; 964} 965 966inline StdVideoEncodeH264RefListModEntry makeStdVideoEncodeH264RefListModEntry (StdVideoH264ModificationOfPicNumsIdc modification_of_pic_nums_idc, uint16_t abs_diff_pic_num_minus1, uint16_t long_term_pic_num) 967{ 968 StdVideoEncodeH264RefListModEntry res; 969 res.modification_of_pic_nums_idc = modification_of_pic_nums_idc; 970 res.abs_diff_pic_num_minus1 = abs_diff_pic_num_minus1; 971 res.long_term_pic_num = long_term_pic_num; 972 return res; 973} 974 975inline 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) 976{ 977 StdVideoEncodeH264RefPicMarkingEntry res; 978 res.memory_management_control_operation = memory_management_control_operation; 979 res.difference_of_pic_nums_minus1 = difference_of_pic_nums_minus1; 980 res.long_term_pic_num = long_term_pic_num; 981 res.long_term_frame_idx = long_term_frame_idx; 982 res.max_long_term_frame_idx_plus1 = max_long_term_frame_idx_plus1; 983 return res; 984} 985 986inline 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) 987{ 988 StdVideoEncodeH265WeightTableFlags res; 989 res.luma_weight_l0_flag = luma_weight_l0_flag; 990 res.chroma_weight_l0_flag = chroma_weight_l0_flag; 991 res.luma_weight_l1_flag = luma_weight_l1_flag; 992 res.chroma_weight_l1_flag = chroma_weight_l1_flag; 993 return res; 994} 995 996inline StdVideoEncodeAV1ExtensionHeader makeStdVideoEncodeAV1ExtensionHeader (uint8_t temporal_id, uint8_t spatial_id) 997{ 998 StdVideoEncodeAV1ExtensionHeader res; 999 res.temporal_id = temporal_id; 1000 res.spatial_id = spatial_id; 1001 return res; 1002} 1003 1004inline StdVideoEncodeAV1DecoderModelInfo makeStdVideoEncodeAV1DecoderModelInfo (uint8_t buffer_delay_length_minus_1, uint8_t buffer_removal_time_length_minus_1, uint8_t frame_presentation_time_length_minus_1, uint8_t reserved1, uint32_t num_units_in_decoding_tick) 1005{ 1006 StdVideoEncodeAV1DecoderModelInfo res; 1007 res.buffer_delay_length_minus_1 = buffer_delay_length_minus_1; 1008 res.buffer_removal_time_length_minus_1 = buffer_removal_time_length_minus_1; 1009 res.frame_presentation_time_length_minus_1 = frame_presentation_time_length_minus_1; 1010 res.reserved1 = reserved1; 1011 res.num_units_in_decoding_tick = num_units_in_decoding_tick; 1012 return res; 1013} 1014