blob: a68a99dda7f7e5094207496d0d18d5124a5341f4 [file] [log] [blame]
Nikita Guptaea29e902025-03-11 06:49:30 -07001import ctypes
2import dataclasses
3import enum
4from typing import List
5
6dataclass = dataclasses.dataclass
7Enum = enum.Enum
8
9# TODO(b/401184058): Automate this file for generating the vulkan structs graph from vk.xml
10VK_UUID_SIZE = 16
11VK_LUID_SIZE = 16
12
13VkImageLayout = Enum
14uint8_t = ctypes.c_uint8
15uint32_t = ctypes.c_uint32
16VkFlags = uint32_t
17VkMemoryPropertyFlags = VkFlags
18VkMemoryHeapFlags = VkFlags
19int32_t = int
20uint64_t = ctypes.c_uint64
21VkBool32 = bool
22VkDeviceSize = ctypes.c_uint64
23size_t = int
24VkSampleCountFlags = ctypes.c_uint32
25VkFormatFeatureFlags = ctypes.c_uint32
26VkQueueFlags = ctypes.c_uint32
27VkShaderStageFlags = ctypes.c_uint32
28VkSubgroupFeatureFlags = ctypes.c_uint32
29VkResolveModeFlags = ctypes.c_uint32
30float_t = ctypes.c_float
31VkShaderFloatControlsIndependence = Enum
32VkPointClippingBehavior = Enum
33VkPhysicalDeviceType = Enum
34VkDriverId = Enum
35VkPipelineRobustnessBufferBehavior = Enum
36
37
38@dataclass
39class ConformanceVersion:
40 major: uint8_t
41 minor: uint8_t
42 subminor: uint8_t
43 patch: uint8_t
44
45
46@dataclass
47class VkExtent3D:
48 width: uint32_t
49 height: uint32_t
50 depth: uint32_t
51
52
53@dataclass
54class VkPhysicalDeviceLimits:
55 maxImageDimension1D: uint32_t
56 maxImageDimension2D: uint32_t
57 maxImageDimension3D: uint32_t
58 maxImageDimensionCube: uint32_t
59 maxImageArrayLayers: uint32_t
60 maxTexelBufferElements: uint32_t
61 maxUniformBufferRange: uint32_t
62 maxStorageBufferRange: uint32_t
63 maxPushConstantsSize: uint32_t
64 maxMemoryAllocationCount: uint32_t
65 maxSamplerAllocationCount: uint32_t
66 bufferImageGranularity: VkDeviceSize
67 sparseAddressSpaceSize: VkDeviceSize
68 maxBoundDescriptorSets: uint32_t
69 maxPerStageDescriptorSamplers: uint32_t
70 maxPerStageDescriptorUniformBuffers: uint32_t
71 maxPerStageDescriptorStorageBuffers: uint32_t
72 maxPerStageDescriptorSampledImages: uint32_t
73 maxPerStageDescriptorStorageImages: uint32_t
74 maxPerStageDescriptorInputAttachments: uint32_t
75 maxPerStageResources: uint32_t
76 maxDescriptorSetSamplers: uint32_t
77 maxDescriptorSetUniformBuffers: uint32_t
78 maxDescriptorSetUniformBuffersDynamic: uint32_t
79 maxDescriptorSetStorageBuffers: uint32_t
80 maxDescriptorSetStorageBuffersDynamic: uint32_t
81 maxDescriptorSetSampledImages: uint32_t
82 maxDescriptorSetStorageImages: uint32_t
83 maxDescriptorSetInputAttachments: uint32_t
84 maxVertexInputAttributes: uint32_t
85 maxVertexInputBindings: uint32_t
86 maxVertexInputAttributeOffset: uint32_t
87 maxVertexInputBindingStride: uint32_t
88 maxVertexOutputComponents: uint32_t
89 maxTessellationGenerationLevel: uint32_t
90 maxTessellationPatchSize: uint32_t
91 maxTessellationControlPerVertexInputComponents: uint32_t
92 maxTessellationControlPerVertexOutputComponents: uint32_t
93 maxTessellationControlPerPatchOutputComponents: uint32_t
94 maxTessellationControlTotalOutputComponents: uint32_t
95 maxTessellationEvaluationInputComponents: uint32_t
96 maxTessellationEvaluationOutputComponents: uint32_t
97 maxGeometryShaderInvocations: uint32_t
98 maxGeometryInputComponents: uint32_t
99 maxGeometryOutputComponents: uint32_t
100 maxGeometryOutputVertices: uint32_t
101 maxGeometryTotalOutputComponents: uint32_t
102 maxFragmentInputComponents: uint32_t
103 maxFragmentOutputAttachments: uint32_t
104 maxFragmentDualSrcAttachments: uint32_t
105 maxFragmentCombinedOutputResources: uint32_t
106 maxComputeSharedMemorySize: uint32_t
107 maxComputeWorkGroupCount: uint32_t*3
108 maxComputeWorkGroupInvocations: uint32_t
109 maxComputeWorkGroupSize: uint32_t*3
110 subPixelPrecisionBits: uint32_t
111 subTexelPrecisionBits: uint32_t
112 mipmapPrecisionBits: uint32_t
113 maxDrawIndexedIndexValue: uint32_t
114 maxDrawIndirectCount: uint32_t
115 maxSamplerLodBias: float
116 maxSamplerAnisotropy: float
117 maxViewports: uint32_t
118 maxViewportDimensions: uint32_t*2
119 viewportBoundsRange: float_t*2
120 viewportSubPixelBits: uint32_t
121 minMemoryMapAlignment: size_t
122 minTexelBufferOffsetAlignment: VkDeviceSize
123 minUniformBufferOffsetAlignment: VkDeviceSize
124 minStorageBufferOffsetAlignment: VkDeviceSize
125 minTexelOffset: int32_t
126 maxTexelOffset: uint32_t
127 minTexelGatherOffset: int32_t
128 maxTexelGatherOffset: uint32_t
129 minInterpolationOffset: float
130 maxInterpolationOffset: float
131 subPixelInterpolationOffsetBits: uint32_t
132 maxFramebufferWidth: uint32_t
133 maxFramebufferHeight: uint32_t
134 maxFramebufferLayers: uint32_t
135 framebufferColorSampleCounts: VkSampleCountFlags
136 framebufferDepthSampleCounts: VkSampleCountFlags
137 framebufferStencilSampleCounts: VkSampleCountFlags
138 framebufferNoAttachmentsSampleCounts: VkSampleCountFlags
139 maxColorAttachments: uint32_t
140 sampledImageColorSampleCounts: VkSampleCountFlags
141 sampledImageIntegerSampleCounts: VkSampleCountFlags
142 sampledImageDepthSampleCounts: VkSampleCountFlags
143 sampledImageStencilSampleCounts: VkSampleCountFlags
144 storageImageSampleCounts: VkSampleCountFlags
145 maxSampleMaskWords: uint32_t
146 timestampComputeAndGraphics: VkBool32
147 timestampPeriod: float
148 maxClipDistances: uint32_t
149 maxCullDistances: uint32_t
150 maxCombinedClipAndCullDistances: uint32_t
151 discreteQueuePriorities: uint32_t
152 pointSizeRange: float_t*2
153 lineWidthRange: float_t*2
154 pointSizeGranularity: float
155 lineWidthGranularity: float
156 strictLines: VkBool32
157 standardSampleLocations: VkBool32
158 optimalBufferCopyOffsetAlignment: VkDeviceSize
159 optimalBufferCopyRowPitchAlignment: VkDeviceSize
160 nonCoherentAtomSize: VkDeviceSize
161
162
163@dataclass
164class VkPhysicalDeviceShaderDrawParameterFeatures:
165 shaderDrawParameters: VkBool32
166
167
168@dataclass
169class VkExtensionProperties:
170 extensionName: str
171 specVersion: uint32_t
172
173
174@dataclass
175class VkFormatProperties:
176 linearTilingFeatures: VkFormatFeatureFlags
177 optimalTilingFeatures: VkFormatFeatureFlags
178 bufferFeatures: VkFormatFeatureFlags
179
180
181@dataclass
182class VkLayerProperties:
183 layerName: str
184 specVersion: uint32_t
185 implementationVersion: uint32_t
186 description: str
187
188
189@dataclass
190class VkQueueFamilyProperties:
191 queueFlags: VkQueueFlags
192 queueCount: uint32_t
193 timestampValidBits: uint32_t
194 minImageTransferGranularity: VkExtent3D
195
196
197@dataclass
198class VkPhysicalDeviceSparseProperties:
199 residencyStandard2DBlockShape: VkBool32
200 residencyStandard2DMultisampleBlockShape: VkBool32
201 residencyStandard3DBlockShape: VkBool32
202 residencyAlignedMipSize: VkBool32
203 residencyNonResidentStrict: VkBool32
204
205
206@dataclass
207class VkImageFormatProperties:
208 maxExtent: VkExtent3D
209 maxMipLevels: uint32_t
210 maxArrayLayers: uint32_t
211 sampleCounts: VkSampleCountFlags
212 maxResourceSize: VkDeviceSize
213
214
215@dataclass
216class VkPhysicalDeviceSamplerYcbcrConversionFeatures:
217 samplerYcbcrConversion: VkBool32
218
219
220@dataclass
221class VkPhysicalDeviceIDProperties:
222 deviceUUID: uint8_t*VK_UUID_SIZE
223 driverUUID: uint8_t*VK_UUID_SIZE
224 deviceLUID: uint8_t*VK_LUID_SIZE
225 deviceNodeMask: uint32_t
226 deviceLUIDValid: VkBool32
227
228
229@dataclass
230class VkPhysicalDeviceMaintenance3Properties:
231 maxPerSetDescriptors: uint32_t
232 maxMemoryAllocationSize: VkDeviceSize
233
234
235@dataclass
236class VkPhysicalDevice16BitStorageFeatures:
237 storageBuffer16BitAccess: VkBool32
238 uniformAndStorageBuffer16BitAccess: VkBool32
239 storagePushConstant16: VkBool32
240 storageInputOutput16: VkBool32
241
242
243@dataclass
244class VkPhysicalDeviceMultiviewFeatures:
245 multiview: VkBool32
246 multiviewGeometryShader: VkBool32
247 multiviewTessellationShader: VkBool32
248
249
250@dataclass
251class VkPhysicalDeviceSubgroupProperties:
252 subgroupSize: uint32_t
253 supportedStages: VkShaderStageFlags
254 supportedOperations: VkSubgroupFeatureFlags
255 quadOperationsInAllStages: VkBool32
256
257
258@dataclass
259class VkPhysicalDevicePointClippingProperties:
260 pointClippingBehavior: VkPointClippingBehavior
261
262
263@dataclass
264class VkPhysicalDeviceMultiviewProperties:
265 maxMultiviewViewCount: uint32_t
266 maxMultiviewInstanceIndex: uint32_t
267
268
269@dataclass
270class VkMemoryType:
271 propertyFlags: VkMemoryPropertyFlags
272 heapIndex: uint32_t
273
274
275@dataclass
276class VkMemoryHeap:
277 size: VkDeviceSize
278 flags: VkMemoryHeapFlags
279
280
281@dataclass
282class VkPhysicalDeviceMemoryProperties:
283 memoryTypeCount: uint32_t
284 memoryTypes: List[VkMemoryType]
285 memoryHeapCount: uint32_t
286 memoryHeaps: List[VkMemoryHeap]
287
288
289@dataclass
290class VkPhysicalDeviceProperties:
291 apiVersion: uint32_t
292 driverVersion: uint32_t
293 vendorID: uint32_t
294 deviceID: uint32_t
295 deviceType: VkPhysicalDeviceType
296 deviceName: str
297 pipelineCacheUUID: uint8_t
298 limits: VkPhysicalDeviceLimits
299 sparseProperties: VkPhysicalDeviceSparseProperties
300
301
302@dataclass
303class VkPhysicalDeviceFeatures:
304 robustBufferAccess: VkBool32
305 fullDrawIndexUint32: VkBool32
306 imageCubeArray: VkBool32
307 independentBlend: VkBool32
308 geometryShader: VkBool32
309 tessellationShader: VkBool32
310 sampleRateShading: VkBool32
311 dualSrcBlend: VkBool32
312 logicOp: VkBool32
313 multiDrawIndirect: VkBool32
314 drawIndirectFirstInstance: VkBool32
315 depthClamp: VkBool32
316 depthBiasClamp: VkBool32
317 fillModeNonSolid: VkBool32
318 depthBounds: VkBool32
319 wideLines: VkBool32
320 largePoints: VkBool32
321 alphaToOne: VkBool32
322 multiViewport: VkBool32
323 samplerAnisotropy: VkBool32
324 textureCompressionETC2: VkBool32
325 textureCompressionASTC_LDR: VkBool32
326 textureCompressionBC: VkBool32
327 occlusionQueryPrecise: VkBool32
328 pipelineStatisticsQuery: VkBool32
329 vertexPipelineStoresAndAtomics: VkBool32
330 fragmentStoresAndAtomics: VkBool32
331 shaderTessellationAndGeometryPointSize: VkBool32
332 shaderImageGatherExtended: VkBool32
333 shaderStorageImageExtendedFormats: VkBool32
334 shaderStorageImageMultisample: VkBool32
335 shaderStorageImageReadWithoutFormat: VkBool32
336 shaderStorageImageWriteWithoutFormat: VkBool32
337 shaderUniformBufferArrayDynamicIndexing: VkBool32
338 shaderSampledImageArrayDynamicIndexing: VkBool32
339 shaderStorageBufferArrayDynamicIndexing: VkBool32
340 shaderStorageImageArrayDynamicIndexing: VkBool32
341 shaderClipDistance: VkBool32
342 shaderCullDistance: VkBool32
343 shaderFloat64: VkBool32
344 shaderInt64: VkBool32
345 shaderInt16: VkBool32
346 shaderResourceResidency: VkBool32
347 shaderResourceMinLod: VkBool32
348 sparseBinding: VkBool32
349 sparseResidencyBuffer: VkBool32
350 sparseResidencyImage2D: VkBool32
351 sparseResidencyImage3D: VkBool32
352 sparseResidency2Samples: VkBool32
353 sparseResidency4Samples: VkBool32
354 sparseResidency8Samples: VkBool32
355 sparseResidency16Samples: VkBool32
356 sparseResidencyAliased: VkBool32
357 variableMultisampleRate: VkBool32
358 inheritedQueries: VkBool32
359
360
361@dataclass
362class VkPhysicalDeviceShaderFloat16Int8Features:
363 shaderFloat16: VkBool32
364 shaderInt8: VkBool32
365
366
367@dataclass
368class VkPhysicalDeviceProtectedMemoryFeatures:
369 protectedMemory: VkBool32
370
371
372@dataclass
373class VkPhysicalDeviceVariablePointersFeatures:
374 variablePointersStorageBuffer: VkBool32
375 variablePointers: VkBool32
376
377
378@dataclass
379class VkPhysicalDeviceImage2DViewOf3DFeaturesEXT:
380 image2DViewOf3D: VkBool32
381 sampler2DViewOf3D: VkBool32
382
383
384@dataclass
385class VkPhysicalDeviceCustomBorderColorFeaturesEXT:
386 customBorderColors: VkBool32
387 customBorderColorWithoutFormat: VkBool32
388
389
390@dataclass
391class VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT:
392 primitiveTopologyListRestart: VkBool32
393 primitiveTopologyPatchListRestart: VkBool32
394
395
396@dataclass
397class VkPhysicalDeviceProvokingVertexFeaturesEXT:
398 provokingVertexLast: VkBool32
399 transformFeedbackPreservesProvokingVertex: VkBool32
400
401
402@dataclass
403class VkPhysicalDeviceIndexTypeUint8Features:
404 indexTypeUint8: VkBool32
405
406
407@dataclass
408class VkPhysicalDeviceVertexAttributeDivisorFeatures:
409 vertexAttributeInstanceRateDivisor: VkBool32
410 vertexAttributeInstanceRateZeroDivisor: VkBool32
411
412
413@dataclass
414class VkPhysicalDeviceTransformFeedbackFeaturesEXT:
415 transformFeedback: VkBool32
416 geometryStreams: VkBool32
417
418
419@dataclass
420class VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR:
421 shaderSubgroupUniformControlFlow: VkBool32
422
423
424@dataclass
425class VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures:
426 shaderSubgroupExtendedTypes: VkBool32
427
428
429@dataclass
430class VkPhysicalDevice8BitStorageFeatures:
431 storageBuffer8BitAccess: VkBool32
432 uniformAndStorageBuffer8BitAccess: VkBool32
433 storagePushConstant8: VkBool32
434
435
436@dataclass
437class VkPhysicalDeviceShaderIntegerDotProductFeatures:
438 shaderIntegerDotProduct: VkBool32
439
440
441@dataclass
442class VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG:
443 relaxedLineRasterization: VkBool32
444
445
446@dataclass
447class VkPhysicalDeviceLineRasterizationFeatures:
448 rectangularLines: VkBool32
449 bresenhamLines: VkBool32
450 smoothLines: VkBool32
451 stippledRectangularLines: VkBool32
452 stippledBresenhamLines: VkBool32
453 stippledSmoothLines: VkBool32
454
455
456@dataclass
457class VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT:
458 primitivesGeneratedQuery: VkBool32
459 primitivesGeneratedQueryWithRasterizerDiscard: VkBool32
460 primitivesGeneratedQueryWithNonZeroStreams: VkBool32
461
462
463@dataclass
464class VkPhysicalDeviceFloatControlsProperties:
465 denormBehaviorIndependence : VkShaderFloatControlsIndependence
466 roundingModeIndependence : VkShaderFloatControlsIndependence
467 shaderSignedZeroInfNanPreserveFloat16 : VkBool32
468 shaderSignedZeroInfNanPreserveFloat32 : VkBool32
469 shaderSignedZeroInfNanPreserveFloat64 : VkBool32
470 shaderDenormPreserveFloat16 : VkBool32
471 shaderDenormPreserveFloat32 : VkBool32
472 shaderDenormPreserveFloat64 : VkBool32
473 shaderDenormFlushToZeroFloat16 : VkBool32
474 shaderDenormFlushToZeroFloat32 : VkBool32
475 shaderDenormFlushToZeroFloat64 : VkBool32
476 shaderRoundingModeRTEFloat16 : VkBool32
477 shaderRoundingModeRTEFloat32 : VkBool32
478 shaderRoundingModeRTEFloat64 :VkBool32
479 shaderRoundingModeRTZFloat16 : VkBool32
480 shaderRoundingModeRTZFloat32 : VkBool32
481 shaderRoundingModeRTZFloat64 : VkBool32
482
483
484@dataclass
485class VkPhysicalDeviceVulkan11Properties:
486 deviceUUID : uint8_t*VK_UUID_SIZE
487 driverUUID : uint8_t*VK_UUID_SIZE
488 deviceLUID : uint8_t*VK_LUID_SIZE
489 deviceNodeMask : uint32_t
490 deviceLUIDValid : VkBool32
491 subgroupSize : uint32_t
492 subgroupSupportedStages : VkShaderStageFlags
493 subgroupSupportedOperations : VkSubgroupFeatureFlags
494 subgroupQuadOperationsInAllStages : VkBool32
495 pointClippingBehavior : VkPointClippingBehavior
496 maxMultiviewViewCount : uint32_t
497 maxMultiviewInstanceIndex :uint32_t
498 protectedNoFault : VkBool32
499 maxPerSetDescriptors : uint32_t
500 maxMemoryAllocationSize : VkDeviceSize
501
502
503@dataclass
504class VkPhysicalDeviceVulkan11Features:
505 storageBuffer16BitAccess: VkBool32
506 uniformAndStorageBuffer16BitAccess: VkBool32
507 storagePushConstant16: VkBool32
508 storageInputOutput16: VkBool32
509 multiview: VkBool32
510 multiviewGeometryShader: VkBool32
511 multiviewTessellationShader: VkBool32
512 variablePointersStorageBuffer: VkBool32
513 variablePointers: VkBool32
514 protectedMemory: VkBool32
515 samplerYcbcrConversion: VkBool32
516 shaderDrawParameters: VkBool32
517
518
519@dataclass
520class VkPhysicalDeviceVulkan12Properties:
521 driverID: VkDriverId
522 driverName: str
523 driverInfo: str
524 conformanceVersion: ConformanceVersion
525 denormBehaviorIndependence: VkShaderFloatControlsIndependence
526 roundingModeIndependence: VkShaderFloatControlsIndependence
527 shaderSignedZeroInfNanPreserveFloat16: VkBool32
528 shaderSignedZeroInfNanPreserveFloat32: VkBool32
529 shaderSignedZeroInfNanPreserveFloat64: VkBool32
530 shaderDenormPreserveFloat16: VkBool32
531 shaderDenormPreserveFloat32: VkBool32
532 shaderDenormPreserveFloat64: VkBool32
533 shaderDenormFlushToZeroFloat16: VkBool32
534 shaderDenormFlushToZeroFloat32: VkBool32
535 shaderDenormFlushToZeroFloat64: VkBool32
536 shaderRoundingModeRTEFloat16: VkBool32
537 shaderRoundingModeRTEFloat32: VkBool32
538 shaderRoundingModeRTEFloat64: VkBool32
539 shaderRoundingModeRTZFloat16: VkBool32
540 shaderRoundingModeRTZFloat32: VkBool32
541 shaderRoundingModeRTZFloat64: VkBool32
542 maxUpdateAfterBindDescriptorsInAllPools: uint32_t
543 shaderUniformBufferArrayNonUniformIndexingNative: VkBool32
544 shaderSampledImageArrayNonUniformIndexingNative: VkBool32
545 shaderStorageBufferArrayNonUniformIndexingNative: VkBool32
546 shaderStorageImageArrayNonUniformIndexingNative: VkBool32
547 shaderInputAttachmentArrayNonUniformIndexingNative: VkBool32
548 robustBufferAccessUpdateAfterBind: VkBool32
549 quadDivergentImplicitLod: VkBool32
550 maxPerStageDescriptorUpdateAfterBindSamplers: uint32_t
551 maxPerStageDescriptorUpdateAfterBindUniformBuffers: uint32_t
552 maxPerStageDescriptorUpdateAfterBindStorageBuffers: uint32_t
553 maxPerStageDescriptorUpdateAfterBindSampledImages: uint32_t
554 maxPerStageDescriptorUpdateAfterBindStorageImages: uint32_t
555 maxPerStageDescriptorUpdateAfterBindInputAttachments: uint32_t
556 maxPerStageUpdateAfterBindResources: uint32_t
557 maxDescriptorSetUpdateAfterBindSamplers: uint32_t
558 maxDescriptorSetUpdateAfterBindUniformBuffers: uint32_t
559 maxDescriptorSetUpdateAfterBindUniformBuffersDynamic: uint32_t
560 maxDescriptorSetUpdateAfterBindStorageBuffers: uint32_t
561 maxDescriptorSetUpdateAfterBindStorageBuffersDynamic: uint32_t
562 maxDescriptorSetUpdateAfterBindSampledImages: uint32_t
563 maxDescriptorSetUpdateAfterBindStorageImages: uint32_t
564 maxDescriptorSetUpdateAfterBindInputAttachments: uint32_t
565 supportedDepthResolveModes: VkResolveModeFlags
566 supportedStencilResolveModes: VkResolveModeFlags
567 independentResolveNone: VkBool32
568 independentResolve: VkBool32
569 filterMinmaxSingleComponentFormats: VkBool32
570 filterMinmaxImageComponentMapping: VkBool32
571 maxTimelineSemaphoreValueDifference: uint64_t
572 framebufferIntegerColorSampleCounts: VkSampleCountFlags
573
574
575@dataclass
576class VkPhysicalDeviceVulkan12Features:
577 samplerMirrorClampToEdge: VkBool32
578 drawIndirectCount: VkBool32
579 storageBuffer8BitAccess: VkBool32
580 uniformAndStorageBuffer8BitAccess: VkBool32
581 storagePushConstant8: VkBool32
582 shaderBufferInt64Atomics: VkBool32
583 shaderSharedInt64Atomics: VkBool32
584 shaderFloat16: VkBool32
585 shaderInt8: VkBool32
586 descriptorIndexing: VkBool32
587 shaderInputAttachmentArrayDynamicIndexing: VkBool32
588 shaderUniformTexelBufferArrayDynamicIndexing: VkBool32
589 shaderStorageTexelBufferArrayDynamicIndexing: VkBool32
590 shaderUniformBufferArrayNonUniformIndexing: VkBool32
591 shaderSampledImageArrayNonUniformIndexing: VkBool32
592 shaderStorageBufferArrayNonUniformIndexing: VkBool32
593 shaderStorageImageArrayNonUniformIndexing: VkBool32
594 shaderInputAttachmentArrayNonUniformIndexing: VkBool32
595 shaderUniformTexelBufferArrayNonUniformIndexing: VkBool32
596 shaderStorageTexelBufferArrayNonUniformIndexing: VkBool32
597 descriptorBindingUniformBufferUpdateAfterBind: VkBool32
598 descriptorBindingSampledImageUpdateAfterBind: VkBool32
599 descriptorBindingStorageImageUpdateAfterBind: VkBool32
600 descriptorBindingStorageBufferUpdateAfterBind: VkBool32
601 descriptorBindingUniformTexelBufferUpdateAfterBind: VkBool32
602 descriptorBindingStorageTexelBufferUpdateAfterBind: VkBool32
603 descriptorBindingUpdateUnusedWhilePending: VkBool32
604 descriptorBindingPartiallyBound: VkBool32
605 descriptorBindingVariableDescriptorCount: VkBool32
606 runtimeDescriptorArray: VkBool32
607 samplerFilterMinmax: VkBool32
608 scalarBlockLayout: VkBool32
609 imagelessFramebuffer: VkBool32
610 uniformBufferStandardLayout: VkBool32
611 shaderSubgroupExtendedTypes: VkBool32
612 separateDepthStencilLayouts: VkBool32
613 hostQueryReset: VkBool32
614 timelineSemaphore: VkBool32
615 bufferDeviceAddress: VkBool32
616 bufferDeviceAddressCaptureReplay: VkBool32
617 bufferDeviceAddressMultiDevice: VkBool32
618 vulkanMemoryModel: VkBool32
619 vulkanMemoryModelDeviceScope: VkBool32
620 vulkanMemoryModelAvailabilityVisibilityChains: VkBool32
621 shaderOutputViewportIndex: VkBool32
622 shaderOutputLayer: VkBool32
623 subgroupBroadcastDynamicId: VkBool32
624
625
626@dataclass
627class VkPhysicalDeviceVulkan13Properties:
628 minSubgroupSize: uint32_t
629 maxSubgroupSize: uint32_t
630 maxComputeWorkgroupSubgroups: uint32_t
631 requiredSubgroupSizeStages: VkShaderStageFlags
632 maxInlineUniformBlockSize: uint32_t
633 maxPerStageDescriptorInlineUniformBlocks: uint32_t
634 maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks: uint32_t
635 maxDescriptorSetInlineUniformBlocks: uint32_t
636 maxDescriptorSetUpdateAfterBindInlineUniformBlocks: uint32_t
637 maxInlineUniformTotalSize: uint32_t
638 integerDotProduct8BitUnsignedAccelerated: VkBool32
639 integerDotProduct8BitSignedAccelerated: VkBool32
640 integerDotProduct8BitMixedSignednessAccelerated: VkBool32
641 integerDotProduct4x8BitPackedUnsignedAccelerated: VkBool32
642 integerDotProduct4x8BitPackedSignedAccelerated: VkBool32
643 integerDotProduct4x8BitPackedMixedSignednessAccelerated: VkBool32
644 integerDotProduct16BitUnsignedAccelerated: VkBool32
645 integerDotProduct16BitSignedAccelerated: VkBool32
646 integerDotProduct16BitMixedSignednessAccelerated: VkBool32
647 integerDotProduct32BitUnsignedAccelerated: VkBool32
648 integerDotProduct32BitSignedAccelerated: VkBool32
649 integerDotProduct32BitMixedSignednessAccelerated: VkBool32
650 integerDotProduct64BitUnsignedAccelerated: VkBool32
651 integerDotProduct64BitSignedAccelerated: VkBool32
652 integerDotProduct64BitMixedSignednessAccelerated: VkBool32
653 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated: VkBool32
654 integerDotProductAccumulatingSaturating8BitSignedAccelerated: VkBool32
655 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated: VkBool32
656 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated: VkBool32
657 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated: VkBool32
658 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated: VkBool32
659 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated: VkBool32
660 integerDotProductAccumulatingSaturating16BitSignedAccelerated: VkBool32
661 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated: VkBool32
662 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated: VkBool32
663 integerDotProductAccumulatingSaturating32BitSignedAccelerated: VkBool32
664 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated: VkBool32
665 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated: VkBool32
666 integerDotProductAccumulatingSaturating64BitSignedAccelerated: VkBool32
667 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated: VkBool32
668 storageTexelBufferOffsetAlignmentBytes: VkDeviceSize
669 storageTexelBufferOffsetSingleTexelAlignment: VkBool32
670 uniformTexelBufferOffsetAlignmentBytes: VkDeviceSize
671 uniformTexelBufferOffsetSingleTexelAlignment: VkBool32
672 maxBufferSize: VkDeviceSize
673
674
675@dataclass
676class VkPhysicalDeviceVulkan13Features:
677 robustImageAccess: VkBool32
678 inlineUniformBlock: VkBool32
679 descriptorBindingInlineUniformBlockUpdateAfterBind: VkBool32
680 pipelineCreationCacheControl: VkBool32
681 privateData: VkBool32
682 shaderDemoteToHelperInvocation: VkBool32
683 shaderTerminateInvocation: VkBool32
684 subgroupSizeControl: VkBool32
685 computeFullSubgroups: VkBool32
686 synchronization2: VkBool32
687 textureCompressionASTC_HDR: VkBool32
688 shaderZeroInitializeWorkgroupMemory: VkBool32
689 dynamicRendering: VkBool32
690 shaderIntegerDotProduct: VkBool32
691 maintenance4: VkBool32
692
693
694@dataclass
695class VkPhysicalDeviceVulkan14Properties:
696 lineSubPixelPrecisionBits: uint32_t
697 maxVertexAttribDivisor: uint32_t
698 supportsNonZeroFirstInstance: VkBool32
699 maxPushDescriptors: uint32_t
700 dynamicRenderingLocalReadDepthStencilAttachments: VkBool32
701 dynamicRenderingLocalReadMultisampledAttachments: VkBool32
702 earlyFragmentMultisampleCoverageAfterSampleCounting: VkBool32
703 earlyFragmentSampleMaskTestBeforeSampleCounting: VkBool32
704 depthStencilSwizzleOneSupport: VkBool32
705 polygonModePointSize: VkBool32
706 nonStrictSinglePixelWideLinesUseParallelogram: VkBool32
707 nonStrictWideLinesUseParallelogram: VkBool32
708 blockTexelViewCompatibleMultipleLayers: VkBool32
709 maxCombinedImageSamplerDescriptorCount: uint32_t
710 fragmentShadingRateClampCombinerInputs: VkBool32
711 defaultRobustnessStorageBuffers: VkPipelineRobustnessBufferBehavior
712 defaultRobustnessUniformBuffers: VkPipelineRobustnessBufferBehavior
713 defaultRobustnessVertexInputs: VkPipelineRobustnessBufferBehavior
714 defaultRobustnessImages: VkPipelineRobustnessBufferBehavior
715 copySrcLayoutCount: uint32_t
716 pCopySrcLayouts: List[VkImageLayout]
717 copyDstLayoutCount: uint32_t
718 pCopyDstLayouts: List[VkImageLayout]
719 optimalTilingLayoutUUID: uint8_t
720 identicalMemoryTypeRequirements: VkBool32
721
722
723@dataclass
724class VkPhysicalDeviceVulkan14Features:
725 globalPriorityQuery: VkBool32
726 shaderSubgroupRotate: VkBool32
727 shaderSubgroupRotateClustered: VkBool32
728 shaderFloatControls2: VkBool32
729 shaderExpectAssume: VkBool32
730 rectangularLines: VkBool32
731 bresenhamLines: VkBool32
732 smoothLines: VkBool32
733 stippledRectangularLines: VkBool32
734 stippledBresenhamLines: VkBool32
735 stippledSmoothLines: VkBool32
736 vertexAttributeInstanceRateDivisor: VkBool32
737 vertexAttributeInstanceRateZeroDivisor: VkBool32
738 indexTypeUint8: VkBool32
739 dynamicRenderingLocalRead: VkBool32
740 maintenance5: VkBool32
741 maintenance6: VkBool32
742 pipelineProtectedAccess: VkBool32
743 pipelineRobustness: VkBool32
744 hostImageCopy: VkBool32
Nikita Guptaa6962e82025-03-26 11:18:33 +0000745 pushDescriptor: VkBool32
Nikita Guptaea29e902025-03-11 06:49:30 -0700746
747
748@dataclass
749class VkPhysicalDeviceDriverProperties:
750 driverID: VkDriverId
751 driverName: str
752 driverInfo: str
753 conformanceVersion: ConformanceVersion
754
755# Defining alias for structures
756VkPhysicalDeviceLineRasterizationFeaturesEXT = VkPhysicalDeviceLineRasterizationFeatures
757VkPhysicalDeviceLineRasterizationFeaturesKHR = VkPhysicalDeviceLineRasterizationFeatures
758VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR = VkPhysicalDeviceShaderIntegerDotProductFeatures
759VkPhysicalDevice8BitStorageFeaturesKHR = VkPhysicalDevice8BitStorageFeatures
760VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures
761VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR = VkPhysicalDeviceVertexAttributeDivisorFeatures
762VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT = VkPhysicalDeviceVertexAttributeDivisorFeatures
763VkPhysicalDeviceIndexTypeUint8FeaturesKHR = VkPhysicalDeviceIndexTypeUint8Features
764VkPhysicalDeviceIndexTypeUint8FeaturesEXT = VkPhysicalDeviceIndexTypeUint8Features
765VkPhysicalDeviceVariablePointerFeatures = VkPhysicalDeviceVariablePointersFeatures
766VkPhysicalDeviceVariablePointersFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures
767VkPhysicalDeviceVariablePointerFeaturesKHR = VkPhysicalDeviceVariablePointersFeatures
768VkPhysicalDeviceFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features
769VkPhysicalDeviceShaderFloat16Int8FeaturesKHR = VkPhysicalDeviceShaderFloat16Int8Features
770VkPhysicalDeviceFloatControlsPropertiesKHR = VkPhysicalDeviceFloatControlsProperties
771VkPhysicalDeviceShaderDrawParametersFeatures = VkPhysicalDeviceShaderDrawParameterFeatures
772VkPhysicalDeviceDriverPropertiesKHR = VkPhysicalDeviceDriverProperties
773
774# Defining dependency of structures on extensions
775VULKAN_EXTENSIONS_AND_STRUCTS_MAPPING = {
776 "extensions": {
777 "VK_KHR_variable_pointers": [
778 { "VkPhysicalDeviceVariablePointerFeaturesKHR": "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES" },
779 { "VkPhysicalDeviceVariablePointersFeaturesKHR" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES"},
780 ],
781 "VK_KHR_shader_float16_int8": [
782 { "VkPhysicalDeviceShaderFloat16Int8FeaturesKHR": "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES" },
783 {"VkPhysicalDeviceFloat16Int8FeaturesKHR" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES"},
784 ],
785 "VK_EXT_image_2d_view_of_3d" : [
786 {"VkPhysicalDeviceImage2DViewOf3DFeaturesEXT" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT"},
787 ],
788 "VK_EXT_custom_border_color" : [
789 {"VkPhysicalDeviceCustomBorderColorFeaturesEXT" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT"},
790 ],
791 "VK_EXT_primitive_topology_list_restart": [
792 {"VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT"},
793 ],
794 "VK_EXT_provoking_vertex" : [
795 {"VkPhysicalDeviceProvokingVertexFeaturesEXT" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT"},
796 ],
797 "VK_KHR_index_type_uint8" : [
798 {"VkPhysicalDeviceIndexTypeUint8FeaturesKHR" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES"},
799 ],
800 "VK_EXT_index_type_uint8" : [
801 {"VkPhysicalDeviceIndexTypeUint8FeaturesEXT" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES"},
802 ],
803 "VK_KHR_vertex_attribute_divisor" : [
804 {"VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES"},
805 ],
806 "VK_EXT_vertex_attribute_divisor" : [
807 {"VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES"},
808 ],
809 "VK_EXT_transform_feedback" : [
810 {"VkPhysicalDeviceTransformFeedbackFeaturesEXT" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT"},
811 ],
812 "VK_KHR_shader_subgroup_uniform_control_flow" : [
813 {"VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR"},
814 ],
815 "VK_KHR_shader_subgroup_extended_types" : [
816 {"VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES"},
817 ],
818 "VK_KHR_8bit_storage" : [
819 {"VkPhysicalDevice8BitStorageFeaturesKHR" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES"},
820 ],
821 "VK_KHR_shader_integer_dot_product" : [
822 {"VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES"},
823 ],
824 "VK_IMG_relaxed_line_rasterization" : [
825 {"VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG"},
826 ],
827 "VK_KHR_line_rasterization" : [
828 {"VkPhysicalDeviceLineRasterizationFeaturesKHR" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES"},
829 ],
830 "VK_EXT_line_rasterization" : [
831 {"VkPhysicalDeviceLineRasterizationFeaturesEXT" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES"},
832 ],
833 "VK_EXT_primitives_generated_query" : [
834 {"VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT"},
835 ],
836 "VK_KHR_shader_float_controls" : [
837 {"VkPhysicalDeviceFloatControlsPropertiesKHR" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES"},
838 ],
839 "VK_KHR_driver_properties" : [
840 {"VkPhysicalDeviceDriverPropertiesKHR" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES"},
841 ]
842 }
843}
844
845# Defining dependency of structures on vulkan cores
846VULKAN_CORES_AND_STRUCTS_MAPPING = {
847 "versions" : {
848 "Core11" : [
849 {"VkPhysicalDeviceVulkan11Properties" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES"},
850 {"VkPhysicalDeviceVulkan11Features" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES"},
851 ],
852 "Core12" : [
853 {"VkPhysicalDeviceVulkan12Properties" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES"},
854 {"VkPhysicalDeviceVulkan12Features" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES"},
855 ],
856 "Core13" : [
857 {"VkPhysicalDeviceVulkan13Properties" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES"},
858 {"VkPhysicalDeviceVulkan13Features" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES"},
859 ],
860 "Core14" : [
861 {"VkPhysicalDeviceVulkan14Properties" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES"},
862 {"VkPhysicalDeviceVulkan14Features" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES"},
863 ]
864 }
865}
866
867# Defining map for list type members mapped to its size
868LIST_TYPE_FIELD_AND_SIZE_MAPPING = {
869 "pCopySrcLayouts": "copySrcLayoutCount",
870 "pCopyDstLayouts": "copyDstLayoutCount",
871 "memoryTypes": "memoryTypeCount",
872 "memoryHeaps": "memoryHeapCount",
873}
874
875# Defining dependency of structures on vulkan api version
876VULKAN_VERSIONS_AND_STRUCTS_MAPPING = {
877 "VK_VERSION_1_0" : [
878 {"VkPhysicalDeviceProperties" : "" },
879 {"VkPhysicalDeviceFeatures" : ""},
880 {"VkPhysicalDeviceMemoryProperties" : ""},
881 ],
882 "VK_VERSION_1_1" : [
883 {"VkPhysicalDeviceSubgroupProperties" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES"},
884 {"VkPhysicalDevicePointClippingProperties" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES"},
885 {"VkPhysicalDeviceMultiviewProperties" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES"},
886 {"VkPhysicalDeviceIDProperties" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES"},
887 {"VkPhysicalDeviceMaintenance3Properties" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES"},
888 {"VkPhysicalDeviceMultiviewFeatures" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES"},
889 {"VkPhysicalDeviceVariablePointersFeatures" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES"},
890 {"VkPhysicalDeviceProtectedMemoryFeatures" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES"},
891 {"VkPhysicalDeviceSamplerYcbcrConversionFeatures" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES"},
892 {"VkPhysicalDeviceShaderDrawParameterFeatures" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES"},
893 {"VkPhysicalDevice16BitStorageFeatures" : "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES"},
894 ]
895}
896
897# List of structures that are not dependent on extensions
898EXTENSION_INDEPENDENT_STRUCTS = [
899 VkPhysicalDeviceProperties,
900 VkPhysicalDeviceFeatures,
901 VkPhysicalDeviceMemoryProperties,
902 VkPhysicalDeviceSubgroupProperties,
903 VkPhysicalDevicePointClippingProperties,
904 VkPhysicalDeviceMultiviewProperties,
905 VkPhysicalDeviceIDProperties,
906 VkPhysicalDeviceMaintenance3Properties,
907 VkPhysicalDevice16BitStorageFeatures,
908 VkPhysicalDeviceMultiviewFeatures,
909 VkPhysicalDeviceVariablePointersFeatures,
910 VkPhysicalDeviceProtectedMemoryFeatures,
911 VkPhysicalDeviceSamplerYcbcrConversionFeatures,
912 VkPhysicalDeviceShaderDrawParameterFeatures,
913]
914
915# List of all the structures for vkjson
916ALL_STRUCTS = [
917 VkPhysicalDeviceFloatControlsPropertiesKHR,
918 VkPhysicalDeviceProperties,
919 VkPhysicalDeviceMemoryProperties,
920 VkPhysicalDeviceSubgroupProperties,
921 VkPhysicalDevicePointClippingProperties,
922 VkPhysicalDeviceMultiviewProperties,
923 VkPhysicalDeviceIDProperties,
924 VkPhysicalDeviceMaintenance3Properties,
925 VkPhysicalDeviceSparseProperties,
926 VkImageFormatProperties,
927 VkQueueFamilyProperties,
928 VkExtensionProperties,
929 VkLayerProperties,
930 VkFormatProperties,
931 VkPhysicalDeviceVariablePointerFeaturesKHR,
932 VkPhysicalDeviceVariablePointersFeaturesKHR,
933 VkPhysicalDeviceShaderFloat16Int8FeaturesKHR,
934 VkPhysicalDeviceFloat16Int8FeaturesKHR,
935 VkPhysicalDeviceImage2DViewOf3DFeaturesEXT,
936 VkPhysicalDeviceCustomBorderColorFeaturesEXT,
937 VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT,
938 VkPhysicalDeviceProvokingVertexFeaturesEXT,
939 VkPhysicalDeviceIndexTypeUint8FeaturesKHR,
940 VkPhysicalDeviceIndexTypeUint8FeaturesEXT,
941 VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR,
942 VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT,
943 VkPhysicalDeviceTransformFeedbackFeaturesEXT,
944 VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR,
945 VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR,
946 VkPhysicalDevice8BitStorageFeaturesKHR,
947 VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR,
948 VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG,
949 VkPhysicalDeviceLineRasterizationFeaturesKHR,
950 VkPhysicalDeviceLineRasterizationFeaturesEXT,
951 VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT,
952 VkPhysicalDevice16BitStorageFeatures,
953 VkPhysicalDeviceMultiviewFeatures,
954 VkPhysicalDeviceProtectedMemoryFeatures,
955 VkPhysicalDeviceSamplerYcbcrConversionFeatures,
956 VkPhysicalDeviceShaderDrawParameterFeatures,
957 VkPhysicalDeviceLimits,
958 VkPhysicalDeviceFeatures,
959 VkPhysicalDeviceVulkan11Properties,
960 VkPhysicalDeviceVulkan11Features,
961 VkPhysicalDeviceVulkan12Properties,
962 VkPhysicalDeviceVulkan12Features,
963 VkPhysicalDeviceVulkan13Properties,
964 VkPhysicalDeviceVulkan13Features,
965 VkPhysicalDeviceVulkan14Properties,
966 VkPhysicalDeviceVulkan14Features,
967 VkPhysicalDeviceDriverProperties,
968]