annotate fuhtark_test/Vulkan-Headers-1.4.334/registry/vulkan_object.py @ 1501:f40d9d814c08 default tip main

did: correct vulkan-api generator
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 23:34:29 +0700
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1501
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
1 #!/usr/bin/env python3 -i
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
2 #
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
3 # Copyright 2023-2025 The Khronos Group Inc.
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
4 #
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
5 # SPDX-License-Identifier: Apache-2.0
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
6
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
7 from dataclasses import dataclass, field
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
8 from enum import IntFlag, Enum, auto
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
9
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
10 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
11 class FeatureRequirement:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
12 """Each instance of FeatureRequirement is one part of the AND operation,
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
13 unless the struct/field are the same, then the depends are AND togethered"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
14 struct: str
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
15 field: str # Can have comma delimiter, which are expressed as OR
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
16 depends: (str | None) # ex) "VK_EXT_descriptor_indexing", "VK_VERSION_1_2+VkPhysicalDeviceVulkan12Features::descriptorIndexing"
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
17
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
18 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
19 class Extension:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
20 """<extension>"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
21 name: str # ex) VK_KHR_SURFACE
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
22 nameString: str # marco with string, ex) VK_KHR_SURFACE_EXTENSION_NAME
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
23 specVersion: str # marco with string, ex) VK_KHR_SURFACE_SPEC_VERSION
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
24
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
25 # Only one will be True, the other is False
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
26 instance: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
27 device: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
28
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
29 depends: (str | None)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
30 vendorTag: (str | None) # ex) EXT, KHR, etc
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
31 platform: (str | None) # ex) android
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
32 protect: (str | None) # ex) VK_USE_PLATFORM_ANDROID_KHR
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
33 provisional: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
34 promotedTo: (str | None) # ex) VK_VERSION_1_1
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
35 deprecatedBy: (str | None)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
36 obsoletedBy: (str | None)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
37 specialUse: list[str]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
38 featureRequirement: list[FeatureRequirement]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
39 ratified: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
40
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
41 # These are here to allow for easy reverse lookups
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
42 # To prevent infinite recursion, other classes reference a string back to the Extension class
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
43 # Quotes allow us to forward declare the dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
44 handles: list['Handle'] = field(default_factory=list, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
45 commands: list['Command'] = field(default_factory=list, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
46 structs: list['Struct'] = field(default_factory=list, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
47 enums: list['Enum'] = field(default_factory=list, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
48 bitmasks: list['Bitmask'] = field(default_factory=list, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
49 flags: dict[str, list['Flags']] = field(default_factory=dict, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
50 # Use the Enum name to see what fields are extended
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
51 enumFields: dict[str, list['EnumField']] = field(default_factory=dict, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
52 # Use the Bitmask name to see what flag bits are added to it
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
53 flagBits: dict[str, list['Flag']] = field(default_factory=dict, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
54
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
55 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
56 class Version:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
57 """
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
58 <feature> which represents a version
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
59 This will NEVER be Version 1.0, since having 'no version' is same as being 1.0
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
60 """
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
61 name: str # ex) VK_VERSION_1_1
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
62 nameString: str # ex) "VK_VERSION_1_1" (no marco, so has quotes)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
63 nameApi: str # ex) VK_API_VERSION_1_1
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
64
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
65 featureRequirement: list[FeatureRequirement]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
66
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
67 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
68 class Legacy:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
69 """<deprecate>
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
70 For historical reasons, the XML tag is "deprecate" but we decided in the WG to not use that as the public facing name
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
71 """
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
72 link: (str | None) # Spec URL Anchor - ex) legacy-dynamicrendering
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
73 version: (Version | None)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
74 extensions: list[str]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
75
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
76 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
77 class Handle:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
78 """<type> which represents a dispatch handle"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
79 name: str # ex) VkBuffer
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
80 aliases: list[str] # ex) ['VkSamplerYcbcrConversionKHR']
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
81
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
82 type: str # ex) VK_OBJECT_TYPE_BUFFER
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
83 protect: (str | None) # ex) VK_USE_PLATFORM_ANDROID_KHR
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
84
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
85 parent: 'Handle' # Chain of parent handles, can be None
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
86
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
87 # Only one will be True, the other is False
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
88 instance: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
89 device: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
90
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
91 dispatchable: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
92
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
93 extensions: list[str] # All extensions that enable the handle
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
94
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
95 def __lt__(self, other):
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
96 return self.name < other.name
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
97
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
98 class ExternSync(Enum):
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
99 NONE = auto() # no externsync attribute
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
100 ALWAYS = auto() # externsync="true"
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
101 MAYBE = auto() # externsync="maybe"
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
102 SUBTYPE = auto() # externsync="param->member"
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
103 SUBTYPE_MAYBE = auto() # externsync="maybe:param->member"
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
104
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
105 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
106 class Param:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
107 """<command/param>"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
108 name: str # ex) pCreateInfo, pAllocator, pBuffer
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
109 alias: str
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
110
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
111 # the "base type" - will not preserve the 'const' or pointer info
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
112 # ex) void, uint32_t, VkFormat, VkBuffer, etc
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
113 type: str
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
114 # the "full type" - will be cDeclaration without the type name
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
115 # ex) const void*, uint32_t, const VkFormat, VkBuffer*, etc
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
116 # For arrays, this will only display the type, fixedSizeArray can be used to get the length
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
117 fullType: str
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
118
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
119 noAutoValidity: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
120
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
121 const: bool # type contains 'const'
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
122 length: (str | None) # the known length of pointer, will never be 'null-terminated'
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
123 nullTerminated: bool # If a UTF-8 string, it will be null-terminated
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
124 pointer: bool # type contains a pointer (include 'PFN' function pointers)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
125 # Used to list how large an array of the type is
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
126 # ex) lineWidthRange is ['2']
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
127 # ex) memoryTypes is ['VK_MAX_MEMORY_TYPES']
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
128 # ex) VkTransformMatrixKHR:matrix is ['3', '4']
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
129 fixedSizeArray: list[str]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
130
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
131 optional: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
132 optionalPointer: bool # if type contains a pointer, is the pointer value optional
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
133
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
134 externSync: ExternSync
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
135 externSyncPointer: (str | None) # if type contains a pointer (externSync is SUBTYPE*),
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
136 # only a specific member is externally synchronized.
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
137
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
138 # C string of member, example:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
139 # - const void* pNext
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
140 # - VkFormat format
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
141 # - VkStructureType sType
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
142 cDeclaration: str
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
143
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
144 def __lt__(self, other):
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
145 return self.name < other.name
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
146
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
147 class CommandScope(Enum):
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
148 NONE = auto()
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
149 INSIDE = auto()
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
150 OUTSIDE = auto()
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
151 BOTH = auto()
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
152
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
153 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
154 class Command:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
155 """<command>"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
156 name: str # ex) vkCmdDraw
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
157 alias: (str | None) # Because commands are interfaces into layers/drivers, we need all command alias
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
158 protect: (str | None) # ex) 'VK_ENABLE_BETA_EXTENSIONS'
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
159
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
160 extensions: list[str] # All extensions that enable the struct
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
161 version: (Version | None) # None if Version 1.0
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
162
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
163 returnType: str # ex) void, VkResult, etc
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
164
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
165 params: list[Param] # Each parameter of the command
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
166
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
167 # Only one will be True, the other is False
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
168 instance: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
169 device: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
170
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
171 tasks: list[str] # ex) [ action, state, synchronization ]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
172 queues: list[str] # ex) [ VK_QUEUE_GRAPHICS_BIT, VK_QUEUE_COMPUTE_BIT ]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
173 allowNoQueues: bool # VK_KHR_maintenance9 allows some calls to be done with zero queues
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
174 successCodes: list[str] # ex) [ VK_SUCCESS, VK_INCOMPLETE ]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
175 errorCodes: list[str] # ex) [ VK_ERROR_OUT_OF_HOST_MEMORY ]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
176
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
177 # Shows support if command can be in a primary and/or secondary command buffer
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
178 primary: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
179 secondary: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
180
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
181 renderPass: CommandScope
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
182 videoCoding: CommandScope
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
183
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
184 implicitExternSyncParams: list[str]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
185
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
186 legacy: (Legacy | None)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
187
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
188 # C prototype string - ex:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
189 # VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
190 # const VkInstanceCreateInfo* pCreateInfo,
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
191 # const VkAllocationCallbacks* pAllocator,
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
192 # VkInstance* pInstance);
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
193 cPrototype: str
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
194
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
195 # function pointer typedef - ex:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
196 # typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
197 # (const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
198 cFunctionPointer: str
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
199
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
200 def __lt__(self, other):
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
201 return self.name < other.name
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
202
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
203 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
204 class Member:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
205 """<member>"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
206 name: str # ex) sType, pNext, flags, size, usage
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
207
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
208 # the "base type" - will not preserve the 'const' or pointer info
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
209 # ex) void, uint32_t, VkFormat, VkBuffer, etc
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
210 type: str
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
211 # the "full type" - will be cDeclaration without the type name
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
212 # ex) const void*, uint32_t, const VkFormat, VkBuffer*, etc
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
213 # For arrays, this will only display the type, fixedSizeArray can be used to get the length
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
214 fullType: str
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
215
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
216 noAutoValidity: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
217 limitType: (str | None) # ex) 'max', 'bitmask', 'bits', 'min,mul'
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
218
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
219 const: bool # type contains 'const'
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
220 length: (str | None) # the known length of pointer, will never be 'null-terminated'
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
221 nullTerminated: bool # If a UTF-8 string, it will be null-terminated
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
222 pointer: bool # type contains a pointer (include 'PFN' function pointers)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
223 # Used to list how large an array of the type is
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
224 # ex) lineWidthRange is ['2']
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
225 # ex) memoryTypes is ['VK_MAX_MEMORY_TYPES']
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
226 # ex) VkTransformMatrixKHR:matrix is ['3', '4']
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
227 fixedSizeArray: list[str]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
228
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
229 optional: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
230 optionalPointer: bool # if type contains a pointer, is the pointer value optional
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
231
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
232 externSync: ExternSync
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
233
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
234 # C string of member, example:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
235 # - const void* pNext
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
236 # - VkFormat format
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
237 # - VkStructureType sType
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
238 cDeclaration: str
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
239
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
240 bitFieldWidth: (int | None) # bit width (only for bit field struct members)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
241
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
242 # Selector for the union, this type determines the used data type in the union
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
243 selector: (str | None)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
244 # Valid selections for the union member
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
245 selection: list[str]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
246
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
247 def __lt__(self, other):
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
248 return self.name < other.name
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
249
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
250 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
251 class Struct:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
252 """<type category="struct"> or <type category="union">"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
253 name: str # ex) VkImageSubresource2
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
254 aliases: list[str] # ex) ['VkImageSubresource2KHR', 'VkImageSubresource2EXT']
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
255
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
256 extensions: list[str] # All extensions that enable the struct
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
257 version: (Version | None) # None if Version 1.0
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
258 protect: (str | None) # ex) VK_ENABLE_BETA_EXTENSIONS
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
259
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
260 members: list[Member]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
261
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
262 union: bool # Unions are just a subset of a Structs
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
263 returnedOnly: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
264
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
265 sType: (str | None) # ex) VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
266 allowDuplicate: bool # can have a pNext point to itself
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
267
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
268 # These use to be list['Struct'] but some circular loops occur and cause
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
269 # pydevd warnings and made debugging slow (30 seconds to index a Struct)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
270 extends: list[str] # Struct names that this struct extends
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
271 extendedBy: list[str] # Struct names that can be extended by this struct
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
272
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
273 # This field is only set for enum definitions coming from Video Std headers
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
274 videoStdHeader: (str | None) = None
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
275
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
276 def __lt__(self, other):
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
277 return self.name < other.name
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
278
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
279 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
280 class EnumField:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
281 """<enum> of type enum"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
282 name: str # ex) VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
283 aliases: list[str] # ex) ['VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT']
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
284
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
285 protect: (str | None) # ex) VK_ENABLE_BETA_EXTENSIONS
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
286
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
287 negative: bool # True if negative values are allowed (ex. VkResult)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
288 value: int
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
289 valueStr: str # value as shown in spec (ex. "0", "2", "1000267000", "0x00000004")
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
290
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
291 # some fields are enabled from 2 extensions (ex) VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
292 extensions: list[str] # None if part of 1.0 core
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
293
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
294 def __lt__(self, other):
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
295 return self.name < other.name
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
296
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
297 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
298 class Enum:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
299 """<enums> of type enum"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
300 name: str # ex) VkLineRasterizationMode
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
301 aliases: list[str] # ex) ['VkLineRasterizationModeKHR', 'VkLineRasterizationModeEXT']
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
302
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
303 protect: (str | None) # ex) VK_ENABLE_BETA_EXTENSIONS
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
304
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
305 bitWidth: int # 32 or 64 (currently all are 32, but field is to match with Bitmask)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
306 returnedOnly: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
307
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
308 fields: list[EnumField]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
309
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
310 extensions: list[str] # None if part of 1.0 core
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
311 # Unique list of all extension that are involved in 'fields' (superset of 'extensions')
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
312 fieldExtensions: list[str]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
313
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
314 # This field is only set for enum definitions coming from Video Std headers
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
315 videoStdHeader: (str | None) = None
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
316
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
317 def __lt__(self, other):
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
318 return self.name < other.name
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
319
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
320 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
321 class Flag:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
322 """<enum> of type bitmask"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
323 name: str # ex) VK_ACCESS_2_SHADER_READ_BIT
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
324 aliases: str # ex) ['VK_ACCESS_2_SHADER_READ_BIT_KHR']
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
325
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
326 protect: (str | None) # ex) VK_ENABLE_BETA_EXTENSIONS
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
327
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
328 value: int
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
329 valueStr: str # value as shown in spec (ex. 0x00000000", "0x00000004", "0x0000000F", "0x800000000ULL")
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
330 multiBit: bool # if true, more than one bit is set (ex) VK_SHADER_STAGE_ALL_GRAPHICS)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
331 zero: bool # if true, the value is zero (ex) VK_PIPELINE_STAGE_NONE)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
332
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
333 # some fields are enabled from 2 extensions (ex) VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
334 extensions: list[str] # None if part of 1.0 core
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
335
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
336 def __lt__(self, other):
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
337 return self.name < other.name
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
338
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
339 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
340 class Bitmask:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
341 """<enums> of type bitmask"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
342 name: str # ex) VkAccessFlagBits2
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
343 aliases: list[str] # ex) ['VkAccessFlagBits2KHR']
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
344
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
345 flagName: str # ex) VkAccessFlags2
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
346 protect: (str | None) # ex) VK_ENABLE_BETA_EXTENSIONS
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
347
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
348 bitWidth: int # 32 or 64
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
349 returnedOnly: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
350
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
351 flags: list[Flag]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
352
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
353 extensions: list[str] # None if part of 1.0 core
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
354 # Unique list of all extension that are involved in 'flag' (superset of 'extensions')
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
355 flagExtensions: list[str]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
356
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
357 def __lt__(self, other):
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
358 return self.name < other.name
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
359
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
360 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
361 class Flags:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
362 """<type> defining flags types"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
363 name: str # ex) VkAccessFlags2
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
364 aliases: list[str] # ex) [`VkAccessFlags2KHR`]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
365
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
366 bitmaskName: (str | None) # ex) VkAccessFlagBits2
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
367 protect: (str | None) # ex) VK_ENABLE_BETA_EXTENSIONS
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
368
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
369 baseFlagsType: str # ex) VkFlags
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
370 bitWidth: int # 32 or 64
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
371 returnedOnly: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
372
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
373 extensions: list[str] # None if part of 1.0 core
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
374
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
375 def __lt__(self, other):
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
376 return self.name < other.name
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
377
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
378 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
379 class Constant:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
380 name: str # ex) VK_UUID_SIZE
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
381 type: str # ex) uint32_t, float
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
382 value: (int | float)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
383 valueStr: str # value as shown in spec (ex. "(~0U)", "256U", etc)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
384
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
385 # This field is only set for enum definitions coming from Video Std headers
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
386 videoStdHeader: (str | None) = None
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
387
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
388 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
389 class FormatComponent:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
390 """<format/component>"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
391 type: str # ex) R, G, B, A, D, S, etc
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
392 bits: str # will be an INT or 'compressed'
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
393 numericFormat: str # ex) UNORM, SINT, etc
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
394 planeIndex: (int | None) # None if no planeIndex in format
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
395
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
396 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
397 class FormatPlane:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
398 """<format/plane>"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
399 index: int
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
400 widthDivisor: int
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
401 heightDivisor: int
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
402 compatible: str
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
403
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
404 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
405 class Format:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
406 """<format>"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
407 name: str
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
408 className: str
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
409 blockSize: int
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
410 texelsPerBlock: int
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
411 blockExtent: list[str]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
412 packed: (int | None) # None == not-packed
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
413 chroma: (str | None)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
414 compressed: (str | None)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
415 components: list[FormatComponent] # <format/component>
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
416 planes: list[FormatPlane] # <format/plane>
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
417 spirvImageFormat: (str | None)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
418
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
419 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
420 class SyncSupport:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
421 """<syncsupport>"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
422 queues: list[str] # ex) [ VK_QUEUE_GRAPHICS_BIT, VK_QUEUE_COMPUTE_BIT ]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
423 stages: list[Flag] # VkPipelineStageFlagBits2
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
424 max: bool # If this supports max values
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
425
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
426 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
427 class SyncEquivalent:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
428 """<syncequivalent>"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
429 stages: list[Flag] # VkPipelineStageFlagBits2
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
430 accesses: list[Flag] # VkAccessFlagBits2
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
431 max: bool # If this equivalent to everything
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
432
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
433 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
434 class SyncStage:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
435 """<syncstage>"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
436 flag: Flag # VkPipelineStageFlagBits2
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
437 support: SyncSupport
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
438 equivalent: SyncEquivalent
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
439
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
440 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
441 class SyncAccess:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
442 """<syncaccess>"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
443 flag: Flag # VkAccessFlagBits2
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
444 support: SyncSupport
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
445 equivalent: SyncEquivalent
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
446
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
447 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
448 class SyncPipelineStage:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
449 """<syncpipelinestage>"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
450 order: (str | None)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
451 before: (str | None)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
452 after: (str | None)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
453 value: str
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
454
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
455 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
456 class SyncPipeline:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
457 """<syncpipeline>"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
458 name: str
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
459 depends: list[str]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
460 stages: list[SyncPipelineStage]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
461
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
462 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
463 class SpirvEnables:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
464 """What is needed to enable the SPIR-V element"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
465 version: (str | None)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
466 extension: (str | None)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
467 struct: (str | None)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
468 feature: (str | None)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
469 requires: (str | None)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
470 property: (str | None)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
471 member: (str | None)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
472 value: (str | None)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
473
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
474 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
475 class Spirv:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
476 """<spirvextension> and <spirvcapability>"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
477 name: str
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
478 # Only one will be True, the other is False
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
479 extension: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
480 capability: bool
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
481 enable: list[SpirvEnables]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
482
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
483 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
484 class VideoRequiredCapabilities:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
485 """<videorequirecapabilities>"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
486 struct: str # ex) VkVideoEncodeCapabilitiesKHR
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
487 member: str # ex) flags
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
488 value: str # ex) VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
489 # may contain XML boolean expressions ("+" means AND, "," means OR)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
490
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
491 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
492 class VideoFormat:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
493 """<videoformat>"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
494 name: str # ex) Decode Output
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
495 usage: str # ex) VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
496 # may contain XML boolean expressions ("+" means AND, "," means OR)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
497
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
498 requiredCaps: list[VideoRequiredCapabilities]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
499 properties: dict[str, str]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
500
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
501 def __lt__(self, other):
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
502 return self.name < other.name
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
503
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
504 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
505 class VideoProfileMember:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
506 """<videoprofilemember> and <videoprofile>"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
507 name: str
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
508 # Video profile struct member (value attribute of <videoprofile>) value as key,
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
509 # profile name substring (name attribute of <videoprofile>) as value
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
510 values: dict[str, str]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
511
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
512 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
513 class VideoProfiles:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
514 """<videoprofiles>"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
515 name: str
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
516 members: dict[str, VideoProfileMember]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
517
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
518 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
519 class VideoCodec:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
520 """<videocodec>"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
521 name: str # ex) H.264 Decode
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
522 value: (str | None) # If no video codec operation flag bit is associated with the codec
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
523 # then it is a codec category (e.g. decode, encode), not a specific codec
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
524
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
525 profiles: dict[str, VideoProfiles]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
526 capabilities: dict[str, str]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
527 formats: dict[str, VideoFormat]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
528
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
529 def __lt__(self, other):
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
530 return self.name < other.name
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
531
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
532 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
533 class VideoStdHeader:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
534 """<extension> in video.xml"""
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
535 name: str # ex) vulkan_video_codec_h264std_decode
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
536 version: (str | None) # ex) VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
537 # None if it is a shared common Video Std header
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
538
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
539 headerFile: str # ex) vk_video/vulkan_video_codec_h264std_decode.h
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
540
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
541 # Other Video Std headers that this one depends on
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
542 depends: list[str]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
543
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
544 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
545 class VideoStd:
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
546 headers: dict[str, VideoStdHeader] = field(default_factory=dict, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
547
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
548 enums: dict[str, Enum] = field(default_factory=dict, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
549 structs: dict[str, Struct] = field(default_factory=dict, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
550 constants: dict[str, Constant] = field(default_factory=dict, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
551
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
552 # This is the global Vulkan Object that holds all the information from parsing the XML
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
553 # This class is designed so all generator scripts can use this to obtain data
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
554 @dataclass
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
555 class VulkanObject():
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
556 headerVersion: int = 0 # value of VK_HEADER_VERSION (ex. 345)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
557 headerVersionComplete: str = '' # value of VK_HEADER_VERSION_COMPLETE (ex. '1.2.345' )
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
558
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
559 extensions: dict[str, Extension] = field(default_factory=dict, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
560 versions: dict[str, Version] = field(default_factory=dict, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
561
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
562 handles: dict[str, Handle] = field(default_factory=dict, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
563 commands: dict[str, Command] = field(default_factory=dict, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
564 structs: dict[str, Struct] = field(default_factory=dict, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
565 enums: dict[str, Enum] = field(default_factory=dict, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
566 bitmasks: dict[str, Bitmask] = field(default_factory=dict, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
567 flags: dict[str, Flags] = field(default_factory=dict, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
568 constants: dict[str, Constant] = field(default_factory=dict, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
569 formats: dict[str, Format] = field(default_factory=dict, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
570
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
571 syncStage: list[SyncStage] = field(default_factory=list, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
572 syncAccess: list[SyncAccess] = field(default_factory=list, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
573 syncPipeline: list[SyncPipeline] = field(default_factory=list, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
574
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
575 spirv: list[Spirv] = field(default_factory=list, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
576
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
577 # ex) [ xlib : VK_USE_PLATFORM_XLIB_KHR ]
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
578 platforms: dict[str, str] = field(default_factory=dict, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
579 # list of all vendor Suffix names (KHR, EXT, etc. )
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
580 vendorTags: list[str] = field(default_factory=list, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
581
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
582 # Video codec information from the vk.xml
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
583 videoCodecs: dict[str, VideoCodec] = field(default_factory=dict, init=False)
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
584
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
585 # Video Std header information from the video.xml
f40d9d814c08 did: correct vulkan-api generator
sam <sam@basx.dev>
parents:
diff changeset
586 videoStd: (VideoStd | None) = None