• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1import 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
745  pushDescriptor: VkBool32
746
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]
969