/rust/git/checkouts/rspirv-9fded36b06ae76e7/89ce4d0/spirv/autogen_spirv.rs
Line | Count | Source |
1 | | // AUTOMATICALLY GENERATED from the SPIR-V JSON grammar: |
2 | | // external/spirv.core.grammar.json. |
3 | | // DO NOT MODIFY! |
4 | | |
5 | | pub type Word = u32; |
6 | | pub const MAGIC_NUMBER: u32 = 0x07230203; |
7 | | pub const MAJOR_VERSION: u8 = 1u8; |
8 | | pub const MINOR_VERSION: u8 = 6u8; |
9 | | pub const REVISION: u8 = 4u8; |
10 | | bitflags! { # [doc = "SPIR-V operand kind: [ImageOperands](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_image_operands_a_image_operands)"] # [derive (Clone , Copy , Debug , PartialEq , Eq , Hash)] # [cfg_attr (feature = "serialize" , derive (serde :: Serialize))] # [cfg_attr (feature = "deserialize" , derive (serde :: Deserialize))] pub struct ImageOperands : u32 { const NONE = 0u32 ; const BIAS = 1u32 ; const LOD = 2u32 ; const GRAD = 4u32 ; const CONST_OFFSET = 8u32 ; const OFFSET = 16u32 ; const CONST_OFFSETS = 32u32 ; const SAMPLE = 64u32 ; const MIN_LOD = 128u32 ; const MAKE_TEXEL_AVAILABLE = 256u32 ; const MAKE_TEXEL_VISIBLE = 512u32 ; const NON_PRIVATE_TEXEL = 1024u32 ; const VOLATILE_TEXEL = 2048u32 ; const SIGN_EXTEND = 4096u32 ; const ZERO_EXTEND = 8192u32 ; const NONTEMPORAL = 16384u32 ; const OFFSETS = 65536u32 ; } } |
11 | | bitflags! { # [doc = "SPIR-V operand kind: [FPFastMathMode](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_fp_fast_math_mode_a_fp_fast_math_mode)"] # [derive (Clone , Copy , Debug , PartialEq , Eq , Hash)] # [cfg_attr (feature = "serialize" , derive (serde :: Serialize))] # [cfg_attr (feature = "deserialize" , derive (serde :: Deserialize))] pub struct FPFastMathMode : u32 { const NONE = 0u32 ; const NOT_NAN = 1u32 ; const NOT_INF = 2u32 ; const NSZ = 4u32 ; const ALLOW_RECIP = 8u32 ; const FAST = 16u32 ; const ALLOW_CONTRACT = 65536u32 ; const ALLOW_REASSOC = 131072u32 ; const ALLOW_TRANSFORM = 262144u32 ; } } |
12 | | bitflags! { # [doc = "SPIR-V operand kind: [SelectionControl](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_selection_control_a_selection_control)"] # [derive (Clone , Copy , Debug , PartialEq , Eq , Hash)] # [cfg_attr (feature = "serialize" , derive (serde :: Serialize))] # [cfg_attr (feature = "deserialize" , derive (serde :: Deserialize))] pub struct SelectionControl : u32 { const NONE = 0u32 ; const FLATTEN = 1u32 ; const DONT_FLATTEN = 2u32 ; } } |
13 | | bitflags! { # [doc = "SPIR-V operand kind: [LoopControl](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_loop_control_a_loop_control)"] # [derive (Clone , Copy , Debug , PartialEq , Eq , Hash)] # [cfg_attr (feature = "serialize" , derive (serde :: Serialize))] # [cfg_attr (feature = "deserialize" , derive (serde :: Deserialize))] pub struct LoopControl : u32 { const NONE = 0u32 ; const UNROLL = 1u32 ; const DONT_UNROLL = 2u32 ; const DEPENDENCY_INFINITE = 4u32 ; const DEPENDENCY_LENGTH = 8u32 ; const MIN_ITERATIONS = 16u32 ; const MAX_ITERATIONS = 32u32 ; const ITERATION_MULTIPLE = 64u32 ; const PEEL_COUNT = 128u32 ; const PARTIAL_COUNT = 256u32 ; const INITIATION_INTERVAL_INTEL = 65536u32 ; const MAX_CONCURRENCY_INTEL = 131072u32 ; const DEPENDENCY_ARRAY_INTEL = 262144u32 ; const PIPELINE_ENABLE_INTEL = 524288u32 ; const LOOP_COALESCE_INTEL = 1048576u32 ; const MAX_INTERLEAVING_INTEL = 2097152u32 ; const SPECULATED_ITERATIONS_INTEL = 4194304u32 ; const NO_FUSION_INTEL = 8388608u32 ; const LOOP_COUNT_INTEL = 16777216u32 ; const MAX_REINVOCATION_DELAY_INTEL = 33554432u32 ; } } |
14 | | bitflags! { # [doc = "SPIR-V operand kind: [FunctionControl](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_function_control_a_function_control)"] # [derive (Clone , Copy , Debug , PartialEq , Eq , Hash)] # [cfg_attr (feature = "serialize" , derive (serde :: Serialize))] # [cfg_attr (feature = "deserialize" , derive (serde :: Deserialize))] pub struct FunctionControl : u32 { const NONE = 0u32 ; const INLINE = 1u32 ; const DONT_INLINE = 2u32 ; const PURE = 4u32 ; const CONST = 8u32 ; const OPT_NONE_EXT = 65536u32 ; } } |
15 | | bitflags! { # [doc = "SPIR-V operand kind: [MemorySemantics](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_memory_semantics_a_memory_semantics)"] # [derive (Clone , Copy , Debug , PartialEq , Eq , Hash)] # [cfg_attr (feature = "serialize" , derive (serde :: Serialize))] # [cfg_attr (feature = "deserialize" , derive (serde :: Deserialize))] pub struct MemorySemantics : u32 { const RELAXED = 0u32 ; const ACQUIRE = 2u32 ; const RELEASE = 4u32 ; const ACQUIRE_RELEASE = 8u32 ; const SEQUENTIALLY_CONSISTENT = 16u32 ; const UNIFORM_MEMORY = 64u32 ; const SUBGROUP_MEMORY = 128u32 ; const WORKGROUP_MEMORY = 256u32 ; const CROSS_WORKGROUP_MEMORY = 512u32 ; const ATOMIC_COUNTER_MEMORY = 1024u32 ; const IMAGE_MEMORY = 2048u32 ; const OUTPUT_MEMORY = 4096u32 ; const MAKE_AVAILABLE = 8192u32 ; const MAKE_VISIBLE = 16384u32 ; const VOLATILE = 32768u32 ; } } |
16 | | bitflags! { # [doc = "SPIR-V operand kind: [MemoryAccess](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_memory_access_a_memory_access)"] # [derive (Clone , Copy , Debug , PartialEq , Eq , Hash)] # [cfg_attr (feature = "serialize" , derive (serde :: Serialize))] # [cfg_attr (feature = "deserialize" , derive (serde :: Deserialize))] pub struct MemoryAccess : u32 { const NONE = 0u32 ; const VOLATILE = 1u32 ; const ALIGNED = 2u32 ; const NONTEMPORAL = 4u32 ; const MAKE_POINTER_AVAILABLE = 8u32 ; const MAKE_POINTER_VISIBLE = 16u32 ; const NON_PRIVATE_POINTER = 32u32 ; const ALIAS_SCOPE_INTEL_MASK = 65536u32 ; const NO_ALIAS_INTEL_MASK = 131072u32 ; } } |
17 | | bitflags! { # [doc = "SPIR-V operand kind: [KernelProfilingInfo](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_kernel_profiling_info_a_kernel_profiling_info)"] # [derive (Clone , Copy , Debug , PartialEq , Eq , Hash)] # [cfg_attr (feature = "serialize" , derive (serde :: Serialize))] # [cfg_attr (feature = "deserialize" , derive (serde :: Deserialize))] pub struct KernelProfilingInfo : u32 { const NONE = 0u32 ; const CMD_EXEC_TIME = 1u32 ; } } |
18 | | bitflags! { # [doc = "SPIR-V operand kind: [RayFlags](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_ray_flags_a_ray_flags)"] # [derive (Clone , Copy , Debug , PartialEq , Eq , Hash)] # [cfg_attr (feature = "serialize" , derive (serde :: Serialize))] # [cfg_attr (feature = "deserialize" , derive (serde :: Deserialize))] pub struct RayFlags : u32 { const NONE_KHR = 0u32 ; const OPAQUE_KHR = 1u32 ; const NO_OPAQUE_KHR = 2u32 ; const TERMINATE_ON_FIRST_HIT_KHR = 4u32 ; const SKIP_CLOSEST_HIT_SHADER_KHR = 8u32 ; const CULL_BACK_FACING_TRIANGLES_KHR = 16u32 ; const CULL_FRONT_FACING_TRIANGLES_KHR = 32u32 ; const CULL_OPAQUE_KHR = 64u32 ; const CULL_NO_OPAQUE_KHR = 128u32 ; const SKIP_TRIANGLES_KHR = 256u32 ; const SKIP_AAB_BS_KHR = 512u32 ; const FORCE_OPACITY_MICROMAP2_STATE_EXT = 1024u32 ; } } |
19 | | bitflags! { # [doc = "SPIR-V operand kind: [FragmentShadingRate](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_fragment_shading_rate_a_fragment_shading_rate)"] # [derive (Clone , Copy , Debug , PartialEq , Eq , Hash)] # [cfg_attr (feature = "serialize" , derive (serde :: Serialize))] # [cfg_attr (feature = "deserialize" , derive (serde :: Deserialize))] pub struct FragmentShadingRate : u32 { const VERTICAL2_PIXELS = 1u32 ; const VERTICAL4_PIXELS = 2u32 ; const HORIZONTAL2_PIXELS = 4u32 ; const HORIZONTAL4_PIXELS = 8u32 ; } } |
20 | | bitflags! { # [doc = "SPIR-V operand kind: [RawAccessChainOperands](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_raw_access_chain_operands_a_raw_access_chain_operands)"] # [derive (Clone , Copy , Debug , PartialEq , Eq , Hash)] # [cfg_attr (feature = "serialize" , derive (serde :: Serialize))] # [cfg_attr (feature = "deserialize" , derive (serde :: Deserialize))] pub struct RawAccessChainOperands : u32 { const NONE = 0u32 ; const ROBUSTNESS_PER_COMPONENT_NV = 1u32 ; const ROBUSTNESS_PER_ELEMENT_NV = 2u32 ; } } |
21 | | #[doc = "SPIR-V operand kind: [SourceLanguage](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_source_language_a_source_language)"] |
22 | | #[repr(u32)] |
23 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
24 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
25 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
26 | | #[allow(clippy::upper_case_acronyms)] |
27 | | pub enum SourceLanguage { |
28 | | Unknown = 0u32, |
29 | | ESSL = 1u32, |
30 | | GLSL = 2u32, |
31 | | OpenCL_C = 3u32, |
32 | | OpenCL_CPP = 4u32, |
33 | | HLSL = 5u32, |
34 | | CPP_for_OpenCL = 6u32, |
35 | | SYCL = 7u32, |
36 | | HERO_C = 8u32, |
37 | | NZSL = 9u32, |
38 | | WGSL = 10u32, |
39 | | Slang = 11u32, |
40 | | Zig = 12u32, |
41 | | Rust = 13u32, |
42 | | } |
43 | | impl SourceLanguage { |
44 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
45 | 0 | Some(match n { |
46 | 0 | 0u32..=13u32 => unsafe { core::mem::transmute::<u32, SourceLanguage>(n) }, |
47 | 0 | _ => return None, |
48 | | }) |
49 | 0 | } |
50 | | } |
51 | | #[allow(non_upper_case_globals)] |
52 | | impl SourceLanguage {} |
53 | | impl core::str::FromStr for SourceLanguage { |
54 | | type Err = (); |
55 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
56 | 0 | Ok(match s { |
57 | 0 | "Unknown" => Self::Unknown, |
58 | 0 | "ESSL" => Self::ESSL, |
59 | 0 | "GLSL" => Self::GLSL, |
60 | 0 | "OpenCL_C" => Self::OpenCL_C, |
61 | 0 | "OpenCL_CPP" => Self::OpenCL_CPP, |
62 | 0 | "HLSL" => Self::HLSL, |
63 | 0 | "CPP_for_OpenCL" => Self::CPP_for_OpenCL, |
64 | 0 | "SYCL" => Self::SYCL, |
65 | 0 | "HERO_C" => Self::HERO_C, |
66 | 0 | "NZSL" => Self::NZSL, |
67 | 0 | "WGSL" => Self::WGSL, |
68 | 0 | "Slang" => Self::Slang, |
69 | 0 | "Zig" => Self::Zig, |
70 | 0 | "Rust" => Self::Rust, |
71 | 0 | _ => return Err(()), |
72 | | }) |
73 | 0 | } |
74 | | } |
75 | | #[doc = "SPIR-V operand kind: [ExecutionModel](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_execution_model_a_execution_model)"] |
76 | | #[repr(u32)] |
77 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
78 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
79 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
80 | | #[allow(clippy::upper_case_acronyms)] |
81 | | pub enum ExecutionModel { |
82 | | Vertex = 0u32, |
83 | | TessellationControl = 1u32, |
84 | | TessellationEvaluation = 2u32, |
85 | | Geometry = 3u32, |
86 | | Fragment = 4u32, |
87 | | GLCompute = 5u32, |
88 | | Kernel = 6u32, |
89 | | TaskNV = 5267u32, |
90 | | MeshNV = 5268u32, |
91 | | RayGenerationKHR = 5313u32, |
92 | | IntersectionKHR = 5314u32, |
93 | | AnyHitKHR = 5315u32, |
94 | | ClosestHitKHR = 5316u32, |
95 | | MissKHR = 5317u32, |
96 | | CallableKHR = 5318u32, |
97 | | TaskEXT = 5364u32, |
98 | | MeshEXT = 5365u32, |
99 | | } |
100 | | impl ExecutionModel { |
101 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
102 | 0 | Some(match n { |
103 | 0 | 0u32..=6u32 => unsafe { core::mem::transmute::<u32, ExecutionModel>(n) }, |
104 | 0 | 5267u32..=5268u32 => unsafe { core::mem::transmute::<u32, ExecutionModel>(n) }, |
105 | 0 | 5313u32..=5318u32 => unsafe { core::mem::transmute::<u32, ExecutionModel>(n) }, |
106 | 0 | 5364u32..=5365u32 => unsafe { core::mem::transmute::<u32, ExecutionModel>(n) }, |
107 | 0 | _ => return None, |
108 | | }) |
109 | 0 | } |
110 | | } |
111 | | #[allow(non_upper_case_globals)] |
112 | | impl ExecutionModel { |
113 | | pub const RayGenerationNV: Self = Self::RayGenerationKHR; |
114 | | pub const IntersectionNV: Self = Self::IntersectionKHR; |
115 | | pub const AnyHitNV: Self = Self::AnyHitKHR; |
116 | | pub const ClosestHitNV: Self = Self::ClosestHitKHR; |
117 | | pub const MissNV: Self = Self::MissKHR; |
118 | | pub const CallableNV: Self = Self::CallableKHR; |
119 | | } |
120 | | impl core::str::FromStr for ExecutionModel { |
121 | | type Err = (); |
122 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
123 | 0 | Ok(match s { |
124 | 0 | "Vertex" => Self::Vertex, |
125 | 0 | "TessellationControl" => Self::TessellationControl, |
126 | 0 | "TessellationEvaluation" => Self::TessellationEvaluation, |
127 | 0 | "Geometry" => Self::Geometry, |
128 | 0 | "Fragment" => Self::Fragment, |
129 | 0 | "GLCompute" => Self::GLCompute, |
130 | 0 | "Kernel" => Self::Kernel, |
131 | 0 | "TaskNV" => Self::TaskNV, |
132 | 0 | "MeshNV" => Self::MeshNV, |
133 | 0 | "RayGenerationKHR" => Self::RayGenerationKHR, |
134 | 0 | "RayGenerationNV" => Self::RayGenerationKHR, |
135 | 0 | "IntersectionKHR" => Self::IntersectionKHR, |
136 | 0 | "IntersectionNV" => Self::IntersectionKHR, |
137 | 0 | "AnyHitKHR" => Self::AnyHitKHR, |
138 | 0 | "AnyHitNV" => Self::AnyHitKHR, |
139 | 0 | "ClosestHitKHR" => Self::ClosestHitKHR, |
140 | 0 | "ClosestHitNV" => Self::ClosestHitKHR, |
141 | 0 | "MissKHR" => Self::MissKHR, |
142 | 0 | "MissNV" => Self::MissKHR, |
143 | 0 | "CallableKHR" => Self::CallableKHR, |
144 | 0 | "CallableNV" => Self::CallableKHR, |
145 | 0 | "TaskEXT" => Self::TaskEXT, |
146 | 0 | "MeshEXT" => Self::MeshEXT, |
147 | 0 | _ => return Err(()), |
148 | | }) |
149 | 0 | } |
150 | | } |
151 | | #[doc = "SPIR-V operand kind: [AddressingModel](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_addressing_model_a_addressing_model)"] |
152 | | #[repr(u32)] |
153 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
154 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
155 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
156 | | #[allow(clippy::upper_case_acronyms)] |
157 | | pub enum AddressingModel { |
158 | | Logical = 0u32, |
159 | | Physical32 = 1u32, |
160 | | Physical64 = 2u32, |
161 | | PhysicalStorageBuffer64 = 5348u32, |
162 | | } |
163 | | impl AddressingModel { |
164 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
165 | 0 | Some(match n { |
166 | 0 | 0u32..=2u32 => unsafe { core::mem::transmute::<u32, AddressingModel>(n) }, |
167 | 0 | 5348u32 => unsafe { core::mem::transmute::<u32, AddressingModel>(5348u32) }, |
168 | 0 | _ => return None, |
169 | | }) |
170 | 0 | } |
171 | | } |
172 | | #[allow(non_upper_case_globals)] |
173 | | impl AddressingModel { |
174 | | pub const PhysicalStorageBuffer64EXT: Self = Self::PhysicalStorageBuffer64; |
175 | | } |
176 | | impl core::str::FromStr for AddressingModel { |
177 | | type Err = (); |
178 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
179 | 0 | Ok(match s { |
180 | 0 | "Logical" => Self::Logical, |
181 | 0 | "Physical32" => Self::Physical32, |
182 | 0 | "Physical64" => Self::Physical64, |
183 | 0 | "PhysicalStorageBuffer64" => Self::PhysicalStorageBuffer64, |
184 | 0 | "PhysicalStorageBuffer64EXT" => Self::PhysicalStorageBuffer64, |
185 | 0 | _ => return Err(()), |
186 | | }) |
187 | 0 | } |
188 | | } |
189 | | #[doc = "SPIR-V operand kind: [MemoryModel](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_memory_model_a_memory_model)"] |
190 | | #[repr(u32)] |
191 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
192 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
193 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
194 | | #[allow(clippy::upper_case_acronyms)] |
195 | | pub enum MemoryModel { |
196 | | Simple = 0u32, |
197 | | GLSL450 = 1u32, |
198 | | OpenCL = 2u32, |
199 | | Vulkan = 3u32, |
200 | | } |
201 | | impl MemoryModel { |
202 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
203 | 0 | Some(match n { |
204 | 0 | 0u32..=3u32 => unsafe { core::mem::transmute::<u32, MemoryModel>(n) }, |
205 | 0 | _ => return None, |
206 | | }) |
207 | 0 | } |
208 | | } |
209 | | #[allow(non_upper_case_globals)] |
210 | | impl MemoryModel { |
211 | | pub const VulkanKHR: Self = Self::Vulkan; |
212 | | } |
213 | | impl core::str::FromStr for MemoryModel { |
214 | | type Err = (); |
215 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
216 | 0 | Ok(match s { |
217 | 0 | "Simple" => Self::Simple, |
218 | 0 | "GLSL450" => Self::GLSL450, |
219 | 0 | "OpenCL" => Self::OpenCL, |
220 | 0 | "Vulkan" => Self::Vulkan, |
221 | 0 | "VulkanKHR" => Self::Vulkan, |
222 | 0 | _ => return Err(()), |
223 | | }) |
224 | 0 | } |
225 | | } |
226 | | #[doc = "SPIR-V operand kind: [ExecutionMode](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_execution_mode_a_execution_mode)"] |
227 | | #[repr(u32)] |
228 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
229 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
230 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
231 | | #[allow(clippy::upper_case_acronyms)] |
232 | | pub enum ExecutionMode { |
233 | | Invocations = 0u32, |
234 | | SpacingEqual = 1u32, |
235 | | SpacingFractionalEven = 2u32, |
236 | | SpacingFractionalOdd = 3u32, |
237 | | VertexOrderCw = 4u32, |
238 | | VertexOrderCcw = 5u32, |
239 | | PixelCenterInteger = 6u32, |
240 | | OriginUpperLeft = 7u32, |
241 | | OriginLowerLeft = 8u32, |
242 | | EarlyFragmentTests = 9u32, |
243 | | PointMode = 10u32, |
244 | | Xfb = 11u32, |
245 | | DepthReplacing = 12u32, |
246 | | DepthGreater = 14u32, |
247 | | DepthLess = 15u32, |
248 | | DepthUnchanged = 16u32, |
249 | | LocalSize = 17u32, |
250 | | LocalSizeHint = 18u32, |
251 | | InputPoints = 19u32, |
252 | | InputLines = 20u32, |
253 | | InputLinesAdjacency = 21u32, |
254 | | Triangles = 22u32, |
255 | | InputTrianglesAdjacency = 23u32, |
256 | | Quads = 24u32, |
257 | | Isolines = 25u32, |
258 | | OutputVertices = 26u32, |
259 | | OutputPoints = 27u32, |
260 | | OutputLineStrip = 28u32, |
261 | | OutputTriangleStrip = 29u32, |
262 | | VecTypeHint = 30u32, |
263 | | ContractionOff = 31u32, |
264 | | Initializer = 33u32, |
265 | | Finalizer = 34u32, |
266 | | SubgroupSize = 35u32, |
267 | | SubgroupsPerWorkgroup = 36u32, |
268 | | SubgroupsPerWorkgroupId = 37u32, |
269 | | LocalSizeId = 38u32, |
270 | | LocalSizeHintId = 39u32, |
271 | | NonCoherentColorAttachmentReadEXT = 4169u32, |
272 | | NonCoherentDepthAttachmentReadEXT = 4170u32, |
273 | | NonCoherentStencilAttachmentReadEXT = 4171u32, |
274 | | SubgroupUniformControlFlowKHR = 4421u32, |
275 | | PostDepthCoverage = 4446u32, |
276 | | DenormPreserve = 4459u32, |
277 | | DenormFlushToZero = 4460u32, |
278 | | SignedZeroInfNanPreserve = 4461u32, |
279 | | RoundingModeRTE = 4462u32, |
280 | | RoundingModeRTZ = 4463u32, |
281 | | EarlyAndLateFragmentTestsAMD = 5017u32, |
282 | | StencilRefReplacingEXT = 5027u32, |
283 | | CoalescingAMDX = 5069u32, |
284 | | IsApiEntryAMDX = 5070u32, |
285 | | MaxNodeRecursionAMDX = 5071u32, |
286 | | StaticNumWorkgroupsAMDX = 5072u32, |
287 | | ShaderIndexAMDX = 5073u32, |
288 | | MaxNumWorkgroupsAMDX = 5077u32, |
289 | | StencilRefUnchangedFrontAMD = 5079u32, |
290 | | StencilRefGreaterFrontAMD = 5080u32, |
291 | | StencilRefLessFrontAMD = 5081u32, |
292 | | StencilRefUnchangedBackAMD = 5082u32, |
293 | | StencilRefGreaterBackAMD = 5083u32, |
294 | | StencilRefLessBackAMD = 5084u32, |
295 | | QuadDerivativesKHR = 5088u32, |
296 | | RequireFullQuadsKHR = 5089u32, |
297 | | SharesInputWithAMDX = 5102u32, |
298 | | OutputLinesEXT = 5269u32, |
299 | | OutputPrimitivesEXT = 5270u32, |
300 | | DerivativeGroupQuadsKHR = 5289u32, |
301 | | DerivativeGroupLinearKHR = 5290u32, |
302 | | OutputTrianglesEXT = 5298u32, |
303 | | PixelInterlockOrderedEXT = 5366u32, |
304 | | PixelInterlockUnorderedEXT = 5367u32, |
305 | | SampleInterlockOrderedEXT = 5368u32, |
306 | | SampleInterlockUnorderedEXT = 5369u32, |
307 | | ShadingRateInterlockOrderedEXT = 5370u32, |
308 | | ShadingRateInterlockUnorderedEXT = 5371u32, |
309 | | SharedLocalMemorySizeINTEL = 5618u32, |
310 | | RoundingModeRTPINTEL = 5620u32, |
311 | | RoundingModeRTNINTEL = 5621u32, |
312 | | FloatingPointModeALTINTEL = 5622u32, |
313 | | FloatingPointModeIEEEINTEL = 5623u32, |
314 | | MaxWorkgroupSizeINTEL = 5893u32, |
315 | | MaxWorkDimINTEL = 5894u32, |
316 | | NoGlobalOffsetINTEL = 5895u32, |
317 | | NumSIMDWorkitemsINTEL = 5896u32, |
318 | | SchedulerTargetFmaxMhzINTEL = 5903u32, |
319 | | MaximallyReconvergesKHR = 6023u32, |
320 | | FPFastMathDefault = 6028u32, |
321 | | StreamingInterfaceINTEL = 6154u32, |
322 | | RegisterMapInterfaceINTEL = 6160u32, |
323 | | NamedBarrierCountINTEL = 6417u32, |
324 | | MaximumRegistersINTEL = 6461u32, |
325 | | MaximumRegistersIdINTEL = 6462u32, |
326 | | NamedMaximumRegistersINTEL = 6463u32, |
327 | | } |
328 | | impl ExecutionMode { |
329 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
330 | 0 | Some(match n { |
331 | 0 | 0u32..=12u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(n) }, |
332 | 0 | 14u32..=31u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(n) }, |
333 | 0 | 33u32..=39u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(n) }, |
334 | 0 | 4169u32..=4171u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(n) }, |
335 | 0 | 4421u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(4421u32) }, |
336 | 0 | 4446u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(4446u32) }, |
337 | 0 | 4459u32..=4463u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(n) }, |
338 | 0 | 5017u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(5017u32) }, |
339 | 0 | 5027u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(5027u32) }, |
340 | 0 | 5069u32..=5073u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(n) }, |
341 | 0 | 5077u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(5077u32) }, |
342 | 0 | 5079u32..=5084u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(n) }, |
343 | 0 | 5088u32..=5089u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(n) }, |
344 | 0 | 5102u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(5102u32) }, |
345 | 0 | 5269u32..=5270u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(n) }, |
346 | 0 | 5289u32..=5290u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(n) }, |
347 | 0 | 5298u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(5298u32) }, |
348 | 0 | 5366u32..=5371u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(n) }, |
349 | 0 | 5618u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(5618u32) }, |
350 | 0 | 5620u32..=5623u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(n) }, |
351 | 0 | 5893u32..=5896u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(n) }, |
352 | 0 | 5903u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(5903u32) }, |
353 | 0 | 6023u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(6023u32) }, |
354 | 0 | 6028u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(6028u32) }, |
355 | 0 | 6154u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(6154u32) }, |
356 | 0 | 6160u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(6160u32) }, |
357 | 0 | 6417u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(6417u32) }, |
358 | 0 | 6461u32..=6463u32 => unsafe { core::mem::transmute::<u32, ExecutionMode>(n) }, |
359 | 0 | _ => return None, |
360 | | }) |
361 | 0 | } |
362 | | } |
363 | | #[allow(non_upper_case_globals)] |
364 | | impl ExecutionMode { |
365 | | pub const OutputLinesNV: Self = Self::OutputLinesEXT; |
366 | | pub const OutputPrimitivesNV: Self = Self::OutputPrimitivesEXT; |
367 | | pub const DerivativeGroupQuadsNV: Self = Self::DerivativeGroupQuadsKHR; |
368 | | pub const DerivativeGroupLinearNV: Self = Self::DerivativeGroupLinearKHR; |
369 | | pub const OutputTrianglesNV: Self = Self::OutputTrianglesEXT; |
370 | | } |
371 | | impl core::str::FromStr for ExecutionMode { |
372 | | type Err = (); |
373 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
374 | 0 | Ok(match s { |
375 | 0 | "Invocations" => Self::Invocations, |
376 | 0 | "SpacingEqual" => Self::SpacingEqual, |
377 | 0 | "SpacingFractionalEven" => Self::SpacingFractionalEven, |
378 | 0 | "SpacingFractionalOdd" => Self::SpacingFractionalOdd, |
379 | 0 | "VertexOrderCw" => Self::VertexOrderCw, |
380 | 0 | "VertexOrderCcw" => Self::VertexOrderCcw, |
381 | 0 | "PixelCenterInteger" => Self::PixelCenterInteger, |
382 | 0 | "OriginUpperLeft" => Self::OriginUpperLeft, |
383 | 0 | "OriginLowerLeft" => Self::OriginLowerLeft, |
384 | 0 | "EarlyFragmentTests" => Self::EarlyFragmentTests, |
385 | 0 | "PointMode" => Self::PointMode, |
386 | 0 | "Xfb" => Self::Xfb, |
387 | 0 | "DepthReplacing" => Self::DepthReplacing, |
388 | 0 | "DepthGreater" => Self::DepthGreater, |
389 | 0 | "DepthLess" => Self::DepthLess, |
390 | 0 | "DepthUnchanged" => Self::DepthUnchanged, |
391 | 0 | "LocalSize" => Self::LocalSize, |
392 | 0 | "LocalSizeHint" => Self::LocalSizeHint, |
393 | 0 | "InputPoints" => Self::InputPoints, |
394 | 0 | "InputLines" => Self::InputLines, |
395 | 0 | "InputLinesAdjacency" => Self::InputLinesAdjacency, |
396 | 0 | "Triangles" => Self::Triangles, |
397 | 0 | "InputTrianglesAdjacency" => Self::InputTrianglesAdjacency, |
398 | 0 | "Quads" => Self::Quads, |
399 | 0 | "Isolines" => Self::Isolines, |
400 | 0 | "OutputVertices" => Self::OutputVertices, |
401 | 0 | "OutputPoints" => Self::OutputPoints, |
402 | 0 | "OutputLineStrip" => Self::OutputLineStrip, |
403 | 0 | "OutputTriangleStrip" => Self::OutputTriangleStrip, |
404 | 0 | "VecTypeHint" => Self::VecTypeHint, |
405 | 0 | "ContractionOff" => Self::ContractionOff, |
406 | 0 | "Initializer" => Self::Initializer, |
407 | 0 | "Finalizer" => Self::Finalizer, |
408 | 0 | "SubgroupSize" => Self::SubgroupSize, |
409 | 0 | "SubgroupsPerWorkgroup" => Self::SubgroupsPerWorkgroup, |
410 | 0 | "SubgroupsPerWorkgroupId" => Self::SubgroupsPerWorkgroupId, |
411 | 0 | "LocalSizeId" => Self::LocalSizeId, |
412 | 0 | "LocalSizeHintId" => Self::LocalSizeHintId, |
413 | 0 | "NonCoherentColorAttachmentReadEXT" => Self::NonCoherentColorAttachmentReadEXT, |
414 | 0 | "NonCoherentDepthAttachmentReadEXT" => Self::NonCoherentDepthAttachmentReadEXT, |
415 | 0 | "NonCoherentStencilAttachmentReadEXT" => Self::NonCoherentStencilAttachmentReadEXT, |
416 | 0 | "SubgroupUniformControlFlowKHR" => Self::SubgroupUniformControlFlowKHR, |
417 | 0 | "PostDepthCoverage" => Self::PostDepthCoverage, |
418 | 0 | "DenormPreserve" => Self::DenormPreserve, |
419 | 0 | "DenormFlushToZero" => Self::DenormFlushToZero, |
420 | 0 | "SignedZeroInfNanPreserve" => Self::SignedZeroInfNanPreserve, |
421 | 0 | "RoundingModeRTE" => Self::RoundingModeRTE, |
422 | 0 | "RoundingModeRTZ" => Self::RoundingModeRTZ, |
423 | 0 | "EarlyAndLateFragmentTestsAMD" => Self::EarlyAndLateFragmentTestsAMD, |
424 | 0 | "StencilRefReplacingEXT" => Self::StencilRefReplacingEXT, |
425 | 0 | "CoalescingAMDX" => Self::CoalescingAMDX, |
426 | 0 | "IsApiEntryAMDX" => Self::IsApiEntryAMDX, |
427 | 0 | "MaxNodeRecursionAMDX" => Self::MaxNodeRecursionAMDX, |
428 | 0 | "StaticNumWorkgroupsAMDX" => Self::StaticNumWorkgroupsAMDX, |
429 | 0 | "ShaderIndexAMDX" => Self::ShaderIndexAMDX, |
430 | 0 | "MaxNumWorkgroupsAMDX" => Self::MaxNumWorkgroupsAMDX, |
431 | 0 | "StencilRefUnchangedFrontAMD" => Self::StencilRefUnchangedFrontAMD, |
432 | 0 | "StencilRefGreaterFrontAMD" => Self::StencilRefGreaterFrontAMD, |
433 | 0 | "StencilRefLessFrontAMD" => Self::StencilRefLessFrontAMD, |
434 | 0 | "StencilRefUnchangedBackAMD" => Self::StencilRefUnchangedBackAMD, |
435 | 0 | "StencilRefGreaterBackAMD" => Self::StencilRefGreaterBackAMD, |
436 | 0 | "StencilRefLessBackAMD" => Self::StencilRefLessBackAMD, |
437 | 0 | "QuadDerivativesKHR" => Self::QuadDerivativesKHR, |
438 | 0 | "RequireFullQuadsKHR" => Self::RequireFullQuadsKHR, |
439 | 0 | "SharesInputWithAMDX" => Self::SharesInputWithAMDX, |
440 | 0 | "OutputLinesEXT" => Self::OutputLinesEXT, |
441 | 0 | "OutputLinesNV" => Self::OutputLinesEXT, |
442 | 0 | "OutputPrimitivesEXT" => Self::OutputPrimitivesEXT, |
443 | 0 | "OutputPrimitivesNV" => Self::OutputPrimitivesEXT, |
444 | 0 | "DerivativeGroupQuadsKHR" => Self::DerivativeGroupQuadsKHR, |
445 | 0 | "DerivativeGroupQuadsNV" => Self::DerivativeGroupQuadsKHR, |
446 | 0 | "DerivativeGroupLinearKHR" => Self::DerivativeGroupLinearKHR, |
447 | 0 | "DerivativeGroupLinearNV" => Self::DerivativeGroupLinearKHR, |
448 | 0 | "OutputTrianglesEXT" => Self::OutputTrianglesEXT, |
449 | 0 | "OutputTrianglesNV" => Self::OutputTrianglesEXT, |
450 | 0 | "PixelInterlockOrderedEXT" => Self::PixelInterlockOrderedEXT, |
451 | 0 | "PixelInterlockUnorderedEXT" => Self::PixelInterlockUnorderedEXT, |
452 | 0 | "SampleInterlockOrderedEXT" => Self::SampleInterlockOrderedEXT, |
453 | 0 | "SampleInterlockUnorderedEXT" => Self::SampleInterlockUnorderedEXT, |
454 | 0 | "ShadingRateInterlockOrderedEXT" => Self::ShadingRateInterlockOrderedEXT, |
455 | 0 | "ShadingRateInterlockUnorderedEXT" => Self::ShadingRateInterlockUnorderedEXT, |
456 | 0 | "SharedLocalMemorySizeINTEL" => Self::SharedLocalMemorySizeINTEL, |
457 | 0 | "RoundingModeRTPINTEL" => Self::RoundingModeRTPINTEL, |
458 | 0 | "RoundingModeRTNINTEL" => Self::RoundingModeRTNINTEL, |
459 | 0 | "FloatingPointModeALTINTEL" => Self::FloatingPointModeALTINTEL, |
460 | 0 | "FloatingPointModeIEEEINTEL" => Self::FloatingPointModeIEEEINTEL, |
461 | 0 | "MaxWorkgroupSizeINTEL" => Self::MaxWorkgroupSizeINTEL, |
462 | 0 | "MaxWorkDimINTEL" => Self::MaxWorkDimINTEL, |
463 | 0 | "NoGlobalOffsetINTEL" => Self::NoGlobalOffsetINTEL, |
464 | 0 | "NumSIMDWorkitemsINTEL" => Self::NumSIMDWorkitemsINTEL, |
465 | 0 | "SchedulerTargetFmaxMhzINTEL" => Self::SchedulerTargetFmaxMhzINTEL, |
466 | 0 | "MaximallyReconvergesKHR" => Self::MaximallyReconvergesKHR, |
467 | 0 | "FPFastMathDefault" => Self::FPFastMathDefault, |
468 | 0 | "StreamingInterfaceINTEL" => Self::StreamingInterfaceINTEL, |
469 | 0 | "RegisterMapInterfaceINTEL" => Self::RegisterMapInterfaceINTEL, |
470 | 0 | "NamedBarrierCountINTEL" => Self::NamedBarrierCountINTEL, |
471 | 0 | "MaximumRegistersINTEL" => Self::MaximumRegistersINTEL, |
472 | 0 | "MaximumRegistersIdINTEL" => Self::MaximumRegistersIdINTEL, |
473 | 0 | "NamedMaximumRegistersINTEL" => Self::NamedMaximumRegistersINTEL, |
474 | 0 | _ => return Err(()), |
475 | | }) |
476 | 0 | } |
477 | | } |
478 | | #[doc = "SPIR-V operand kind: [StorageClass](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_storage_class_a_storage_class)"] |
479 | | #[repr(u32)] |
480 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
481 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
482 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
483 | | #[allow(clippy::upper_case_acronyms)] |
484 | | pub enum StorageClass { |
485 | | UniformConstant = 0u32, |
486 | | Input = 1u32, |
487 | | Uniform = 2u32, |
488 | | Output = 3u32, |
489 | | Workgroup = 4u32, |
490 | | CrossWorkgroup = 5u32, |
491 | | Private = 6u32, |
492 | | Function = 7u32, |
493 | | Generic = 8u32, |
494 | | PushConstant = 9u32, |
495 | | AtomicCounter = 10u32, |
496 | | Image = 11u32, |
497 | | StorageBuffer = 12u32, |
498 | | TileImageEXT = 4172u32, |
499 | | NodePayloadAMDX = 5068u32, |
500 | | CallableDataKHR = 5328u32, |
501 | | IncomingCallableDataKHR = 5329u32, |
502 | | RayPayloadKHR = 5338u32, |
503 | | HitAttributeKHR = 5339u32, |
504 | | IncomingRayPayloadKHR = 5342u32, |
505 | | ShaderRecordBufferKHR = 5343u32, |
506 | | PhysicalStorageBuffer = 5349u32, |
507 | | HitObjectAttributeNV = 5385u32, |
508 | | TaskPayloadWorkgroupEXT = 5402u32, |
509 | | CodeSectionINTEL = 5605u32, |
510 | | DeviceOnlyINTEL = 5936u32, |
511 | | HostOnlyINTEL = 5937u32, |
512 | | } |
513 | | impl StorageClass { |
514 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
515 | 0 | Some(match n { |
516 | 0 | 0u32..=12u32 => unsafe { core::mem::transmute::<u32, StorageClass>(n) }, |
517 | 0 | 4172u32 => unsafe { core::mem::transmute::<u32, StorageClass>(4172u32) }, |
518 | 0 | 5068u32 => unsafe { core::mem::transmute::<u32, StorageClass>(5068u32) }, |
519 | 0 | 5328u32..=5329u32 => unsafe { core::mem::transmute::<u32, StorageClass>(n) }, |
520 | 0 | 5338u32..=5339u32 => unsafe { core::mem::transmute::<u32, StorageClass>(n) }, |
521 | 0 | 5342u32..=5343u32 => unsafe { core::mem::transmute::<u32, StorageClass>(n) }, |
522 | 0 | 5349u32 => unsafe { core::mem::transmute::<u32, StorageClass>(5349u32) }, |
523 | 0 | 5385u32 => unsafe { core::mem::transmute::<u32, StorageClass>(5385u32) }, |
524 | 0 | 5402u32 => unsafe { core::mem::transmute::<u32, StorageClass>(5402u32) }, |
525 | 0 | 5605u32 => unsafe { core::mem::transmute::<u32, StorageClass>(5605u32) }, |
526 | 0 | 5936u32..=5937u32 => unsafe { core::mem::transmute::<u32, StorageClass>(n) }, |
527 | 0 | _ => return None, |
528 | | }) |
529 | 0 | } |
530 | | } |
531 | | #[allow(non_upper_case_globals)] |
532 | | impl StorageClass { |
533 | | pub const CallableDataNV: Self = Self::CallableDataKHR; |
534 | | pub const IncomingCallableDataNV: Self = Self::IncomingCallableDataKHR; |
535 | | pub const RayPayloadNV: Self = Self::RayPayloadKHR; |
536 | | pub const HitAttributeNV: Self = Self::HitAttributeKHR; |
537 | | pub const IncomingRayPayloadNV: Self = Self::IncomingRayPayloadKHR; |
538 | | pub const ShaderRecordBufferNV: Self = Self::ShaderRecordBufferKHR; |
539 | | pub const PhysicalStorageBufferEXT: Self = Self::PhysicalStorageBuffer; |
540 | | } |
541 | | impl core::str::FromStr for StorageClass { |
542 | | type Err = (); |
543 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
544 | 0 | Ok(match s { |
545 | 0 | "UniformConstant" => Self::UniformConstant, |
546 | 0 | "Input" => Self::Input, |
547 | 0 | "Uniform" => Self::Uniform, |
548 | 0 | "Output" => Self::Output, |
549 | 0 | "Workgroup" => Self::Workgroup, |
550 | 0 | "CrossWorkgroup" => Self::CrossWorkgroup, |
551 | 0 | "Private" => Self::Private, |
552 | 0 | "Function" => Self::Function, |
553 | 0 | "Generic" => Self::Generic, |
554 | 0 | "PushConstant" => Self::PushConstant, |
555 | 0 | "AtomicCounter" => Self::AtomicCounter, |
556 | 0 | "Image" => Self::Image, |
557 | 0 | "StorageBuffer" => Self::StorageBuffer, |
558 | 0 | "TileImageEXT" => Self::TileImageEXT, |
559 | 0 | "NodePayloadAMDX" => Self::NodePayloadAMDX, |
560 | 0 | "CallableDataKHR" => Self::CallableDataKHR, |
561 | 0 | "CallableDataNV" => Self::CallableDataKHR, |
562 | 0 | "IncomingCallableDataKHR" => Self::IncomingCallableDataKHR, |
563 | 0 | "IncomingCallableDataNV" => Self::IncomingCallableDataKHR, |
564 | 0 | "RayPayloadKHR" => Self::RayPayloadKHR, |
565 | 0 | "RayPayloadNV" => Self::RayPayloadKHR, |
566 | 0 | "HitAttributeKHR" => Self::HitAttributeKHR, |
567 | 0 | "HitAttributeNV" => Self::HitAttributeKHR, |
568 | 0 | "IncomingRayPayloadKHR" => Self::IncomingRayPayloadKHR, |
569 | 0 | "IncomingRayPayloadNV" => Self::IncomingRayPayloadKHR, |
570 | 0 | "ShaderRecordBufferKHR" => Self::ShaderRecordBufferKHR, |
571 | 0 | "ShaderRecordBufferNV" => Self::ShaderRecordBufferKHR, |
572 | 0 | "PhysicalStorageBuffer" => Self::PhysicalStorageBuffer, |
573 | 0 | "PhysicalStorageBufferEXT" => Self::PhysicalStorageBuffer, |
574 | 0 | "HitObjectAttributeNV" => Self::HitObjectAttributeNV, |
575 | 0 | "TaskPayloadWorkgroupEXT" => Self::TaskPayloadWorkgroupEXT, |
576 | 0 | "CodeSectionINTEL" => Self::CodeSectionINTEL, |
577 | 0 | "DeviceOnlyINTEL" => Self::DeviceOnlyINTEL, |
578 | 0 | "HostOnlyINTEL" => Self::HostOnlyINTEL, |
579 | 0 | _ => return Err(()), |
580 | | }) |
581 | 0 | } |
582 | | } |
583 | | #[doc = "SPIR-V operand kind: [Dim](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_dim_a_dim)"] |
584 | | #[repr(u32)] |
585 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
586 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
587 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
588 | | #[allow(clippy::upper_case_acronyms)] |
589 | | pub enum Dim { |
590 | | Dim1D = 0u32, |
591 | | Dim2D = 1u32, |
592 | | Dim3D = 2u32, |
593 | | DimCube = 3u32, |
594 | | DimRect = 4u32, |
595 | | DimBuffer = 5u32, |
596 | | DimSubpassData = 6u32, |
597 | | DimTileImageDataEXT = 4173u32, |
598 | | } |
599 | | impl Dim { |
600 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
601 | 0 | Some(match n { |
602 | 0 | 0u32..=6u32 => unsafe { core::mem::transmute::<u32, Dim>(n) }, |
603 | 0 | 4173u32 => unsafe { core::mem::transmute::<u32, Dim>(4173u32) }, |
604 | 0 | _ => return None, |
605 | | }) |
606 | 0 | } |
607 | | } |
608 | | #[allow(non_upper_case_globals)] |
609 | | impl Dim {} |
610 | | impl core::str::FromStr for Dim { |
611 | | type Err = (); |
612 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
613 | 0 | Ok(match s { |
614 | 0 | "Dim1D" => Self::Dim1D, |
615 | 0 | "Dim2D" => Self::Dim2D, |
616 | 0 | "Dim3D" => Self::Dim3D, |
617 | 0 | "DimCube" => Self::DimCube, |
618 | 0 | "DimRect" => Self::DimRect, |
619 | 0 | "DimBuffer" => Self::DimBuffer, |
620 | 0 | "DimSubpassData" => Self::DimSubpassData, |
621 | 0 | "DimTileImageDataEXT" => Self::DimTileImageDataEXT, |
622 | 0 | _ => return Err(()), |
623 | | }) |
624 | 0 | } |
625 | | } |
626 | | #[doc = "SPIR-V operand kind: [SamplerAddressingMode](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_sampler_addressing_mode_a_sampler_addressing_mode)"] |
627 | | #[repr(u32)] |
628 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
629 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
630 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
631 | | #[allow(clippy::upper_case_acronyms)] |
632 | | pub enum SamplerAddressingMode { |
633 | | None = 0u32, |
634 | | ClampToEdge = 1u32, |
635 | | Clamp = 2u32, |
636 | | Repeat = 3u32, |
637 | | RepeatMirrored = 4u32, |
638 | | } |
639 | | impl SamplerAddressingMode { |
640 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
641 | 0 | Some(match n { |
642 | 0 | 0u32..=4u32 => unsafe { core::mem::transmute::<u32, SamplerAddressingMode>(n) }, |
643 | 0 | _ => return None, |
644 | | }) |
645 | 0 | } |
646 | | } |
647 | | #[allow(non_upper_case_globals)] |
648 | | impl SamplerAddressingMode {} |
649 | | impl core::str::FromStr for SamplerAddressingMode { |
650 | | type Err = (); |
651 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
652 | 0 | Ok(match s { |
653 | 0 | "None" => Self::None, |
654 | 0 | "ClampToEdge" => Self::ClampToEdge, |
655 | 0 | "Clamp" => Self::Clamp, |
656 | 0 | "Repeat" => Self::Repeat, |
657 | 0 | "RepeatMirrored" => Self::RepeatMirrored, |
658 | 0 | _ => return Err(()), |
659 | | }) |
660 | 0 | } |
661 | | } |
662 | | #[doc = "SPIR-V operand kind: [SamplerFilterMode](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_sampler_filter_mode_a_sampler_filter_mode)"] |
663 | | #[repr(u32)] |
664 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
665 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
666 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
667 | | #[allow(clippy::upper_case_acronyms)] |
668 | | pub enum SamplerFilterMode { |
669 | | Nearest = 0u32, |
670 | | Linear = 1u32, |
671 | | } |
672 | | impl SamplerFilterMode { |
673 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
674 | 0 | Some(match n { |
675 | 0 | 0u32..=1u32 => unsafe { core::mem::transmute::<u32, SamplerFilterMode>(n) }, |
676 | 0 | _ => return None, |
677 | | }) |
678 | 0 | } |
679 | | } |
680 | | #[allow(non_upper_case_globals)] |
681 | | impl SamplerFilterMode {} |
682 | | impl core::str::FromStr for SamplerFilterMode { |
683 | | type Err = (); |
684 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
685 | 0 | Ok(match s { |
686 | 0 | "Nearest" => Self::Nearest, |
687 | 0 | "Linear" => Self::Linear, |
688 | 0 | _ => return Err(()), |
689 | | }) |
690 | 0 | } |
691 | | } |
692 | | #[doc = "SPIR-V operand kind: [ImageFormat](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_image_format_a_image_format)"] |
693 | | #[repr(u32)] |
694 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
695 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
696 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
697 | | #[allow(clippy::upper_case_acronyms)] |
698 | | pub enum ImageFormat { |
699 | | Unknown = 0u32, |
700 | | Rgba32f = 1u32, |
701 | | Rgba16f = 2u32, |
702 | | R32f = 3u32, |
703 | | Rgba8 = 4u32, |
704 | | Rgba8Snorm = 5u32, |
705 | | Rg32f = 6u32, |
706 | | Rg16f = 7u32, |
707 | | R11fG11fB10f = 8u32, |
708 | | R16f = 9u32, |
709 | | Rgba16 = 10u32, |
710 | | Rgb10A2 = 11u32, |
711 | | Rg16 = 12u32, |
712 | | Rg8 = 13u32, |
713 | | R16 = 14u32, |
714 | | R8 = 15u32, |
715 | | Rgba16Snorm = 16u32, |
716 | | Rg16Snorm = 17u32, |
717 | | Rg8Snorm = 18u32, |
718 | | R16Snorm = 19u32, |
719 | | R8Snorm = 20u32, |
720 | | Rgba32i = 21u32, |
721 | | Rgba16i = 22u32, |
722 | | Rgba8i = 23u32, |
723 | | R32i = 24u32, |
724 | | Rg32i = 25u32, |
725 | | Rg16i = 26u32, |
726 | | Rg8i = 27u32, |
727 | | R16i = 28u32, |
728 | | R8i = 29u32, |
729 | | Rgba32ui = 30u32, |
730 | | Rgba16ui = 31u32, |
731 | | Rgba8ui = 32u32, |
732 | | R32ui = 33u32, |
733 | | Rgb10a2ui = 34u32, |
734 | | Rg32ui = 35u32, |
735 | | Rg16ui = 36u32, |
736 | | Rg8ui = 37u32, |
737 | | R16ui = 38u32, |
738 | | R8ui = 39u32, |
739 | | R64ui = 40u32, |
740 | | R64i = 41u32, |
741 | | } |
742 | | impl ImageFormat { |
743 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
744 | 0 | Some(match n { |
745 | 0 | 0u32..=41u32 => unsafe { core::mem::transmute::<u32, ImageFormat>(n) }, |
746 | 0 | _ => return None, |
747 | | }) |
748 | 0 | } |
749 | | } |
750 | | #[allow(non_upper_case_globals)] |
751 | | impl ImageFormat {} |
752 | | impl core::str::FromStr for ImageFormat { |
753 | | type Err = (); |
754 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
755 | 0 | Ok(match s { |
756 | 0 | "Unknown" => Self::Unknown, |
757 | 0 | "Rgba32f" => Self::Rgba32f, |
758 | 0 | "Rgba16f" => Self::Rgba16f, |
759 | 0 | "R32f" => Self::R32f, |
760 | 0 | "Rgba8" => Self::Rgba8, |
761 | 0 | "Rgba8Snorm" => Self::Rgba8Snorm, |
762 | 0 | "Rg32f" => Self::Rg32f, |
763 | 0 | "Rg16f" => Self::Rg16f, |
764 | 0 | "R11fG11fB10f" => Self::R11fG11fB10f, |
765 | 0 | "R16f" => Self::R16f, |
766 | 0 | "Rgba16" => Self::Rgba16, |
767 | 0 | "Rgb10A2" => Self::Rgb10A2, |
768 | 0 | "Rg16" => Self::Rg16, |
769 | 0 | "Rg8" => Self::Rg8, |
770 | 0 | "R16" => Self::R16, |
771 | 0 | "R8" => Self::R8, |
772 | 0 | "Rgba16Snorm" => Self::Rgba16Snorm, |
773 | 0 | "Rg16Snorm" => Self::Rg16Snorm, |
774 | 0 | "Rg8Snorm" => Self::Rg8Snorm, |
775 | 0 | "R16Snorm" => Self::R16Snorm, |
776 | 0 | "R8Snorm" => Self::R8Snorm, |
777 | 0 | "Rgba32i" => Self::Rgba32i, |
778 | 0 | "Rgba16i" => Self::Rgba16i, |
779 | 0 | "Rgba8i" => Self::Rgba8i, |
780 | 0 | "R32i" => Self::R32i, |
781 | 0 | "Rg32i" => Self::Rg32i, |
782 | 0 | "Rg16i" => Self::Rg16i, |
783 | 0 | "Rg8i" => Self::Rg8i, |
784 | 0 | "R16i" => Self::R16i, |
785 | 0 | "R8i" => Self::R8i, |
786 | 0 | "Rgba32ui" => Self::Rgba32ui, |
787 | 0 | "Rgba16ui" => Self::Rgba16ui, |
788 | 0 | "Rgba8ui" => Self::Rgba8ui, |
789 | 0 | "R32ui" => Self::R32ui, |
790 | 0 | "Rgb10a2ui" => Self::Rgb10a2ui, |
791 | 0 | "Rg32ui" => Self::Rg32ui, |
792 | 0 | "Rg16ui" => Self::Rg16ui, |
793 | 0 | "Rg8ui" => Self::Rg8ui, |
794 | 0 | "R16ui" => Self::R16ui, |
795 | 0 | "R8ui" => Self::R8ui, |
796 | 0 | "R64ui" => Self::R64ui, |
797 | 0 | "R64i" => Self::R64i, |
798 | 0 | _ => return Err(()), |
799 | | }) |
800 | 0 | } |
801 | | } |
802 | | #[doc = "SPIR-V operand kind: [ImageChannelOrder](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_image_channel_order_a_image_channel_order)"] |
803 | | #[repr(u32)] |
804 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
805 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
806 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
807 | | #[allow(clippy::upper_case_acronyms)] |
808 | | pub enum ImageChannelOrder { |
809 | | R = 0u32, |
810 | | A = 1u32, |
811 | | RG = 2u32, |
812 | | RA = 3u32, |
813 | | RGB = 4u32, |
814 | | RGBA = 5u32, |
815 | | BGRA = 6u32, |
816 | | ARGB = 7u32, |
817 | | Intensity = 8u32, |
818 | | Luminance = 9u32, |
819 | | Rx = 10u32, |
820 | | RGx = 11u32, |
821 | | RGBx = 12u32, |
822 | | Depth = 13u32, |
823 | | DepthStencil = 14u32, |
824 | | sRGB = 15u32, |
825 | | sRGBx = 16u32, |
826 | | sRGBA = 17u32, |
827 | | sBGRA = 18u32, |
828 | | ABGR = 19u32, |
829 | | } |
830 | | impl ImageChannelOrder { |
831 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
832 | 0 | Some(match n { |
833 | 0 | 0u32..=19u32 => unsafe { core::mem::transmute::<u32, ImageChannelOrder>(n) }, |
834 | 0 | _ => return None, |
835 | | }) |
836 | 0 | } |
837 | | } |
838 | | #[allow(non_upper_case_globals)] |
839 | | impl ImageChannelOrder {} |
840 | | impl core::str::FromStr for ImageChannelOrder { |
841 | | type Err = (); |
842 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
843 | 0 | Ok(match s { |
844 | 0 | "R" => Self::R, |
845 | 0 | "A" => Self::A, |
846 | 0 | "RG" => Self::RG, |
847 | 0 | "RA" => Self::RA, |
848 | 0 | "RGB" => Self::RGB, |
849 | 0 | "RGBA" => Self::RGBA, |
850 | 0 | "BGRA" => Self::BGRA, |
851 | 0 | "ARGB" => Self::ARGB, |
852 | 0 | "Intensity" => Self::Intensity, |
853 | 0 | "Luminance" => Self::Luminance, |
854 | 0 | "Rx" => Self::Rx, |
855 | 0 | "RGx" => Self::RGx, |
856 | 0 | "RGBx" => Self::RGBx, |
857 | 0 | "Depth" => Self::Depth, |
858 | 0 | "DepthStencil" => Self::DepthStencil, |
859 | 0 | "sRGB" => Self::sRGB, |
860 | 0 | "sRGBx" => Self::sRGBx, |
861 | 0 | "sRGBA" => Self::sRGBA, |
862 | 0 | "sBGRA" => Self::sBGRA, |
863 | 0 | "ABGR" => Self::ABGR, |
864 | 0 | _ => return Err(()), |
865 | | }) |
866 | 0 | } |
867 | | } |
868 | | #[doc = "SPIR-V operand kind: [ImageChannelDataType](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_image_channel_data_type_a_image_channel_data_type)"] |
869 | | #[repr(u32)] |
870 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
871 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
872 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
873 | | #[allow(clippy::upper_case_acronyms)] |
874 | | pub enum ImageChannelDataType { |
875 | | SnormInt8 = 0u32, |
876 | | SnormInt16 = 1u32, |
877 | | UnormInt8 = 2u32, |
878 | | UnormInt16 = 3u32, |
879 | | UnormShort565 = 4u32, |
880 | | UnormShort555 = 5u32, |
881 | | UnormInt101010 = 6u32, |
882 | | SignedInt8 = 7u32, |
883 | | SignedInt16 = 8u32, |
884 | | SignedInt32 = 9u32, |
885 | | UnsignedInt8 = 10u32, |
886 | | UnsignedInt16 = 11u32, |
887 | | UnsignedInt32 = 12u32, |
888 | | HalfFloat = 13u32, |
889 | | Float = 14u32, |
890 | | UnormInt24 = 15u32, |
891 | | UnormInt101010_2 = 16u32, |
892 | | UnsignedIntRaw10EXT = 19u32, |
893 | | UnsignedIntRaw12EXT = 20u32, |
894 | | UnormInt2_101010EXT = 21u32, |
895 | | } |
896 | | impl ImageChannelDataType { |
897 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
898 | 0 | Some(match n { |
899 | 0 | 0u32..=16u32 => unsafe { core::mem::transmute::<u32, ImageChannelDataType>(n) }, |
900 | 0 | 19u32..=21u32 => unsafe { core::mem::transmute::<u32, ImageChannelDataType>(n) }, |
901 | 0 | _ => return None, |
902 | | }) |
903 | 0 | } |
904 | | } |
905 | | #[allow(non_upper_case_globals)] |
906 | | impl ImageChannelDataType {} |
907 | | impl core::str::FromStr for ImageChannelDataType { |
908 | | type Err = (); |
909 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
910 | 0 | Ok(match s { |
911 | 0 | "SnormInt8" => Self::SnormInt8, |
912 | 0 | "SnormInt16" => Self::SnormInt16, |
913 | 0 | "UnormInt8" => Self::UnormInt8, |
914 | 0 | "UnormInt16" => Self::UnormInt16, |
915 | 0 | "UnormShort565" => Self::UnormShort565, |
916 | 0 | "UnormShort555" => Self::UnormShort555, |
917 | 0 | "UnormInt101010" => Self::UnormInt101010, |
918 | 0 | "SignedInt8" => Self::SignedInt8, |
919 | 0 | "SignedInt16" => Self::SignedInt16, |
920 | 0 | "SignedInt32" => Self::SignedInt32, |
921 | 0 | "UnsignedInt8" => Self::UnsignedInt8, |
922 | 0 | "UnsignedInt16" => Self::UnsignedInt16, |
923 | 0 | "UnsignedInt32" => Self::UnsignedInt32, |
924 | 0 | "HalfFloat" => Self::HalfFloat, |
925 | 0 | "Float" => Self::Float, |
926 | 0 | "UnormInt24" => Self::UnormInt24, |
927 | 0 | "UnormInt101010_2" => Self::UnormInt101010_2, |
928 | 0 | "UnsignedIntRaw10EXT" => Self::UnsignedIntRaw10EXT, |
929 | 0 | "UnsignedIntRaw12EXT" => Self::UnsignedIntRaw12EXT, |
930 | 0 | "UnormInt2_101010EXT" => Self::UnormInt2_101010EXT, |
931 | 0 | _ => return Err(()), |
932 | | }) |
933 | 0 | } |
934 | | } |
935 | | #[doc = "SPIR-V operand kind: [FPRoundingMode](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_fp_rounding_mode_a_fp_rounding_mode)"] |
936 | | #[repr(u32)] |
937 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
938 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
939 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
940 | | #[allow(clippy::upper_case_acronyms)] |
941 | | pub enum FPRoundingMode { |
942 | | RTE = 0u32, |
943 | | RTZ = 1u32, |
944 | | RTP = 2u32, |
945 | | RTN = 3u32, |
946 | | } |
947 | | impl FPRoundingMode { |
948 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
949 | 0 | Some(match n { |
950 | 0 | 0u32..=3u32 => unsafe { core::mem::transmute::<u32, FPRoundingMode>(n) }, |
951 | 0 | _ => return None, |
952 | | }) |
953 | 0 | } |
954 | | } |
955 | | #[allow(non_upper_case_globals)] |
956 | | impl FPRoundingMode {} |
957 | | impl core::str::FromStr for FPRoundingMode { |
958 | | type Err = (); |
959 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
960 | 0 | Ok(match s { |
961 | 0 | "RTE" => Self::RTE, |
962 | 0 | "RTZ" => Self::RTZ, |
963 | 0 | "RTP" => Self::RTP, |
964 | 0 | "RTN" => Self::RTN, |
965 | 0 | _ => return Err(()), |
966 | | }) |
967 | 0 | } |
968 | | } |
969 | | #[doc = "SPIR-V operand kind: [FPDenormMode](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_fp_denorm_mode_a_fp_denorm_mode)"] |
970 | | #[repr(u32)] |
971 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
972 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
973 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
974 | | #[allow(clippy::upper_case_acronyms)] |
975 | | pub enum FPDenormMode { |
976 | | Preserve = 0u32, |
977 | | FlushToZero = 1u32, |
978 | | } |
979 | | impl FPDenormMode { |
980 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
981 | 0 | Some(match n { |
982 | 0 | 0u32..=1u32 => unsafe { core::mem::transmute::<u32, FPDenormMode>(n) }, |
983 | 0 | _ => return None, |
984 | | }) |
985 | 0 | } |
986 | | } |
987 | | #[allow(non_upper_case_globals)] |
988 | | impl FPDenormMode {} |
989 | | impl core::str::FromStr for FPDenormMode { |
990 | | type Err = (); |
991 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
992 | 0 | Ok(match s { |
993 | 0 | "Preserve" => Self::Preserve, |
994 | 0 | "FlushToZero" => Self::FlushToZero, |
995 | 0 | _ => return Err(()), |
996 | | }) |
997 | 0 | } |
998 | | } |
999 | | #[doc = "SPIR-V operand kind: [QuantizationModes](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_quantization_modes_a_quantization_modes)"] |
1000 | | #[repr(u32)] |
1001 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
1002 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
1003 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
1004 | | #[allow(clippy::upper_case_acronyms)] |
1005 | | pub enum QuantizationModes { |
1006 | | TRN = 0u32, |
1007 | | TRN_ZERO = 1u32, |
1008 | | RND = 2u32, |
1009 | | RND_ZERO = 3u32, |
1010 | | RND_INF = 4u32, |
1011 | | RND_MIN_INF = 5u32, |
1012 | | RND_CONV = 6u32, |
1013 | | RND_CONV_ODD = 7u32, |
1014 | | } |
1015 | | impl QuantizationModes { |
1016 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
1017 | 0 | Some(match n { |
1018 | 0 | 0u32..=7u32 => unsafe { core::mem::transmute::<u32, QuantizationModes>(n) }, |
1019 | 0 | _ => return None, |
1020 | | }) |
1021 | 0 | } |
1022 | | } |
1023 | | #[allow(non_upper_case_globals)] |
1024 | | impl QuantizationModes {} |
1025 | | impl core::str::FromStr for QuantizationModes { |
1026 | | type Err = (); |
1027 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
1028 | 0 | Ok(match s { |
1029 | 0 | "TRN" => Self::TRN, |
1030 | 0 | "TRN_ZERO" => Self::TRN_ZERO, |
1031 | 0 | "RND" => Self::RND, |
1032 | 0 | "RND_ZERO" => Self::RND_ZERO, |
1033 | 0 | "RND_INF" => Self::RND_INF, |
1034 | 0 | "RND_MIN_INF" => Self::RND_MIN_INF, |
1035 | 0 | "RND_CONV" => Self::RND_CONV, |
1036 | 0 | "RND_CONV_ODD" => Self::RND_CONV_ODD, |
1037 | 0 | _ => return Err(()), |
1038 | | }) |
1039 | 0 | } |
1040 | | } |
1041 | | #[doc = "SPIR-V operand kind: [FPOperationMode](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_fp_operation_mode_a_fp_operation_mode)"] |
1042 | | #[repr(u32)] |
1043 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
1044 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
1045 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
1046 | | #[allow(clippy::upper_case_acronyms)] |
1047 | | pub enum FPOperationMode { |
1048 | | IEEE = 0u32, |
1049 | | ALT = 1u32, |
1050 | | } |
1051 | | impl FPOperationMode { |
1052 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
1053 | 0 | Some(match n { |
1054 | 0 | 0u32..=1u32 => unsafe { core::mem::transmute::<u32, FPOperationMode>(n) }, |
1055 | 0 | _ => return None, |
1056 | | }) |
1057 | 0 | } |
1058 | | } |
1059 | | #[allow(non_upper_case_globals)] |
1060 | | impl FPOperationMode {} |
1061 | | impl core::str::FromStr for FPOperationMode { |
1062 | | type Err = (); |
1063 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
1064 | 0 | Ok(match s { |
1065 | 0 | "IEEE" => Self::IEEE, |
1066 | 0 | "ALT" => Self::ALT, |
1067 | 0 | _ => return Err(()), |
1068 | | }) |
1069 | 0 | } |
1070 | | } |
1071 | | #[doc = "SPIR-V operand kind: [OverflowModes](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_overflow_modes_a_overflow_modes)"] |
1072 | | #[repr(u32)] |
1073 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
1074 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
1075 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
1076 | | #[allow(clippy::upper_case_acronyms)] |
1077 | | pub enum OverflowModes { |
1078 | | WRAP = 0u32, |
1079 | | SAT = 1u32, |
1080 | | SAT_ZERO = 2u32, |
1081 | | SAT_SYM = 3u32, |
1082 | | } |
1083 | | impl OverflowModes { |
1084 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
1085 | 0 | Some(match n { |
1086 | 0 | 0u32..=3u32 => unsafe { core::mem::transmute::<u32, OverflowModes>(n) }, |
1087 | 0 | _ => return None, |
1088 | | }) |
1089 | 0 | } |
1090 | | } |
1091 | | #[allow(non_upper_case_globals)] |
1092 | | impl OverflowModes {} |
1093 | | impl core::str::FromStr for OverflowModes { |
1094 | | type Err = (); |
1095 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
1096 | 0 | Ok(match s { |
1097 | 0 | "WRAP" => Self::WRAP, |
1098 | 0 | "SAT" => Self::SAT, |
1099 | 0 | "SAT_ZERO" => Self::SAT_ZERO, |
1100 | 0 | "SAT_SYM" => Self::SAT_SYM, |
1101 | 0 | _ => return Err(()), |
1102 | | }) |
1103 | 0 | } |
1104 | | } |
1105 | | #[doc = "SPIR-V operand kind: [LinkageType](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_linkage_type_a_linkage_type)"] |
1106 | | #[repr(u32)] |
1107 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
1108 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
1109 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
1110 | | #[allow(clippy::upper_case_acronyms)] |
1111 | | pub enum LinkageType { |
1112 | | Export = 0u32, |
1113 | | Import = 1u32, |
1114 | | LinkOnceODR = 2u32, |
1115 | | } |
1116 | | impl LinkageType { |
1117 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
1118 | 0 | Some(match n { |
1119 | 0 | 0u32..=2u32 => unsafe { core::mem::transmute::<u32, LinkageType>(n) }, |
1120 | 0 | _ => return None, |
1121 | | }) |
1122 | 0 | } |
1123 | | } |
1124 | | #[allow(non_upper_case_globals)] |
1125 | | impl LinkageType {} |
1126 | | impl core::str::FromStr for LinkageType { |
1127 | | type Err = (); |
1128 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
1129 | 0 | Ok(match s { |
1130 | 0 | "Export" => Self::Export, |
1131 | 0 | "Import" => Self::Import, |
1132 | 0 | "LinkOnceODR" => Self::LinkOnceODR, |
1133 | 0 | _ => return Err(()), |
1134 | | }) |
1135 | 0 | } |
1136 | | } |
1137 | | #[doc = "SPIR-V operand kind: [AccessQualifier](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_access_qualifier_a_access_qualifier)"] |
1138 | | #[repr(u32)] |
1139 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
1140 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
1141 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
1142 | | #[allow(clippy::upper_case_acronyms)] |
1143 | | pub enum AccessQualifier { |
1144 | | ReadOnly = 0u32, |
1145 | | WriteOnly = 1u32, |
1146 | | ReadWrite = 2u32, |
1147 | | } |
1148 | | impl AccessQualifier { |
1149 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
1150 | 0 | Some(match n { |
1151 | 0 | 0u32..=2u32 => unsafe { core::mem::transmute::<u32, AccessQualifier>(n) }, |
1152 | 0 | _ => return None, |
1153 | | }) |
1154 | 0 | } |
1155 | | } |
1156 | | #[allow(non_upper_case_globals)] |
1157 | | impl AccessQualifier {} |
1158 | | impl core::str::FromStr for AccessQualifier { |
1159 | | type Err = (); |
1160 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
1161 | 0 | Ok(match s { |
1162 | 0 | "ReadOnly" => Self::ReadOnly, |
1163 | 0 | "WriteOnly" => Self::WriteOnly, |
1164 | 0 | "ReadWrite" => Self::ReadWrite, |
1165 | 0 | _ => return Err(()), |
1166 | | }) |
1167 | 0 | } |
1168 | | } |
1169 | | #[doc = "SPIR-V operand kind: [HostAccessQualifier](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_host_access_qualifier_a_host_access_qualifier)"] |
1170 | | #[repr(u32)] |
1171 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
1172 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
1173 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
1174 | | #[allow(clippy::upper_case_acronyms)] |
1175 | | pub enum HostAccessQualifier { |
1176 | | NoneINTEL = 0u32, |
1177 | | ReadINTEL = 1u32, |
1178 | | WriteINTEL = 2u32, |
1179 | | ReadWriteINTEL = 3u32, |
1180 | | } |
1181 | | impl HostAccessQualifier { |
1182 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
1183 | 0 | Some(match n { |
1184 | 0 | 0u32..=3u32 => unsafe { core::mem::transmute::<u32, HostAccessQualifier>(n) }, |
1185 | 0 | _ => return None, |
1186 | | }) |
1187 | 0 | } |
1188 | | } |
1189 | | #[allow(non_upper_case_globals)] |
1190 | | impl HostAccessQualifier {} |
1191 | | impl core::str::FromStr for HostAccessQualifier { |
1192 | | type Err = (); |
1193 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
1194 | 0 | Ok(match s { |
1195 | 0 | "NoneINTEL" => Self::NoneINTEL, |
1196 | 0 | "ReadINTEL" => Self::ReadINTEL, |
1197 | 0 | "WriteINTEL" => Self::WriteINTEL, |
1198 | 0 | "ReadWriteINTEL" => Self::ReadWriteINTEL, |
1199 | 0 | _ => return Err(()), |
1200 | | }) |
1201 | 0 | } |
1202 | | } |
1203 | | #[doc = "SPIR-V operand kind: [FunctionParameterAttribute](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_function_parameter_attribute_a_function_parameter_attribute)"] |
1204 | | #[repr(u32)] |
1205 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
1206 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
1207 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
1208 | | #[allow(clippy::upper_case_acronyms)] |
1209 | | pub enum FunctionParameterAttribute { |
1210 | | Zext = 0u32, |
1211 | | Sext = 1u32, |
1212 | | ByVal = 2u32, |
1213 | | Sret = 3u32, |
1214 | | NoAlias = 4u32, |
1215 | | NoCapture = 5u32, |
1216 | | NoWrite = 6u32, |
1217 | | NoReadWrite = 7u32, |
1218 | | RuntimeAlignedINTEL = 5940u32, |
1219 | | } |
1220 | | impl FunctionParameterAttribute { |
1221 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
1222 | 0 | Some(match n { |
1223 | 0 | 0u32..=7u32 => unsafe { core::mem::transmute::<u32, FunctionParameterAttribute>(n) }, |
1224 | 0 | 5940u32 => unsafe { core::mem::transmute::<u32, FunctionParameterAttribute>(5940u32) }, |
1225 | 0 | _ => return None, |
1226 | | }) |
1227 | 0 | } |
1228 | | } |
1229 | | #[allow(non_upper_case_globals)] |
1230 | | impl FunctionParameterAttribute {} |
1231 | | impl core::str::FromStr for FunctionParameterAttribute { |
1232 | | type Err = (); |
1233 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
1234 | 0 | Ok(match s { |
1235 | 0 | "Zext" => Self::Zext, |
1236 | 0 | "Sext" => Self::Sext, |
1237 | 0 | "ByVal" => Self::ByVal, |
1238 | 0 | "Sret" => Self::Sret, |
1239 | 0 | "NoAlias" => Self::NoAlias, |
1240 | 0 | "NoCapture" => Self::NoCapture, |
1241 | 0 | "NoWrite" => Self::NoWrite, |
1242 | 0 | "NoReadWrite" => Self::NoReadWrite, |
1243 | 0 | "RuntimeAlignedINTEL" => Self::RuntimeAlignedINTEL, |
1244 | 0 | _ => return Err(()), |
1245 | | }) |
1246 | 0 | } |
1247 | | } |
1248 | | #[doc = "SPIR-V operand kind: [Decoration](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_decoration_a_decoration)"] |
1249 | | #[repr(u32)] |
1250 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
1251 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
1252 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
1253 | | #[allow(clippy::upper_case_acronyms)] |
1254 | | pub enum Decoration { |
1255 | | RelaxedPrecision = 0u32, |
1256 | | SpecId = 1u32, |
1257 | | Block = 2u32, |
1258 | | BufferBlock = 3u32, |
1259 | | RowMajor = 4u32, |
1260 | | ColMajor = 5u32, |
1261 | | ArrayStride = 6u32, |
1262 | | MatrixStride = 7u32, |
1263 | | GLSLShared = 8u32, |
1264 | | GLSLPacked = 9u32, |
1265 | | CPacked = 10u32, |
1266 | | BuiltIn = 11u32, |
1267 | | NoPerspective = 13u32, |
1268 | | Flat = 14u32, |
1269 | | Patch = 15u32, |
1270 | | Centroid = 16u32, |
1271 | | Sample = 17u32, |
1272 | | Invariant = 18u32, |
1273 | | Restrict = 19u32, |
1274 | | Aliased = 20u32, |
1275 | | Volatile = 21u32, |
1276 | | Constant = 22u32, |
1277 | | Coherent = 23u32, |
1278 | | NonWritable = 24u32, |
1279 | | NonReadable = 25u32, |
1280 | | Uniform = 26u32, |
1281 | | UniformId = 27u32, |
1282 | | SaturatedConversion = 28u32, |
1283 | | Stream = 29u32, |
1284 | | Location = 30u32, |
1285 | | Component = 31u32, |
1286 | | Index = 32u32, |
1287 | | Binding = 33u32, |
1288 | | DescriptorSet = 34u32, |
1289 | | Offset = 35u32, |
1290 | | XfbBuffer = 36u32, |
1291 | | XfbStride = 37u32, |
1292 | | FuncParamAttr = 38u32, |
1293 | | FPRoundingMode = 39u32, |
1294 | | FPFastMathMode = 40u32, |
1295 | | LinkageAttributes = 41u32, |
1296 | | NoContraction = 42u32, |
1297 | | InputAttachmentIndex = 43u32, |
1298 | | Alignment = 44u32, |
1299 | | MaxByteOffset = 45u32, |
1300 | | AlignmentId = 46u32, |
1301 | | MaxByteOffsetId = 47u32, |
1302 | | NoSignedWrap = 4469u32, |
1303 | | NoUnsignedWrap = 4470u32, |
1304 | | WeightTextureQCOM = 4487u32, |
1305 | | BlockMatchTextureQCOM = 4488u32, |
1306 | | BlockMatchSamplerQCOM = 4499u32, |
1307 | | ExplicitInterpAMD = 4999u32, |
1308 | | NodeSharesPayloadLimitsWithAMDX = 5019u32, |
1309 | | NodeMaxPayloadsAMDX = 5020u32, |
1310 | | TrackFinishWritingAMDX = 5078u32, |
1311 | | PayloadNodeNameAMDX = 5091u32, |
1312 | | PayloadNodeBaseIndexAMDX = 5098u32, |
1313 | | PayloadNodeSparseArrayAMDX = 5099u32, |
1314 | | PayloadNodeArraySizeAMDX = 5100u32, |
1315 | | PayloadDispatchIndirectAMDX = 5105u32, |
1316 | | OverrideCoverageNV = 5248u32, |
1317 | | PassthroughNV = 5250u32, |
1318 | | ViewportRelativeNV = 5252u32, |
1319 | | SecondaryViewportRelativeNV = 5256u32, |
1320 | | PerPrimitiveEXT = 5271u32, |
1321 | | PerViewNV = 5272u32, |
1322 | | PerTaskNV = 5273u32, |
1323 | | PerVertexKHR = 5285u32, |
1324 | | NonUniform = 5300u32, |
1325 | | RestrictPointer = 5355u32, |
1326 | | AliasedPointer = 5356u32, |
1327 | | HitObjectShaderRecordBufferNV = 5386u32, |
1328 | | BindlessSamplerNV = 5398u32, |
1329 | | BindlessImageNV = 5399u32, |
1330 | | BoundSamplerNV = 5400u32, |
1331 | | BoundImageNV = 5401u32, |
1332 | | SIMTCallINTEL = 5599u32, |
1333 | | ReferencedIndirectlyINTEL = 5602u32, |
1334 | | ClobberINTEL = 5607u32, |
1335 | | SideEffectsINTEL = 5608u32, |
1336 | | VectorComputeVariableINTEL = 5624u32, |
1337 | | FuncParamIOKindINTEL = 5625u32, |
1338 | | VectorComputeFunctionINTEL = 5626u32, |
1339 | | StackCallINTEL = 5627u32, |
1340 | | GlobalVariableOffsetINTEL = 5628u32, |
1341 | | CounterBuffer = 5634u32, |
1342 | | UserSemantic = 5635u32, |
1343 | | UserTypeGOOGLE = 5636u32, |
1344 | | FunctionRoundingModeINTEL = 5822u32, |
1345 | | FunctionDenormModeINTEL = 5823u32, |
1346 | | RegisterINTEL = 5825u32, |
1347 | | MemoryINTEL = 5826u32, |
1348 | | NumbanksINTEL = 5827u32, |
1349 | | BankwidthINTEL = 5828u32, |
1350 | | MaxPrivateCopiesINTEL = 5829u32, |
1351 | | SinglepumpINTEL = 5830u32, |
1352 | | DoublepumpINTEL = 5831u32, |
1353 | | MaxReplicatesINTEL = 5832u32, |
1354 | | SimpleDualPortINTEL = 5833u32, |
1355 | | MergeINTEL = 5834u32, |
1356 | | BankBitsINTEL = 5835u32, |
1357 | | ForcePow2DepthINTEL = 5836u32, |
1358 | | StridesizeINTEL = 5883u32, |
1359 | | WordsizeINTEL = 5884u32, |
1360 | | TrueDualPortINTEL = 5885u32, |
1361 | | BurstCoalesceINTEL = 5899u32, |
1362 | | CacheSizeINTEL = 5900u32, |
1363 | | DontStaticallyCoalesceINTEL = 5901u32, |
1364 | | PrefetchINTEL = 5902u32, |
1365 | | StallEnableINTEL = 5905u32, |
1366 | | FuseLoopsInFunctionINTEL = 5907u32, |
1367 | | MathOpDSPModeINTEL = 5909u32, |
1368 | | AliasScopeINTEL = 5914u32, |
1369 | | NoAliasINTEL = 5915u32, |
1370 | | InitiationIntervalINTEL = 5917u32, |
1371 | | MaxConcurrencyINTEL = 5918u32, |
1372 | | PipelineEnableINTEL = 5919u32, |
1373 | | BufferLocationINTEL = 5921u32, |
1374 | | IOPipeStorageINTEL = 5944u32, |
1375 | | FunctionFloatingPointModeINTEL = 6080u32, |
1376 | | SingleElementVectorINTEL = 6085u32, |
1377 | | VectorComputeCallableFunctionINTEL = 6087u32, |
1378 | | MediaBlockIOINTEL = 6140u32, |
1379 | | StallFreeINTEL = 6151u32, |
1380 | | FPMaxErrorDecorationINTEL = 6170u32, |
1381 | | LatencyControlLabelINTEL = 6172u32, |
1382 | | LatencyControlConstraintINTEL = 6173u32, |
1383 | | ConduitKernelArgumentINTEL = 6175u32, |
1384 | | RegisterMapKernelArgumentINTEL = 6176u32, |
1385 | | MMHostInterfaceAddressWidthINTEL = 6177u32, |
1386 | | MMHostInterfaceDataWidthINTEL = 6178u32, |
1387 | | MMHostInterfaceLatencyINTEL = 6179u32, |
1388 | | MMHostInterfaceReadWriteModeINTEL = 6180u32, |
1389 | | MMHostInterfaceMaxBurstINTEL = 6181u32, |
1390 | | MMHostInterfaceWaitRequestINTEL = 6182u32, |
1391 | | StableKernelArgumentINTEL = 6183u32, |
1392 | | HostAccessINTEL = 6188u32, |
1393 | | InitModeINTEL = 6190u32, |
1394 | | ImplementInRegisterMapINTEL = 6191u32, |
1395 | | CacheControlLoadINTEL = 6442u32, |
1396 | | CacheControlStoreINTEL = 6443u32, |
1397 | | } |
1398 | | impl Decoration { |
1399 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
1400 | 0 | Some(match n { |
1401 | 0 | 0u32..=11u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1402 | 0 | 13u32..=47u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1403 | 0 | 4469u32..=4470u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1404 | 0 | 4487u32..=4488u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1405 | 0 | 4499u32 => unsafe { core::mem::transmute::<u32, Decoration>(4499u32) }, |
1406 | 0 | 4999u32 => unsafe { core::mem::transmute::<u32, Decoration>(4999u32) }, |
1407 | 0 | 5019u32..=5020u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1408 | 0 | 5078u32 => unsafe { core::mem::transmute::<u32, Decoration>(5078u32) }, |
1409 | 0 | 5091u32 => unsafe { core::mem::transmute::<u32, Decoration>(5091u32) }, |
1410 | 0 | 5098u32..=5100u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1411 | 0 | 5105u32 => unsafe { core::mem::transmute::<u32, Decoration>(5105u32) }, |
1412 | 0 | 5248u32 => unsafe { core::mem::transmute::<u32, Decoration>(5248u32) }, |
1413 | 0 | 5250u32 => unsafe { core::mem::transmute::<u32, Decoration>(5250u32) }, |
1414 | 0 | 5252u32 => unsafe { core::mem::transmute::<u32, Decoration>(5252u32) }, |
1415 | 0 | 5256u32 => unsafe { core::mem::transmute::<u32, Decoration>(5256u32) }, |
1416 | 0 | 5271u32..=5273u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1417 | 0 | 5285u32 => unsafe { core::mem::transmute::<u32, Decoration>(5285u32) }, |
1418 | 0 | 5300u32 => unsafe { core::mem::transmute::<u32, Decoration>(5300u32) }, |
1419 | 0 | 5355u32..=5356u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1420 | 0 | 5386u32 => unsafe { core::mem::transmute::<u32, Decoration>(5386u32) }, |
1421 | 0 | 5398u32..=5401u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1422 | 0 | 5599u32 => unsafe { core::mem::transmute::<u32, Decoration>(5599u32) }, |
1423 | 0 | 5602u32 => unsafe { core::mem::transmute::<u32, Decoration>(5602u32) }, |
1424 | 0 | 5607u32..=5608u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1425 | 0 | 5624u32..=5628u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1426 | 0 | 5634u32..=5636u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1427 | 0 | 5822u32..=5823u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1428 | 0 | 5825u32..=5836u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1429 | 0 | 5883u32..=5885u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1430 | 0 | 5899u32..=5902u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1431 | 0 | 5905u32 => unsafe { core::mem::transmute::<u32, Decoration>(5905u32) }, |
1432 | 0 | 5907u32 => unsafe { core::mem::transmute::<u32, Decoration>(5907u32) }, |
1433 | 0 | 5909u32 => unsafe { core::mem::transmute::<u32, Decoration>(5909u32) }, |
1434 | 0 | 5914u32..=5915u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1435 | 0 | 5917u32..=5919u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1436 | 0 | 5921u32 => unsafe { core::mem::transmute::<u32, Decoration>(5921u32) }, |
1437 | 0 | 5944u32 => unsafe { core::mem::transmute::<u32, Decoration>(5944u32) }, |
1438 | 0 | 6080u32 => unsafe { core::mem::transmute::<u32, Decoration>(6080u32) }, |
1439 | 0 | 6085u32 => unsafe { core::mem::transmute::<u32, Decoration>(6085u32) }, |
1440 | 0 | 6087u32 => unsafe { core::mem::transmute::<u32, Decoration>(6087u32) }, |
1441 | 0 | 6140u32 => unsafe { core::mem::transmute::<u32, Decoration>(6140u32) }, |
1442 | 0 | 6151u32 => unsafe { core::mem::transmute::<u32, Decoration>(6151u32) }, |
1443 | 0 | 6170u32 => unsafe { core::mem::transmute::<u32, Decoration>(6170u32) }, |
1444 | 0 | 6172u32..=6173u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1445 | 0 | 6175u32..=6183u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1446 | 0 | 6188u32 => unsafe { core::mem::transmute::<u32, Decoration>(6188u32) }, |
1447 | 0 | 6190u32..=6191u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1448 | 0 | 6442u32..=6443u32 => unsafe { core::mem::transmute::<u32, Decoration>(n) }, |
1449 | 0 | _ => return None, |
1450 | | }) |
1451 | 0 | } |
1452 | | } |
1453 | | #[allow(non_upper_case_globals)] |
1454 | | impl Decoration { |
1455 | | pub const PerPrimitiveNV: Self = Self::PerPrimitiveEXT; |
1456 | | pub const PerVertexNV: Self = Self::PerVertexKHR; |
1457 | | pub const NonUniformEXT: Self = Self::NonUniform; |
1458 | | pub const RestrictPointerEXT: Self = Self::RestrictPointer; |
1459 | | pub const AliasedPointerEXT: Self = Self::AliasedPointer; |
1460 | | pub const HlslCounterBufferGOOGLE: Self = Self::CounterBuffer; |
1461 | | pub const HlslSemanticGOOGLE: Self = Self::UserSemantic; |
1462 | | } |
1463 | | impl core::str::FromStr for Decoration { |
1464 | | type Err = (); |
1465 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
1466 | 0 | Ok(match s { |
1467 | 0 | "RelaxedPrecision" => Self::RelaxedPrecision, |
1468 | 0 | "SpecId" => Self::SpecId, |
1469 | 0 | "Block" => Self::Block, |
1470 | 0 | "BufferBlock" => Self::BufferBlock, |
1471 | 0 | "RowMajor" => Self::RowMajor, |
1472 | 0 | "ColMajor" => Self::ColMajor, |
1473 | 0 | "ArrayStride" => Self::ArrayStride, |
1474 | 0 | "MatrixStride" => Self::MatrixStride, |
1475 | 0 | "GLSLShared" => Self::GLSLShared, |
1476 | 0 | "GLSLPacked" => Self::GLSLPacked, |
1477 | 0 | "CPacked" => Self::CPacked, |
1478 | 0 | "BuiltIn" => Self::BuiltIn, |
1479 | 0 | "NoPerspective" => Self::NoPerspective, |
1480 | 0 | "Flat" => Self::Flat, |
1481 | 0 | "Patch" => Self::Patch, |
1482 | 0 | "Centroid" => Self::Centroid, |
1483 | 0 | "Sample" => Self::Sample, |
1484 | 0 | "Invariant" => Self::Invariant, |
1485 | 0 | "Restrict" => Self::Restrict, |
1486 | 0 | "Aliased" => Self::Aliased, |
1487 | 0 | "Volatile" => Self::Volatile, |
1488 | 0 | "Constant" => Self::Constant, |
1489 | 0 | "Coherent" => Self::Coherent, |
1490 | 0 | "NonWritable" => Self::NonWritable, |
1491 | 0 | "NonReadable" => Self::NonReadable, |
1492 | 0 | "Uniform" => Self::Uniform, |
1493 | 0 | "UniformId" => Self::UniformId, |
1494 | 0 | "SaturatedConversion" => Self::SaturatedConversion, |
1495 | 0 | "Stream" => Self::Stream, |
1496 | 0 | "Location" => Self::Location, |
1497 | 0 | "Component" => Self::Component, |
1498 | 0 | "Index" => Self::Index, |
1499 | 0 | "Binding" => Self::Binding, |
1500 | 0 | "DescriptorSet" => Self::DescriptorSet, |
1501 | 0 | "Offset" => Self::Offset, |
1502 | 0 | "XfbBuffer" => Self::XfbBuffer, |
1503 | 0 | "XfbStride" => Self::XfbStride, |
1504 | 0 | "FuncParamAttr" => Self::FuncParamAttr, |
1505 | 0 | "FPRoundingMode" => Self::FPRoundingMode, |
1506 | 0 | "FPFastMathMode" => Self::FPFastMathMode, |
1507 | 0 | "LinkageAttributes" => Self::LinkageAttributes, |
1508 | 0 | "NoContraction" => Self::NoContraction, |
1509 | 0 | "InputAttachmentIndex" => Self::InputAttachmentIndex, |
1510 | 0 | "Alignment" => Self::Alignment, |
1511 | 0 | "MaxByteOffset" => Self::MaxByteOffset, |
1512 | 0 | "AlignmentId" => Self::AlignmentId, |
1513 | 0 | "MaxByteOffsetId" => Self::MaxByteOffsetId, |
1514 | 0 | "NoSignedWrap" => Self::NoSignedWrap, |
1515 | 0 | "NoUnsignedWrap" => Self::NoUnsignedWrap, |
1516 | 0 | "WeightTextureQCOM" => Self::WeightTextureQCOM, |
1517 | 0 | "BlockMatchTextureQCOM" => Self::BlockMatchTextureQCOM, |
1518 | 0 | "BlockMatchSamplerQCOM" => Self::BlockMatchSamplerQCOM, |
1519 | 0 | "ExplicitInterpAMD" => Self::ExplicitInterpAMD, |
1520 | 0 | "NodeSharesPayloadLimitsWithAMDX" => Self::NodeSharesPayloadLimitsWithAMDX, |
1521 | 0 | "NodeMaxPayloadsAMDX" => Self::NodeMaxPayloadsAMDX, |
1522 | 0 | "TrackFinishWritingAMDX" => Self::TrackFinishWritingAMDX, |
1523 | 0 | "PayloadNodeNameAMDX" => Self::PayloadNodeNameAMDX, |
1524 | 0 | "PayloadNodeBaseIndexAMDX" => Self::PayloadNodeBaseIndexAMDX, |
1525 | 0 | "PayloadNodeSparseArrayAMDX" => Self::PayloadNodeSparseArrayAMDX, |
1526 | 0 | "PayloadNodeArraySizeAMDX" => Self::PayloadNodeArraySizeAMDX, |
1527 | 0 | "PayloadDispatchIndirectAMDX" => Self::PayloadDispatchIndirectAMDX, |
1528 | 0 | "OverrideCoverageNV" => Self::OverrideCoverageNV, |
1529 | 0 | "PassthroughNV" => Self::PassthroughNV, |
1530 | 0 | "ViewportRelativeNV" => Self::ViewportRelativeNV, |
1531 | 0 | "SecondaryViewportRelativeNV" => Self::SecondaryViewportRelativeNV, |
1532 | 0 | "PerPrimitiveEXT" => Self::PerPrimitiveEXT, |
1533 | 0 | "PerPrimitiveNV" => Self::PerPrimitiveEXT, |
1534 | 0 | "PerViewNV" => Self::PerViewNV, |
1535 | 0 | "PerTaskNV" => Self::PerTaskNV, |
1536 | 0 | "PerVertexKHR" => Self::PerVertexKHR, |
1537 | 0 | "PerVertexNV" => Self::PerVertexKHR, |
1538 | 0 | "NonUniform" => Self::NonUniform, |
1539 | 0 | "NonUniformEXT" => Self::NonUniform, |
1540 | 0 | "RestrictPointer" => Self::RestrictPointer, |
1541 | 0 | "RestrictPointerEXT" => Self::RestrictPointer, |
1542 | 0 | "AliasedPointer" => Self::AliasedPointer, |
1543 | 0 | "AliasedPointerEXT" => Self::AliasedPointer, |
1544 | 0 | "HitObjectShaderRecordBufferNV" => Self::HitObjectShaderRecordBufferNV, |
1545 | 0 | "BindlessSamplerNV" => Self::BindlessSamplerNV, |
1546 | 0 | "BindlessImageNV" => Self::BindlessImageNV, |
1547 | 0 | "BoundSamplerNV" => Self::BoundSamplerNV, |
1548 | 0 | "BoundImageNV" => Self::BoundImageNV, |
1549 | 0 | "SIMTCallINTEL" => Self::SIMTCallINTEL, |
1550 | 0 | "ReferencedIndirectlyINTEL" => Self::ReferencedIndirectlyINTEL, |
1551 | 0 | "ClobberINTEL" => Self::ClobberINTEL, |
1552 | 0 | "SideEffectsINTEL" => Self::SideEffectsINTEL, |
1553 | 0 | "VectorComputeVariableINTEL" => Self::VectorComputeVariableINTEL, |
1554 | 0 | "FuncParamIOKindINTEL" => Self::FuncParamIOKindINTEL, |
1555 | 0 | "VectorComputeFunctionINTEL" => Self::VectorComputeFunctionINTEL, |
1556 | 0 | "StackCallINTEL" => Self::StackCallINTEL, |
1557 | 0 | "GlobalVariableOffsetINTEL" => Self::GlobalVariableOffsetINTEL, |
1558 | 0 | "CounterBuffer" => Self::CounterBuffer, |
1559 | 0 | "HlslCounterBufferGOOGLE" => Self::CounterBuffer, |
1560 | 0 | "UserSemantic" => Self::UserSemantic, |
1561 | 0 | "HlslSemanticGOOGLE" => Self::UserSemantic, |
1562 | 0 | "UserTypeGOOGLE" => Self::UserTypeGOOGLE, |
1563 | 0 | "FunctionRoundingModeINTEL" => Self::FunctionRoundingModeINTEL, |
1564 | 0 | "FunctionDenormModeINTEL" => Self::FunctionDenormModeINTEL, |
1565 | 0 | "RegisterINTEL" => Self::RegisterINTEL, |
1566 | 0 | "MemoryINTEL" => Self::MemoryINTEL, |
1567 | 0 | "NumbanksINTEL" => Self::NumbanksINTEL, |
1568 | 0 | "BankwidthINTEL" => Self::BankwidthINTEL, |
1569 | 0 | "MaxPrivateCopiesINTEL" => Self::MaxPrivateCopiesINTEL, |
1570 | 0 | "SinglepumpINTEL" => Self::SinglepumpINTEL, |
1571 | 0 | "DoublepumpINTEL" => Self::DoublepumpINTEL, |
1572 | 0 | "MaxReplicatesINTEL" => Self::MaxReplicatesINTEL, |
1573 | 0 | "SimpleDualPortINTEL" => Self::SimpleDualPortINTEL, |
1574 | 0 | "MergeINTEL" => Self::MergeINTEL, |
1575 | 0 | "BankBitsINTEL" => Self::BankBitsINTEL, |
1576 | 0 | "ForcePow2DepthINTEL" => Self::ForcePow2DepthINTEL, |
1577 | 0 | "StridesizeINTEL" => Self::StridesizeINTEL, |
1578 | 0 | "WordsizeINTEL" => Self::WordsizeINTEL, |
1579 | 0 | "TrueDualPortINTEL" => Self::TrueDualPortINTEL, |
1580 | 0 | "BurstCoalesceINTEL" => Self::BurstCoalesceINTEL, |
1581 | 0 | "CacheSizeINTEL" => Self::CacheSizeINTEL, |
1582 | 0 | "DontStaticallyCoalesceINTEL" => Self::DontStaticallyCoalesceINTEL, |
1583 | 0 | "PrefetchINTEL" => Self::PrefetchINTEL, |
1584 | 0 | "StallEnableINTEL" => Self::StallEnableINTEL, |
1585 | 0 | "FuseLoopsInFunctionINTEL" => Self::FuseLoopsInFunctionINTEL, |
1586 | 0 | "MathOpDSPModeINTEL" => Self::MathOpDSPModeINTEL, |
1587 | 0 | "AliasScopeINTEL" => Self::AliasScopeINTEL, |
1588 | 0 | "NoAliasINTEL" => Self::NoAliasINTEL, |
1589 | 0 | "InitiationIntervalINTEL" => Self::InitiationIntervalINTEL, |
1590 | 0 | "MaxConcurrencyINTEL" => Self::MaxConcurrencyINTEL, |
1591 | 0 | "PipelineEnableINTEL" => Self::PipelineEnableINTEL, |
1592 | 0 | "BufferLocationINTEL" => Self::BufferLocationINTEL, |
1593 | 0 | "IOPipeStorageINTEL" => Self::IOPipeStorageINTEL, |
1594 | 0 | "FunctionFloatingPointModeINTEL" => Self::FunctionFloatingPointModeINTEL, |
1595 | 0 | "SingleElementVectorINTEL" => Self::SingleElementVectorINTEL, |
1596 | 0 | "VectorComputeCallableFunctionINTEL" => Self::VectorComputeCallableFunctionINTEL, |
1597 | 0 | "MediaBlockIOINTEL" => Self::MediaBlockIOINTEL, |
1598 | 0 | "StallFreeINTEL" => Self::StallFreeINTEL, |
1599 | 0 | "FPMaxErrorDecorationINTEL" => Self::FPMaxErrorDecorationINTEL, |
1600 | 0 | "LatencyControlLabelINTEL" => Self::LatencyControlLabelINTEL, |
1601 | 0 | "LatencyControlConstraintINTEL" => Self::LatencyControlConstraintINTEL, |
1602 | 0 | "ConduitKernelArgumentINTEL" => Self::ConduitKernelArgumentINTEL, |
1603 | 0 | "RegisterMapKernelArgumentINTEL" => Self::RegisterMapKernelArgumentINTEL, |
1604 | 0 | "MMHostInterfaceAddressWidthINTEL" => Self::MMHostInterfaceAddressWidthINTEL, |
1605 | 0 | "MMHostInterfaceDataWidthINTEL" => Self::MMHostInterfaceDataWidthINTEL, |
1606 | 0 | "MMHostInterfaceLatencyINTEL" => Self::MMHostInterfaceLatencyINTEL, |
1607 | 0 | "MMHostInterfaceReadWriteModeINTEL" => Self::MMHostInterfaceReadWriteModeINTEL, |
1608 | 0 | "MMHostInterfaceMaxBurstINTEL" => Self::MMHostInterfaceMaxBurstINTEL, |
1609 | 0 | "MMHostInterfaceWaitRequestINTEL" => Self::MMHostInterfaceWaitRequestINTEL, |
1610 | 0 | "StableKernelArgumentINTEL" => Self::StableKernelArgumentINTEL, |
1611 | 0 | "HostAccessINTEL" => Self::HostAccessINTEL, |
1612 | 0 | "InitModeINTEL" => Self::InitModeINTEL, |
1613 | 0 | "ImplementInRegisterMapINTEL" => Self::ImplementInRegisterMapINTEL, |
1614 | 0 | "CacheControlLoadINTEL" => Self::CacheControlLoadINTEL, |
1615 | 0 | "CacheControlStoreINTEL" => Self::CacheControlStoreINTEL, |
1616 | 0 | _ => return Err(()), |
1617 | | }) |
1618 | 0 | } |
1619 | | } |
1620 | | #[doc = "SPIR-V operand kind: [BuiltIn](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_built_in_a_built_in)"] |
1621 | | #[repr(u32)] |
1622 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
1623 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
1624 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
1625 | | #[allow(clippy::upper_case_acronyms)] |
1626 | | pub enum BuiltIn { |
1627 | | Position = 0u32, |
1628 | | PointSize = 1u32, |
1629 | | ClipDistance = 3u32, |
1630 | | CullDistance = 4u32, |
1631 | | VertexId = 5u32, |
1632 | | InstanceId = 6u32, |
1633 | | PrimitiveId = 7u32, |
1634 | | InvocationId = 8u32, |
1635 | | Layer = 9u32, |
1636 | | ViewportIndex = 10u32, |
1637 | | TessLevelOuter = 11u32, |
1638 | | TessLevelInner = 12u32, |
1639 | | TessCoord = 13u32, |
1640 | | PatchVertices = 14u32, |
1641 | | FragCoord = 15u32, |
1642 | | PointCoord = 16u32, |
1643 | | FrontFacing = 17u32, |
1644 | | SampleId = 18u32, |
1645 | | SamplePosition = 19u32, |
1646 | | SampleMask = 20u32, |
1647 | | FragDepth = 22u32, |
1648 | | HelperInvocation = 23u32, |
1649 | | NumWorkgroups = 24u32, |
1650 | | WorkgroupSize = 25u32, |
1651 | | WorkgroupId = 26u32, |
1652 | | LocalInvocationId = 27u32, |
1653 | | GlobalInvocationId = 28u32, |
1654 | | LocalInvocationIndex = 29u32, |
1655 | | WorkDim = 30u32, |
1656 | | GlobalSize = 31u32, |
1657 | | EnqueuedWorkgroupSize = 32u32, |
1658 | | GlobalOffset = 33u32, |
1659 | | GlobalLinearId = 34u32, |
1660 | | SubgroupSize = 36u32, |
1661 | | SubgroupMaxSize = 37u32, |
1662 | | NumSubgroups = 38u32, |
1663 | | NumEnqueuedSubgroups = 39u32, |
1664 | | SubgroupId = 40u32, |
1665 | | SubgroupLocalInvocationId = 41u32, |
1666 | | VertexIndex = 42u32, |
1667 | | InstanceIndex = 43u32, |
1668 | | CoreIDARM = 4160u32, |
1669 | | CoreCountARM = 4161u32, |
1670 | | CoreMaxIDARM = 4162u32, |
1671 | | WarpIDARM = 4163u32, |
1672 | | WarpMaxIDARM = 4164u32, |
1673 | | SubgroupEqMask = 4416u32, |
1674 | | SubgroupGeMask = 4417u32, |
1675 | | SubgroupGtMask = 4418u32, |
1676 | | SubgroupLeMask = 4419u32, |
1677 | | SubgroupLtMask = 4420u32, |
1678 | | BaseVertex = 4424u32, |
1679 | | BaseInstance = 4425u32, |
1680 | | DrawIndex = 4426u32, |
1681 | | PrimitiveShadingRateKHR = 4432u32, |
1682 | | DeviceIndex = 4438u32, |
1683 | | ViewIndex = 4440u32, |
1684 | | ShadingRateKHR = 4444u32, |
1685 | | BaryCoordNoPerspAMD = 4992u32, |
1686 | | BaryCoordNoPerspCentroidAMD = 4993u32, |
1687 | | BaryCoordNoPerspSampleAMD = 4994u32, |
1688 | | BaryCoordSmoothAMD = 4995u32, |
1689 | | BaryCoordSmoothCentroidAMD = 4996u32, |
1690 | | BaryCoordSmoothSampleAMD = 4997u32, |
1691 | | BaryCoordPullModelAMD = 4998u32, |
1692 | | FragStencilRefEXT = 5014u32, |
1693 | | RemainingRecursionLevelsAMDX = 5021u32, |
1694 | | ShaderIndexAMDX = 5073u32, |
1695 | | ViewportMaskNV = 5253u32, |
1696 | | SecondaryPositionNV = 5257u32, |
1697 | | SecondaryViewportMaskNV = 5258u32, |
1698 | | PositionPerViewNV = 5261u32, |
1699 | | ViewportMaskPerViewNV = 5262u32, |
1700 | | FullyCoveredEXT = 5264u32, |
1701 | | TaskCountNV = 5274u32, |
1702 | | PrimitiveCountNV = 5275u32, |
1703 | | PrimitiveIndicesNV = 5276u32, |
1704 | | ClipDistancePerViewNV = 5277u32, |
1705 | | CullDistancePerViewNV = 5278u32, |
1706 | | LayerPerViewNV = 5279u32, |
1707 | | MeshViewCountNV = 5280u32, |
1708 | | MeshViewIndicesNV = 5281u32, |
1709 | | BaryCoordKHR = 5286u32, |
1710 | | BaryCoordNoPerspKHR = 5287u32, |
1711 | | FragSizeEXT = 5292u32, |
1712 | | FragInvocationCountEXT = 5293u32, |
1713 | | PrimitivePointIndicesEXT = 5294u32, |
1714 | | PrimitiveLineIndicesEXT = 5295u32, |
1715 | | PrimitiveTriangleIndicesEXT = 5296u32, |
1716 | | CullPrimitiveEXT = 5299u32, |
1717 | | LaunchIdKHR = 5319u32, |
1718 | | LaunchSizeKHR = 5320u32, |
1719 | | WorldRayOriginKHR = 5321u32, |
1720 | | WorldRayDirectionKHR = 5322u32, |
1721 | | ObjectRayOriginKHR = 5323u32, |
1722 | | ObjectRayDirectionKHR = 5324u32, |
1723 | | RayTminKHR = 5325u32, |
1724 | | RayTmaxKHR = 5326u32, |
1725 | | InstanceCustomIndexKHR = 5327u32, |
1726 | | ObjectToWorldKHR = 5330u32, |
1727 | | WorldToObjectKHR = 5331u32, |
1728 | | HitTNV = 5332u32, |
1729 | | HitKindKHR = 5333u32, |
1730 | | CurrentRayTimeNV = 5334u32, |
1731 | | HitTriangleVertexPositionsKHR = 5335u32, |
1732 | | HitMicroTriangleVertexPositionsNV = 5337u32, |
1733 | | HitMicroTriangleVertexBarycentricsNV = 5344u32, |
1734 | | IncomingRayFlagsKHR = 5351u32, |
1735 | | RayGeometryIndexKHR = 5352u32, |
1736 | | HitIsSphereNV = 5359u32, |
1737 | | HitIsLSSNV = 5360u32, |
1738 | | HitSpherePositionNV = 5361u32, |
1739 | | WarpsPerSMNV = 5374u32, |
1740 | | SMCountNV = 5375u32, |
1741 | | WarpIDNV = 5376u32, |
1742 | | SMIDNV = 5377u32, |
1743 | | HitLSSPositionsNV = 5396u32, |
1744 | | HitKindFrontFacingMicroTriangleNV = 5405u32, |
1745 | | HitKindBackFacingMicroTriangleNV = 5406u32, |
1746 | | HitSphereRadiusNV = 5420u32, |
1747 | | HitLSSRadiiNV = 5421u32, |
1748 | | ClusterIDNV = 5436u32, |
1749 | | CullMaskKHR = 6021u32, |
1750 | | } |
1751 | | impl BuiltIn { |
1752 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
1753 | 0 | Some(match n { |
1754 | 0 | 0u32..=1u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) }, |
1755 | 0 | 3u32..=20u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) }, |
1756 | 0 | 22u32..=34u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) }, |
1757 | 0 | 36u32..=43u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) }, |
1758 | 0 | 4160u32..=4164u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) }, |
1759 | 0 | 4416u32..=4420u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) }, |
1760 | 0 | 4424u32..=4426u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) }, |
1761 | 0 | 4432u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(4432u32) }, |
1762 | 0 | 4438u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(4438u32) }, |
1763 | 0 | 4440u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(4440u32) }, |
1764 | 0 | 4444u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(4444u32) }, |
1765 | 0 | 4992u32..=4998u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) }, |
1766 | 0 | 5014u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(5014u32) }, |
1767 | 0 | 5021u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(5021u32) }, |
1768 | 0 | 5073u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(5073u32) }, |
1769 | 0 | 5253u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(5253u32) }, |
1770 | 0 | 5257u32..=5258u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) }, |
1771 | 0 | 5261u32..=5262u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) }, |
1772 | 0 | 5264u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(5264u32) }, |
1773 | 0 | 5274u32..=5281u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) }, |
1774 | 0 | 5286u32..=5287u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) }, |
1775 | 0 | 5292u32..=5296u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) }, |
1776 | 0 | 5299u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(5299u32) }, |
1777 | 0 | 5319u32..=5327u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) }, |
1778 | 0 | 5330u32..=5335u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) }, |
1779 | 0 | 5337u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(5337u32) }, |
1780 | 0 | 5344u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(5344u32) }, |
1781 | 0 | 5351u32..=5352u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) }, |
1782 | 0 | 5359u32..=5361u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) }, |
1783 | 0 | 5374u32..=5377u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) }, |
1784 | 0 | 5396u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(5396u32) }, |
1785 | 0 | 5405u32..=5406u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) }, |
1786 | 0 | 5420u32..=5421u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) }, |
1787 | 0 | 5436u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(5436u32) }, |
1788 | 0 | 6021u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(6021u32) }, |
1789 | 0 | _ => return None, |
1790 | | }) |
1791 | 0 | } |
1792 | | } |
1793 | | #[allow(non_upper_case_globals)] |
1794 | | impl BuiltIn { |
1795 | | pub const SubgroupEqMaskKHR: Self = Self::SubgroupEqMask; |
1796 | | pub const SubgroupGeMaskKHR: Self = Self::SubgroupGeMask; |
1797 | | pub const SubgroupGtMaskKHR: Self = Self::SubgroupGtMask; |
1798 | | pub const SubgroupLeMaskKHR: Self = Self::SubgroupLeMask; |
1799 | | pub const SubgroupLtMaskKHR: Self = Self::SubgroupLtMask; |
1800 | | pub const BaryCoordNV: Self = Self::BaryCoordKHR; |
1801 | | pub const BaryCoordNoPerspNV: Self = Self::BaryCoordNoPerspKHR; |
1802 | | pub const FragmentSizeNV: Self = Self::FragSizeEXT; |
1803 | | pub const InvocationsPerPixelNV: Self = Self::FragInvocationCountEXT; |
1804 | | pub const LaunchIdNV: Self = Self::LaunchIdKHR; |
1805 | | pub const LaunchSizeNV: Self = Self::LaunchSizeKHR; |
1806 | | pub const WorldRayOriginNV: Self = Self::WorldRayOriginKHR; |
1807 | | pub const WorldRayDirectionNV: Self = Self::WorldRayDirectionKHR; |
1808 | | pub const ObjectRayOriginNV: Self = Self::ObjectRayOriginKHR; |
1809 | | pub const ObjectRayDirectionNV: Self = Self::ObjectRayDirectionKHR; |
1810 | | pub const RayTminNV: Self = Self::RayTminKHR; |
1811 | | pub const RayTmaxNV: Self = Self::RayTmaxKHR; |
1812 | | pub const InstanceCustomIndexNV: Self = Self::InstanceCustomIndexKHR; |
1813 | | pub const ObjectToWorldNV: Self = Self::ObjectToWorldKHR; |
1814 | | pub const WorldToObjectNV: Self = Self::WorldToObjectKHR; |
1815 | | pub const HitKindNV: Self = Self::HitKindKHR; |
1816 | | pub const IncomingRayFlagsNV: Self = Self::IncomingRayFlagsKHR; |
1817 | | } |
1818 | | impl core::str::FromStr for BuiltIn { |
1819 | | type Err = (); |
1820 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
1821 | 0 | Ok(match s { |
1822 | 0 | "Position" => Self::Position, |
1823 | 0 | "PointSize" => Self::PointSize, |
1824 | 0 | "ClipDistance" => Self::ClipDistance, |
1825 | 0 | "CullDistance" => Self::CullDistance, |
1826 | 0 | "VertexId" => Self::VertexId, |
1827 | 0 | "InstanceId" => Self::InstanceId, |
1828 | 0 | "PrimitiveId" => Self::PrimitiveId, |
1829 | 0 | "InvocationId" => Self::InvocationId, |
1830 | 0 | "Layer" => Self::Layer, |
1831 | 0 | "ViewportIndex" => Self::ViewportIndex, |
1832 | 0 | "TessLevelOuter" => Self::TessLevelOuter, |
1833 | 0 | "TessLevelInner" => Self::TessLevelInner, |
1834 | 0 | "TessCoord" => Self::TessCoord, |
1835 | 0 | "PatchVertices" => Self::PatchVertices, |
1836 | 0 | "FragCoord" => Self::FragCoord, |
1837 | 0 | "PointCoord" => Self::PointCoord, |
1838 | 0 | "FrontFacing" => Self::FrontFacing, |
1839 | 0 | "SampleId" => Self::SampleId, |
1840 | 0 | "SamplePosition" => Self::SamplePosition, |
1841 | 0 | "SampleMask" => Self::SampleMask, |
1842 | 0 | "FragDepth" => Self::FragDepth, |
1843 | 0 | "HelperInvocation" => Self::HelperInvocation, |
1844 | 0 | "NumWorkgroups" => Self::NumWorkgroups, |
1845 | 0 | "WorkgroupSize" => Self::WorkgroupSize, |
1846 | 0 | "WorkgroupId" => Self::WorkgroupId, |
1847 | 0 | "LocalInvocationId" => Self::LocalInvocationId, |
1848 | 0 | "GlobalInvocationId" => Self::GlobalInvocationId, |
1849 | 0 | "LocalInvocationIndex" => Self::LocalInvocationIndex, |
1850 | 0 | "WorkDim" => Self::WorkDim, |
1851 | 0 | "GlobalSize" => Self::GlobalSize, |
1852 | 0 | "EnqueuedWorkgroupSize" => Self::EnqueuedWorkgroupSize, |
1853 | 0 | "GlobalOffset" => Self::GlobalOffset, |
1854 | 0 | "GlobalLinearId" => Self::GlobalLinearId, |
1855 | 0 | "SubgroupSize" => Self::SubgroupSize, |
1856 | 0 | "SubgroupMaxSize" => Self::SubgroupMaxSize, |
1857 | 0 | "NumSubgroups" => Self::NumSubgroups, |
1858 | 0 | "NumEnqueuedSubgroups" => Self::NumEnqueuedSubgroups, |
1859 | 0 | "SubgroupId" => Self::SubgroupId, |
1860 | 0 | "SubgroupLocalInvocationId" => Self::SubgroupLocalInvocationId, |
1861 | 0 | "VertexIndex" => Self::VertexIndex, |
1862 | 0 | "InstanceIndex" => Self::InstanceIndex, |
1863 | 0 | "CoreIDARM" => Self::CoreIDARM, |
1864 | 0 | "CoreCountARM" => Self::CoreCountARM, |
1865 | 0 | "CoreMaxIDARM" => Self::CoreMaxIDARM, |
1866 | 0 | "WarpIDARM" => Self::WarpIDARM, |
1867 | 0 | "WarpMaxIDARM" => Self::WarpMaxIDARM, |
1868 | 0 | "SubgroupEqMask" => Self::SubgroupEqMask, |
1869 | 0 | "SubgroupEqMaskKHR" => Self::SubgroupEqMask, |
1870 | 0 | "SubgroupGeMask" => Self::SubgroupGeMask, |
1871 | 0 | "SubgroupGeMaskKHR" => Self::SubgroupGeMask, |
1872 | 0 | "SubgroupGtMask" => Self::SubgroupGtMask, |
1873 | 0 | "SubgroupGtMaskKHR" => Self::SubgroupGtMask, |
1874 | 0 | "SubgroupLeMask" => Self::SubgroupLeMask, |
1875 | 0 | "SubgroupLeMaskKHR" => Self::SubgroupLeMask, |
1876 | 0 | "SubgroupLtMask" => Self::SubgroupLtMask, |
1877 | 0 | "SubgroupLtMaskKHR" => Self::SubgroupLtMask, |
1878 | 0 | "BaseVertex" => Self::BaseVertex, |
1879 | 0 | "BaseInstance" => Self::BaseInstance, |
1880 | 0 | "DrawIndex" => Self::DrawIndex, |
1881 | 0 | "PrimitiveShadingRateKHR" => Self::PrimitiveShadingRateKHR, |
1882 | 0 | "DeviceIndex" => Self::DeviceIndex, |
1883 | 0 | "ViewIndex" => Self::ViewIndex, |
1884 | 0 | "ShadingRateKHR" => Self::ShadingRateKHR, |
1885 | 0 | "BaryCoordNoPerspAMD" => Self::BaryCoordNoPerspAMD, |
1886 | 0 | "BaryCoordNoPerspCentroidAMD" => Self::BaryCoordNoPerspCentroidAMD, |
1887 | 0 | "BaryCoordNoPerspSampleAMD" => Self::BaryCoordNoPerspSampleAMD, |
1888 | 0 | "BaryCoordSmoothAMD" => Self::BaryCoordSmoothAMD, |
1889 | 0 | "BaryCoordSmoothCentroidAMD" => Self::BaryCoordSmoothCentroidAMD, |
1890 | 0 | "BaryCoordSmoothSampleAMD" => Self::BaryCoordSmoothSampleAMD, |
1891 | 0 | "BaryCoordPullModelAMD" => Self::BaryCoordPullModelAMD, |
1892 | 0 | "FragStencilRefEXT" => Self::FragStencilRefEXT, |
1893 | 0 | "RemainingRecursionLevelsAMDX" => Self::RemainingRecursionLevelsAMDX, |
1894 | 0 | "ShaderIndexAMDX" => Self::ShaderIndexAMDX, |
1895 | 0 | "ViewportMaskNV" => Self::ViewportMaskNV, |
1896 | 0 | "SecondaryPositionNV" => Self::SecondaryPositionNV, |
1897 | 0 | "SecondaryViewportMaskNV" => Self::SecondaryViewportMaskNV, |
1898 | 0 | "PositionPerViewNV" => Self::PositionPerViewNV, |
1899 | 0 | "ViewportMaskPerViewNV" => Self::ViewportMaskPerViewNV, |
1900 | 0 | "FullyCoveredEXT" => Self::FullyCoveredEXT, |
1901 | 0 | "TaskCountNV" => Self::TaskCountNV, |
1902 | 0 | "PrimitiveCountNV" => Self::PrimitiveCountNV, |
1903 | 0 | "PrimitiveIndicesNV" => Self::PrimitiveIndicesNV, |
1904 | 0 | "ClipDistancePerViewNV" => Self::ClipDistancePerViewNV, |
1905 | 0 | "CullDistancePerViewNV" => Self::CullDistancePerViewNV, |
1906 | 0 | "LayerPerViewNV" => Self::LayerPerViewNV, |
1907 | 0 | "MeshViewCountNV" => Self::MeshViewCountNV, |
1908 | 0 | "MeshViewIndicesNV" => Self::MeshViewIndicesNV, |
1909 | 0 | "BaryCoordKHR" => Self::BaryCoordKHR, |
1910 | 0 | "BaryCoordNV" => Self::BaryCoordKHR, |
1911 | 0 | "BaryCoordNoPerspKHR" => Self::BaryCoordNoPerspKHR, |
1912 | 0 | "BaryCoordNoPerspNV" => Self::BaryCoordNoPerspKHR, |
1913 | 0 | "FragSizeEXT" => Self::FragSizeEXT, |
1914 | 0 | "FragmentSizeNV" => Self::FragSizeEXT, |
1915 | 0 | "FragInvocationCountEXT" => Self::FragInvocationCountEXT, |
1916 | 0 | "InvocationsPerPixelNV" => Self::FragInvocationCountEXT, |
1917 | 0 | "PrimitivePointIndicesEXT" => Self::PrimitivePointIndicesEXT, |
1918 | 0 | "PrimitiveLineIndicesEXT" => Self::PrimitiveLineIndicesEXT, |
1919 | 0 | "PrimitiveTriangleIndicesEXT" => Self::PrimitiveTriangleIndicesEXT, |
1920 | 0 | "CullPrimitiveEXT" => Self::CullPrimitiveEXT, |
1921 | 0 | "LaunchIdKHR" => Self::LaunchIdKHR, |
1922 | 0 | "LaunchIdNV" => Self::LaunchIdKHR, |
1923 | 0 | "LaunchSizeKHR" => Self::LaunchSizeKHR, |
1924 | 0 | "LaunchSizeNV" => Self::LaunchSizeKHR, |
1925 | 0 | "WorldRayOriginKHR" => Self::WorldRayOriginKHR, |
1926 | 0 | "WorldRayOriginNV" => Self::WorldRayOriginKHR, |
1927 | 0 | "WorldRayDirectionKHR" => Self::WorldRayDirectionKHR, |
1928 | 0 | "WorldRayDirectionNV" => Self::WorldRayDirectionKHR, |
1929 | 0 | "ObjectRayOriginKHR" => Self::ObjectRayOriginKHR, |
1930 | 0 | "ObjectRayOriginNV" => Self::ObjectRayOriginKHR, |
1931 | 0 | "ObjectRayDirectionKHR" => Self::ObjectRayDirectionKHR, |
1932 | 0 | "ObjectRayDirectionNV" => Self::ObjectRayDirectionKHR, |
1933 | 0 | "RayTminKHR" => Self::RayTminKHR, |
1934 | 0 | "RayTminNV" => Self::RayTminKHR, |
1935 | 0 | "RayTmaxKHR" => Self::RayTmaxKHR, |
1936 | 0 | "RayTmaxNV" => Self::RayTmaxKHR, |
1937 | 0 | "InstanceCustomIndexKHR" => Self::InstanceCustomIndexKHR, |
1938 | 0 | "InstanceCustomIndexNV" => Self::InstanceCustomIndexKHR, |
1939 | 0 | "ObjectToWorldKHR" => Self::ObjectToWorldKHR, |
1940 | 0 | "ObjectToWorldNV" => Self::ObjectToWorldKHR, |
1941 | 0 | "WorldToObjectKHR" => Self::WorldToObjectKHR, |
1942 | 0 | "WorldToObjectNV" => Self::WorldToObjectKHR, |
1943 | 0 | "HitTNV" => Self::HitTNV, |
1944 | 0 | "HitKindKHR" => Self::HitKindKHR, |
1945 | 0 | "HitKindNV" => Self::HitKindKHR, |
1946 | 0 | "CurrentRayTimeNV" => Self::CurrentRayTimeNV, |
1947 | 0 | "HitTriangleVertexPositionsKHR" => Self::HitTriangleVertexPositionsKHR, |
1948 | 0 | "HitMicroTriangleVertexPositionsNV" => Self::HitMicroTriangleVertexPositionsNV, |
1949 | 0 | "HitMicroTriangleVertexBarycentricsNV" => Self::HitMicroTriangleVertexBarycentricsNV, |
1950 | 0 | "IncomingRayFlagsKHR" => Self::IncomingRayFlagsKHR, |
1951 | 0 | "IncomingRayFlagsNV" => Self::IncomingRayFlagsKHR, |
1952 | 0 | "RayGeometryIndexKHR" => Self::RayGeometryIndexKHR, |
1953 | 0 | "HitIsSphereNV" => Self::HitIsSphereNV, |
1954 | 0 | "HitIsLSSNV" => Self::HitIsLSSNV, |
1955 | 0 | "HitSpherePositionNV" => Self::HitSpherePositionNV, |
1956 | 0 | "WarpsPerSMNV" => Self::WarpsPerSMNV, |
1957 | 0 | "SMCountNV" => Self::SMCountNV, |
1958 | 0 | "WarpIDNV" => Self::WarpIDNV, |
1959 | 0 | "SMIDNV" => Self::SMIDNV, |
1960 | 0 | "HitLSSPositionsNV" => Self::HitLSSPositionsNV, |
1961 | 0 | "HitKindFrontFacingMicroTriangleNV" => Self::HitKindFrontFacingMicroTriangleNV, |
1962 | 0 | "HitKindBackFacingMicroTriangleNV" => Self::HitKindBackFacingMicroTriangleNV, |
1963 | 0 | "HitSphereRadiusNV" => Self::HitSphereRadiusNV, |
1964 | 0 | "HitLSSRadiiNV" => Self::HitLSSRadiiNV, |
1965 | 0 | "ClusterIDNV" => Self::ClusterIDNV, |
1966 | 0 | "CullMaskKHR" => Self::CullMaskKHR, |
1967 | 0 | _ => return Err(()), |
1968 | | }) |
1969 | 0 | } |
1970 | | } |
1971 | | #[doc = "SPIR-V operand kind: [Scope](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_scope_a_scope)"] |
1972 | | #[repr(u32)] |
1973 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
1974 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
1975 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
1976 | | #[allow(clippy::upper_case_acronyms)] |
1977 | | pub enum Scope { |
1978 | | CrossDevice = 0u32, |
1979 | | Device = 1u32, |
1980 | | Workgroup = 2u32, |
1981 | | Subgroup = 3u32, |
1982 | | Invocation = 4u32, |
1983 | | QueueFamily = 5u32, |
1984 | | ShaderCallKHR = 6u32, |
1985 | | } |
1986 | | impl Scope { |
1987 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
1988 | 0 | Some(match n { |
1989 | 0 | 0u32..=6u32 => unsafe { core::mem::transmute::<u32, Scope>(n) }, |
1990 | 0 | _ => return None, |
1991 | | }) |
1992 | 0 | } |
1993 | | } |
1994 | | #[allow(non_upper_case_globals)] |
1995 | | impl Scope { |
1996 | | pub const QueueFamilyKHR: Self = Self::QueueFamily; |
1997 | | } |
1998 | | impl core::str::FromStr for Scope { |
1999 | | type Err = (); |
2000 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
2001 | 0 | Ok(match s { |
2002 | 0 | "CrossDevice" => Self::CrossDevice, |
2003 | 0 | "Device" => Self::Device, |
2004 | 0 | "Workgroup" => Self::Workgroup, |
2005 | 0 | "Subgroup" => Self::Subgroup, |
2006 | 0 | "Invocation" => Self::Invocation, |
2007 | 0 | "QueueFamily" => Self::QueueFamily, |
2008 | 0 | "QueueFamilyKHR" => Self::QueueFamily, |
2009 | 0 | "ShaderCallKHR" => Self::ShaderCallKHR, |
2010 | 0 | _ => return Err(()), |
2011 | | }) |
2012 | 0 | } |
2013 | | } |
2014 | | #[doc = "SPIR-V operand kind: [GroupOperation](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_group_operation_a_group_operation)"] |
2015 | | #[repr(u32)] |
2016 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
2017 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
2018 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
2019 | | #[allow(clippy::upper_case_acronyms)] |
2020 | | pub enum GroupOperation { |
2021 | | Reduce = 0u32, |
2022 | | InclusiveScan = 1u32, |
2023 | | ExclusiveScan = 2u32, |
2024 | | ClusteredReduce = 3u32, |
2025 | | PartitionedReduceNV = 6u32, |
2026 | | PartitionedInclusiveScanNV = 7u32, |
2027 | | PartitionedExclusiveScanNV = 8u32, |
2028 | | } |
2029 | | impl GroupOperation { |
2030 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
2031 | 0 | Some(match n { |
2032 | 0 | 0u32..=3u32 => unsafe { core::mem::transmute::<u32, GroupOperation>(n) }, |
2033 | 0 | 6u32..=8u32 => unsafe { core::mem::transmute::<u32, GroupOperation>(n) }, |
2034 | 0 | _ => return None, |
2035 | | }) |
2036 | 0 | } |
2037 | | } |
2038 | | #[allow(non_upper_case_globals)] |
2039 | | impl GroupOperation {} |
2040 | | impl core::str::FromStr for GroupOperation { |
2041 | | type Err = (); |
2042 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
2043 | 0 | Ok(match s { |
2044 | 0 | "Reduce" => Self::Reduce, |
2045 | 0 | "InclusiveScan" => Self::InclusiveScan, |
2046 | 0 | "ExclusiveScan" => Self::ExclusiveScan, |
2047 | 0 | "ClusteredReduce" => Self::ClusteredReduce, |
2048 | 0 | "PartitionedReduceNV" => Self::PartitionedReduceNV, |
2049 | 0 | "PartitionedInclusiveScanNV" => Self::PartitionedInclusiveScanNV, |
2050 | 0 | "PartitionedExclusiveScanNV" => Self::PartitionedExclusiveScanNV, |
2051 | 0 | _ => return Err(()), |
2052 | | }) |
2053 | 0 | } |
2054 | | } |
2055 | | #[doc = "SPIR-V operand kind: [KernelEnqueueFlags](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_kernel_enqueue_flags_a_kernel_enqueue_flags)"] |
2056 | | #[repr(u32)] |
2057 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
2058 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
2059 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
2060 | | #[allow(clippy::upper_case_acronyms)] |
2061 | | pub enum KernelEnqueueFlags { |
2062 | | NoWait = 0u32, |
2063 | | WaitKernel = 1u32, |
2064 | | WaitWorkGroup = 2u32, |
2065 | | } |
2066 | | impl KernelEnqueueFlags { |
2067 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
2068 | 0 | Some(match n { |
2069 | 0 | 0u32..=2u32 => unsafe { core::mem::transmute::<u32, KernelEnqueueFlags>(n) }, |
2070 | 0 | _ => return None, |
2071 | | }) |
2072 | 0 | } |
2073 | | } |
2074 | | #[allow(non_upper_case_globals)] |
2075 | | impl KernelEnqueueFlags {} |
2076 | | impl core::str::FromStr for KernelEnqueueFlags { |
2077 | | type Err = (); |
2078 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
2079 | 0 | Ok(match s { |
2080 | 0 | "NoWait" => Self::NoWait, |
2081 | 0 | "WaitKernel" => Self::WaitKernel, |
2082 | 0 | "WaitWorkGroup" => Self::WaitWorkGroup, |
2083 | 0 | _ => return Err(()), |
2084 | | }) |
2085 | 0 | } |
2086 | | } |
2087 | | #[doc = "SPIR-V operand kind: [Capability](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_capability_a_capability)"] |
2088 | | #[repr(u32)] |
2089 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
2090 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
2091 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
2092 | | #[allow(clippy::upper_case_acronyms)] |
2093 | | pub enum Capability { |
2094 | | Matrix = 0u32, |
2095 | | Shader = 1u32, |
2096 | | Geometry = 2u32, |
2097 | | Tessellation = 3u32, |
2098 | | Addresses = 4u32, |
2099 | | Linkage = 5u32, |
2100 | | Kernel = 6u32, |
2101 | | Vector16 = 7u32, |
2102 | | Float16Buffer = 8u32, |
2103 | | Float16 = 9u32, |
2104 | | Float64 = 10u32, |
2105 | | Int64 = 11u32, |
2106 | | Int64Atomics = 12u32, |
2107 | | ImageBasic = 13u32, |
2108 | | ImageReadWrite = 14u32, |
2109 | | ImageMipmap = 15u32, |
2110 | | Pipes = 17u32, |
2111 | | Groups = 18u32, |
2112 | | DeviceEnqueue = 19u32, |
2113 | | LiteralSampler = 20u32, |
2114 | | AtomicStorage = 21u32, |
2115 | | Int16 = 22u32, |
2116 | | TessellationPointSize = 23u32, |
2117 | | GeometryPointSize = 24u32, |
2118 | | ImageGatherExtended = 25u32, |
2119 | | StorageImageMultisample = 27u32, |
2120 | | UniformBufferArrayDynamicIndexing = 28u32, |
2121 | | SampledImageArrayDynamicIndexing = 29u32, |
2122 | | StorageBufferArrayDynamicIndexing = 30u32, |
2123 | | StorageImageArrayDynamicIndexing = 31u32, |
2124 | | ClipDistance = 32u32, |
2125 | | CullDistance = 33u32, |
2126 | | ImageCubeArray = 34u32, |
2127 | | SampleRateShading = 35u32, |
2128 | | ImageRect = 36u32, |
2129 | | SampledRect = 37u32, |
2130 | | GenericPointer = 38u32, |
2131 | | Int8 = 39u32, |
2132 | | InputAttachment = 40u32, |
2133 | | SparseResidency = 41u32, |
2134 | | MinLod = 42u32, |
2135 | | Sampled1D = 43u32, |
2136 | | Image1D = 44u32, |
2137 | | SampledCubeArray = 45u32, |
2138 | | SampledBuffer = 46u32, |
2139 | | ImageBuffer = 47u32, |
2140 | | ImageMSArray = 48u32, |
2141 | | StorageImageExtendedFormats = 49u32, |
2142 | | ImageQuery = 50u32, |
2143 | | DerivativeControl = 51u32, |
2144 | | InterpolationFunction = 52u32, |
2145 | | TransformFeedback = 53u32, |
2146 | | GeometryStreams = 54u32, |
2147 | | StorageImageReadWithoutFormat = 55u32, |
2148 | | StorageImageWriteWithoutFormat = 56u32, |
2149 | | MultiViewport = 57u32, |
2150 | | SubgroupDispatch = 58u32, |
2151 | | NamedBarrier = 59u32, |
2152 | | PipeStorage = 60u32, |
2153 | | GroupNonUniform = 61u32, |
2154 | | GroupNonUniformVote = 62u32, |
2155 | | GroupNonUniformArithmetic = 63u32, |
2156 | | GroupNonUniformBallot = 64u32, |
2157 | | GroupNonUniformShuffle = 65u32, |
2158 | | GroupNonUniformShuffleRelative = 66u32, |
2159 | | GroupNonUniformClustered = 67u32, |
2160 | | GroupNonUniformQuad = 68u32, |
2161 | | ShaderLayer = 69u32, |
2162 | | ShaderViewportIndex = 70u32, |
2163 | | UniformDecoration = 71u32, |
2164 | | CoreBuiltinsARM = 4165u32, |
2165 | | TileImageColorReadAccessEXT = 4166u32, |
2166 | | TileImageDepthReadAccessEXT = 4167u32, |
2167 | | TileImageStencilReadAccessEXT = 4168u32, |
2168 | | CooperativeMatrixLayoutsARM = 4201u32, |
2169 | | FragmentShadingRateKHR = 4422u32, |
2170 | | SubgroupBallotKHR = 4423u32, |
2171 | | DrawParameters = 4427u32, |
2172 | | WorkgroupMemoryExplicitLayoutKHR = 4428u32, |
2173 | | WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429u32, |
2174 | | WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430u32, |
2175 | | SubgroupVoteKHR = 4431u32, |
2176 | | StorageBuffer16BitAccess = 4433u32, |
2177 | | UniformAndStorageBuffer16BitAccess = 4434u32, |
2178 | | StoragePushConstant16 = 4435u32, |
2179 | | StorageInputOutput16 = 4436u32, |
2180 | | DeviceGroup = 4437u32, |
2181 | | MultiView = 4439u32, |
2182 | | VariablePointersStorageBuffer = 4441u32, |
2183 | | VariablePointers = 4442u32, |
2184 | | AtomicStorageOps = 4445u32, |
2185 | | SampleMaskPostDepthCoverage = 4447u32, |
2186 | | StorageBuffer8BitAccess = 4448u32, |
2187 | | UniformAndStorageBuffer8BitAccess = 4449u32, |
2188 | | StoragePushConstant8 = 4450u32, |
2189 | | DenormPreserve = 4464u32, |
2190 | | DenormFlushToZero = 4465u32, |
2191 | | SignedZeroInfNanPreserve = 4466u32, |
2192 | | RoundingModeRTE = 4467u32, |
2193 | | RoundingModeRTZ = 4468u32, |
2194 | | RayQueryProvisionalKHR = 4471u32, |
2195 | | RayQueryKHR = 4472u32, |
2196 | | UntypedPointersKHR = 4473u32, |
2197 | | RayTraversalPrimitiveCullingKHR = 4478u32, |
2198 | | RayTracingKHR = 4479u32, |
2199 | | TextureSampleWeightedQCOM = 4484u32, |
2200 | | TextureBoxFilterQCOM = 4485u32, |
2201 | | TextureBlockMatchQCOM = 4486u32, |
2202 | | TextureBlockMatch2QCOM = 4498u32, |
2203 | | Float16ImageAMD = 5008u32, |
2204 | | ImageGatherBiasLodAMD = 5009u32, |
2205 | | FragmentMaskAMD = 5010u32, |
2206 | | StencilExportEXT = 5013u32, |
2207 | | ImageReadWriteLodAMD = 5015u32, |
2208 | | Int64ImageEXT = 5016u32, |
2209 | | ShaderClockKHR = 5055u32, |
2210 | | ShaderEnqueueAMDX = 5067u32, |
2211 | | QuadControlKHR = 5087u32, |
2212 | | SampleMaskOverrideCoverageNV = 5249u32, |
2213 | | GeometryShaderPassthroughNV = 5251u32, |
2214 | | ShaderViewportIndexLayerEXT = 5254u32, |
2215 | | ShaderViewportMaskNV = 5255u32, |
2216 | | ShaderStereoViewNV = 5259u32, |
2217 | | PerViewAttributesNV = 5260u32, |
2218 | | FragmentFullyCoveredEXT = 5265u32, |
2219 | | MeshShadingNV = 5266u32, |
2220 | | ImageFootprintNV = 5282u32, |
2221 | | MeshShadingEXT = 5283u32, |
2222 | | FragmentBarycentricKHR = 5284u32, |
2223 | | ComputeDerivativeGroupQuadsKHR = 5288u32, |
2224 | | FragmentDensityEXT = 5291u32, |
2225 | | GroupNonUniformPartitionedNV = 5297u32, |
2226 | | ShaderNonUniform = 5301u32, |
2227 | | RuntimeDescriptorArray = 5302u32, |
2228 | | InputAttachmentArrayDynamicIndexing = 5303u32, |
2229 | | UniformTexelBufferArrayDynamicIndexing = 5304u32, |
2230 | | StorageTexelBufferArrayDynamicIndexing = 5305u32, |
2231 | | UniformBufferArrayNonUniformIndexing = 5306u32, |
2232 | | SampledImageArrayNonUniformIndexing = 5307u32, |
2233 | | StorageBufferArrayNonUniformIndexing = 5308u32, |
2234 | | StorageImageArrayNonUniformIndexing = 5309u32, |
2235 | | InputAttachmentArrayNonUniformIndexing = 5310u32, |
2236 | | UniformTexelBufferArrayNonUniformIndexing = 5311u32, |
2237 | | StorageTexelBufferArrayNonUniformIndexing = 5312u32, |
2238 | | RayTracingPositionFetchKHR = 5336u32, |
2239 | | RayTracingNV = 5340u32, |
2240 | | RayTracingMotionBlurNV = 5341u32, |
2241 | | VulkanMemoryModel = 5345u32, |
2242 | | VulkanMemoryModelDeviceScope = 5346u32, |
2243 | | PhysicalStorageBufferAddresses = 5347u32, |
2244 | | ComputeDerivativeGroupLinearKHR = 5350u32, |
2245 | | RayTracingProvisionalKHR = 5353u32, |
2246 | | CooperativeMatrixNV = 5357u32, |
2247 | | FragmentShaderSampleInterlockEXT = 5363u32, |
2248 | | FragmentShaderShadingRateInterlockEXT = 5372u32, |
2249 | | ShaderSMBuiltinsNV = 5373u32, |
2250 | | FragmentShaderPixelInterlockEXT = 5378u32, |
2251 | | DemoteToHelperInvocation = 5379u32, |
2252 | | DisplacementMicromapNV = 5380u32, |
2253 | | RayTracingOpacityMicromapEXT = 5381u32, |
2254 | | ShaderInvocationReorderNV = 5383u32, |
2255 | | BindlessTextureNV = 5390u32, |
2256 | | RayQueryPositionFetchKHR = 5391u32, |
2257 | | CooperativeVectorNV = 5394u32, |
2258 | | AtomicFloat16VectorNV = 5404u32, |
2259 | | RayTracingDisplacementMicromapNV = 5409u32, |
2260 | | RawAccessChainsNV = 5414u32, |
2261 | | RayTracingSpheresGeometryNV = 5418u32, |
2262 | | RayTracingLinearSweptSpheresGeometryNV = 5419u32, |
2263 | | CooperativeMatrixReductionsNV = 5430u32, |
2264 | | CooperativeMatrixConversionsNV = 5431u32, |
2265 | | CooperativeMatrixPerElementOperationsNV = 5432u32, |
2266 | | CooperativeMatrixTensorAddressingNV = 5433u32, |
2267 | | CooperativeMatrixBlockLoadsNV = 5434u32, |
2268 | | CooperativeVectorTrainingNV = 5435u32, |
2269 | | RayTracingClusterAccelerationStructureNV = 5437u32, |
2270 | | TensorAddressingNV = 5439u32, |
2271 | | SubgroupShuffleINTEL = 5568u32, |
2272 | | SubgroupBufferBlockIOINTEL = 5569u32, |
2273 | | SubgroupImageBlockIOINTEL = 5570u32, |
2274 | | SubgroupImageMediaBlockIOINTEL = 5579u32, |
2275 | | RoundToInfinityINTEL = 5582u32, |
2276 | | FloatingPointModeINTEL = 5583u32, |
2277 | | IntegerFunctions2INTEL = 5584u32, |
2278 | | FunctionPointersINTEL = 5603u32, |
2279 | | IndirectReferencesINTEL = 5604u32, |
2280 | | AsmINTEL = 5606u32, |
2281 | | AtomicFloat32MinMaxEXT = 5612u32, |
2282 | | AtomicFloat64MinMaxEXT = 5613u32, |
2283 | | AtomicFloat16MinMaxEXT = 5616u32, |
2284 | | VectorComputeINTEL = 5617u32, |
2285 | | VectorAnyINTEL = 5619u32, |
2286 | | ExpectAssumeKHR = 5629u32, |
2287 | | SubgroupAvcMotionEstimationINTEL = 5696u32, |
2288 | | SubgroupAvcMotionEstimationIntraINTEL = 5697u32, |
2289 | | SubgroupAvcMotionEstimationChromaINTEL = 5698u32, |
2290 | | VariableLengthArrayINTEL = 5817u32, |
2291 | | FunctionFloatControlINTEL = 5821u32, |
2292 | | FPGAMemoryAttributesINTEL = 5824u32, |
2293 | | FPFastMathModeINTEL = 5837u32, |
2294 | | ArbitraryPrecisionIntegersINTEL = 5844u32, |
2295 | | ArbitraryPrecisionFloatingPointINTEL = 5845u32, |
2296 | | UnstructuredLoopControlsINTEL = 5886u32, |
2297 | | FPGALoopControlsINTEL = 5888u32, |
2298 | | KernelAttributesINTEL = 5892u32, |
2299 | | FPGAKernelAttributesINTEL = 5897u32, |
2300 | | FPGAMemoryAccessesINTEL = 5898u32, |
2301 | | FPGAClusterAttributesINTEL = 5904u32, |
2302 | | LoopFuseINTEL = 5906u32, |
2303 | | FPGADSPControlINTEL = 5908u32, |
2304 | | MemoryAccessAliasingINTEL = 5910u32, |
2305 | | FPGAInvocationPipeliningAttributesINTEL = 5916u32, |
2306 | | FPGABufferLocationINTEL = 5920u32, |
2307 | | ArbitraryPrecisionFixedPointINTEL = 5922u32, |
2308 | | USMStorageClassesINTEL = 5935u32, |
2309 | | RuntimeAlignedAttributeINTEL = 5939u32, |
2310 | | IOPipesINTEL = 5943u32, |
2311 | | BlockingPipesINTEL = 5945u32, |
2312 | | FPGARegINTEL = 5948u32, |
2313 | | DotProductInputAll = 6016u32, |
2314 | | DotProductInput4x8Bit = 6017u32, |
2315 | | DotProductInput4x8BitPacked = 6018u32, |
2316 | | DotProduct = 6019u32, |
2317 | | RayCullMaskKHR = 6020u32, |
2318 | | CooperativeMatrixKHR = 6022u32, |
2319 | | ReplicatedCompositesEXT = 6024u32, |
2320 | | BitInstructions = 6025u32, |
2321 | | GroupNonUniformRotateKHR = 6026u32, |
2322 | | FloatControls2 = 6029u32, |
2323 | | AtomicFloat32AddEXT = 6033u32, |
2324 | | AtomicFloat64AddEXT = 6034u32, |
2325 | | LongCompositesINTEL = 6089u32, |
2326 | | OptNoneEXT = 6094u32, |
2327 | | AtomicFloat16AddEXT = 6095u32, |
2328 | | DebugInfoModuleINTEL = 6114u32, |
2329 | | BFloat16ConversionINTEL = 6115u32, |
2330 | | SplitBarrierINTEL = 6141u32, |
2331 | | ArithmeticFenceEXT = 6144u32, |
2332 | | FPGAClusterAttributesV2INTEL = 6150u32, |
2333 | | FPGAKernelAttributesv2INTEL = 6161u32, |
2334 | | FPMaxErrorINTEL = 6169u32, |
2335 | | FPGALatencyControlINTEL = 6171u32, |
2336 | | FPGAArgumentInterfacesINTEL = 6174u32, |
2337 | | GlobalVariableHostAccessINTEL = 6187u32, |
2338 | | GlobalVariableFPGADecorationsINTEL = 6189u32, |
2339 | | SubgroupBufferPrefetchINTEL = 6220u32, |
2340 | | Subgroup2DBlockIOINTEL = 6228u32, |
2341 | | Subgroup2DBlockTransformINTEL = 6229u32, |
2342 | | Subgroup2DBlockTransposeINTEL = 6230u32, |
2343 | | SubgroupMatrixMultiplyAccumulateINTEL = 6236u32, |
2344 | | GroupUniformArithmeticKHR = 6400u32, |
2345 | | MaskedGatherScatterINTEL = 6427u32, |
2346 | | CacheControlsINTEL = 6441u32, |
2347 | | RegisterLimitsINTEL = 6460u32, |
2348 | | } |
2349 | | impl Capability { |
2350 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
2351 | 0 | Some(match n { |
2352 | 0 | 0u32..=15u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2353 | 0 | 17u32..=25u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2354 | 0 | 27u32..=71u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2355 | 0 | 4165u32..=4168u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2356 | 0 | 4201u32 => unsafe { core::mem::transmute::<u32, Capability>(4201u32) }, |
2357 | 0 | 4422u32..=4423u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2358 | 0 | 4427u32..=4431u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2359 | 0 | 4433u32..=4437u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2360 | 0 | 4439u32 => unsafe { core::mem::transmute::<u32, Capability>(4439u32) }, |
2361 | 0 | 4441u32..=4442u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2362 | 0 | 4445u32 => unsafe { core::mem::transmute::<u32, Capability>(4445u32) }, |
2363 | 0 | 4447u32..=4450u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2364 | 0 | 4464u32..=4468u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2365 | 0 | 4471u32..=4473u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2366 | 0 | 4478u32..=4479u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2367 | 0 | 4484u32..=4486u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2368 | 0 | 4498u32 => unsafe { core::mem::transmute::<u32, Capability>(4498u32) }, |
2369 | 0 | 5008u32..=5010u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2370 | 0 | 5013u32 => unsafe { core::mem::transmute::<u32, Capability>(5013u32) }, |
2371 | 0 | 5015u32..=5016u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2372 | 0 | 5055u32 => unsafe { core::mem::transmute::<u32, Capability>(5055u32) }, |
2373 | 0 | 5067u32 => unsafe { core::mem::transmute::<u32, Capability>(5067u32) }, |
2374 | 0 | 5087u32 => unsafe { core::mem::transmute::<u32, Capability>(5087u32) }, |
2375 | 0 | 5249u32 => unsafe { core::mem::transmute::<u32, Capability>(5249u32) }, |
2376 | 0 | 5251u32 => unsafe { core::mem::transmute::<u32, Capability>(5251u32) }, |
2377 | 0 | 5254u32..=5255u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2378 | 0 | 5259u32..=5260u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2379 | 0 | 5265u32..=5266u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2380 | 0 | 5282u32..=5284u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2381 | 0 | 5288u32 => unsafe { core::mem::transmute::<u32, Capability>(5288u32) }, |
2382 | 0 | 5291u32 => unsafe { core::mem::transmute::<u32, Capability>(5291u32) }, |
2383 | 0 | 5297u32 => unsafe { core::mem::transmute::<u32, Capability>(5297u32) }, |
2384 | 0 | 5301u32..=5312u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2385 | 0 | 5336u32 => unsafe { core::mem::transmute::<u32, Capability>(5336u32) }, |
2386 | 0 | 5340u32..=5341u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2387 | 0 | 5345u32..=5347u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2388 | 0 | 5350u32 => unsafe { core::mem::transmute::<u32, Capability>(5350u32) }, |
2389 | 0 | 5353u32 => unsafe { core::mem::transmute::<u32, Capability>(5353u32) }, |
2390 | 0 | 5357u32 => unsafe { core::mem::transmute::<u32, Capability>(5357u32) }, |
2391 | 0 | 5363u32 => unsafe { core::mem::transmute::<u32, Capability>(5363u32) }, |
2392 | 0 | 5372u32..=5373u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2393 | 0 | 5378u32..=5381u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2394 | 0 | 5383u32 => unsafe { core::mem::transmute::<u32, Capability>(5383u32) }, |
2395 | 0 | 5390u32..=5391u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2396 | 0 | 5394u32 => unsafe { core::mem::transmute::<u32, Capability>(5394u32) }, |
2397 | 0 | 5404u32 => unsafe { core::mem::transmute::<u32, Capability>(5404u32) }, |
2398 | 0 | 5409u32 => unsafe { core::mem::transmute::<u32, Capability>(5409u32) }, |
2399 | 0 | 5414u32 => unsafe { core::mem::transmute::<u32, Capability>(5414u32) }, |
2400 | 0 | 5418u32..=5419u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2401 | 0 | 5430u32..=5435u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2402 | 0 | 5437u32 => unsafe { core::mem::transmute::<u32, Capability>(5437u32) }, |
2403 | 0 | 5439u32 => unsafe { core::mem::transmute::<u32, Capability>(5439u32) }, |
2404 | 0 | 5568u32..=5570u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2405 | 0 | 5579u32 => unsafe { core::mem::transmute::<u32, Capability>(5579u32) }, |
2406 | 0 | 5582u32..=5584u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2407 | 0 | 5603u32..=5604u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2408 | 0 | 5606u32 => unsafe { core::mem::transmute::<u32, Capability>(5606u32) }, |
2409 | 0 | 5612u32..=5613u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2410 | 0 | 5616u32..=5617u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2411 | 0 | 5619u32 => unsafe { core::mem::transmute::<u32, Capability>(5619u32) }, |
2412 | 0 | 5629u32 => unsafe { core::mem::transmute::<u32, Capability>(5629u32) }, |
2413 | 0 | 5696u32..=5698u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2414 | 0 | 5817u32 => unsafe { core::mem::transmute::<u32, Capability>(5817u32) }, |
2415 | 0 | 5821u32 => unsafe { core::mem::transmute::<u32, Capability>(5821u32) }, |
2416 | 0 | 5824u32 => unsafe { core::mem::transmute::<u32, Capability>(5824u32) }, |
2417 | 0 | 5837u32 => unsafe { core::mem::transmute::<u32, Capability>(5837u32) }, |
2418 | 0 | 5844u32..=5845u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2419 | 0 | 5886u32 => unsafe { core::mem::transmute::<u32, Capability>(5886u32) }, |
2420 | 0 | 5888u32 => unsafe { core::mem::transmute::<u32, Capability>(5888u32) }, |
2421 | 0 | 5892u32 => unsafe { core::mem::transmute::<u32, Capability>(5892u32) }, |
2422 | 0 | 5897u32..=5898u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2423 | 0 | 5904u32 => unsafe { core::mem::transmute::<u32, Capability>(5904u32) }, |
2424 | 0 | 5906u32 => unsafe { core::mem::transmute::<u32, Capability>(5906u32) }, |
2425 | 0 | 5908u32 => unsafe { core::mem::transmute::<u32, Capability>(5908u32) }, |
2426 | 0 | 5910u32 => unsafe { core::mem::transmute::<u32, Capability>(5910u32) }, |
2427 | 0 | 5916u32 => unsafe { core::mem::transmute::<u32, Capability>(5916u32) }, |
2428 | 0 | 5920u32 => unsafe { core::mem::transmute::<u32, Capability>(5920u32) }, |
2429 | 0 | 5922u32 => unsafe { core::mem::transmute::<u32, Capability>(5922u32) }, |
2430 | 0 | 5935u32 => unsafe { core::mem::transmute::<u32, Capability>(5935u32) }, |
2431 | 0 | 5939u32 => unsafe { core::mem::transmute::<u32, Capability>(5939u32) }, |
2432 | 0 | 5943u32 => unsafe { core::mem::transmute::<u32, Capability>(5943u32) }, |
2433 | 0 | 5945u32 => unsafe { core::mem::transmute::<u32, Capability>(5945u32) }, |
2434 | 0 | 5948u32 => unsafe { core::mem::transmute::<u32, Capability>(5948u32) }, |
2435 | 0 | 6016u32..=6020u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2436 | 0 | 6022u32 => unsafe { core::mem::transmute::<u32, Capability>(6022u32) }, |
2437 | 0 | 6024u32..=6026u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2438 | 0 | 6029u32 => unsafe { core::mem::transmute::<u32, Capability>(6029u32) }, |
2439 | 0 | 6033u32..=6034u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2440 | 0 | 6089u32 => unsafe { core::mem::transmute::<u32, Capability>(6089u32) }, |
2441 | 0 | 6094u32..=6095u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2442 | 0 | 6114u32..=6115u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2443 | 0 | 6141u32 => unsafe { core::mem::transmute::<u32, Capability>(6141u32) }, |
2444 | 0 | 6144u32 => unsafe { core::mem::transmute::<u32, Capability>(6144u32) }, |
2445 | 0 | 6150u32 => unsafe { core::mem::transmute::<u32, Capability>(6150u32) }, |
2446 | 0 | 6161u32 => unsafe { core::mem::transmute::<u32, Capability>(6161u32) }, |
2447 | 0 | 6169u32 => unsafe { core::mem::transmute::<u32, Capability>(6169u32) }, |
2448 | 0 | 6171u32 => unsafe { core::mem::transmute::<u32, Capability>(6171u32) }, |
2449 | 0 | 6174u32 => unsafe { core::mem::transmute::<u32, Capability>(6174u32) }, |
2450 | 0 | 6187u32 => unsafe { core::mem::transmute::<u32, Capability>(6187u32) }, |
2451 | 0 | 6189u32 => unsafe { core::mem::transmute::<u32, Capability>(6189u32) }, |
2452 | 0 | 6220u32 => unsafe { core::mem::transmute::<u32, Capability>(6220u32) }, |
2453 | 0 | 6228u32..=6230u32 => unsafe { core::mem::transmute::<u32, Capability>(n) }, |
2454 | 0 | 6236u32 => unsafe { core::mem::transmute::<u32, Capability>(6236u32) }, |
2455 | 0 | 6400u32 => unsafe { core::mem::transmute::<u32, Capability>(6400u32) }, |
2456 | 0 | 6427u32 => unsafe { core::mem::transmute::<u32, Capability>(6427u32) }, |
2457 | 0 | 6441u32 => unsafe { core::mem::transmute::<u32, Capability>(6441u32) }, |
2458 | 0 | 6460u32 => unsafe { core::mem::transmute::<u32, Capability>(6460u32) }, |
2459 | 0 | _ => return None, |
2460 | | }) |
2461 | 0 | } |
2462 | | } |
2463 | | #[allow(non_upper_case_globals)] |
2464 | | impl Capability { |
2465 | | pub const StorageUniformBufferBlock16: Self = Self::StorageBuffer16BitAccess; |
2466 | | pub const StorageUniform16: Self = Self::UniformAndStorageBuffer16BitAccess; |
2467 | | pub const ShaderViewportIndexLayerNV: Self = Self::ShaderViewportIndexLayerEXT; |
2468 | | pub const FragmentBarycentricNV: Self = Self::FragmentBarycentricKHR; |
2469 | | pub const ComputeDerivativeGroupQuadsNV: Self = Self::ComputeDerivativeGroupQuadsKHR; |
2470 | | pub const ShadingRateNV: Self = Self::FragmentDensityEXT; |
2471 | | pub const ShaderNonUniformEXT: Self = Self::ShaderNonUniform; |
2472 | | pub const RuntimeDescriptorArrayEXT: Self = Self::RuntimeDescriptorArray; |
2473 | | pub const InputAttachmentArrayDynamicIndexingEXT: Self = |
2474 | | Self::InputAttachmentArrayDynamicIndexing; |
2475 | | pub const UniformTexelBufferArrayDynamicIndexingEXT: Self = |
2476 | | Self::UniformTexelBufferArrayDynamicIndexing; |
2477 | | pub const StorageTexelBufferArrayDynamicIndexingEXT: Self = |
2478 | | Self::StorageTexelBufferArrayDynamicIndexing; |
2479 | | pub const UniformBufferArrayNonUniformIndexingEXT: Self = |
2480 | | Self::UniformBufferArrayNonUniformIndexing; |
2481 | | pub const SampledImageArrayNonUniformIndexingEXT: Self = |
2482 | | Self::SampledImageArrayNonUniformIndexing; |
2483 | | pub const StorageBufferArrayNonUniformIndexingEXT: Self = |
2484 | | Self::StorageBufferArrayNonUniformIndexing; |
2485 | | pub const StorageImageArrayNonUniformIndexingEXT: Self = |
2486 | | Self::StorageImageArrayNonUniformIndexing; |
2487 | | pub const InputAttachmentArrayNonUniformIndexingEXT: Self = |
2488 | | Self::InputAttachmentArrayNonUniformIndexing; |
2489 | | pub const UniformTexelBufferArrayNonUniformIndexingEXT: Self = |
2490 | | Self::UniformTexelBufferArrayNonUniformIndexing; |
2491 | | pub const StorageTexelBufferArrayNonUniformIndexingEXT: Self = |
2492 | | Self::StorageTexelBufferArrayNonUniformIndexing; |
2493 | | pub const VulkanMemoryModelKHR: Self = Self::VulkanMemoryModel; |
2494 | | pub const VulkanMemoryModelDeviceScopeKHR: Self = Self::VulkanMemoryModelDeviceScope; |
2495 | | pub const PhysicalStorageBufferAddressesEXT: Self = Self::PhysicalStorageBufferAddresses; |
2496 | | pub const ComputeDerivativeGroupLinearNV: Self = Self::ComputeDerivativeGroupLinearKHR; |
2497 | | pub const DemoteToHelperInvocationEXT: Self = Self::DemoteToHelperInvocation; |
2498 | | pub const DotProductInputAllKHR: Self = Self::DotProductInputAll; |
2499 | | pub const DotProductInput4x8BitKHR: Self = Self::DotProductInput4x8Bit; |
2500 | | pub const DotProductInput4x8BitPackedKHR: Self = Self::DotProductInput4x8BitPacked; |
2501 | | pub const DotProductKHR: Self = Self::DotProduct; |
2502 | | pub const OptNoneINTEL: Self = Self::OptNoneEXT; |
2503 | | } |
2504 | | impl core::str::FromStr for Capability { |
2505 | | type Err = (); |
2506 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
2507 | 0 | Ok(match s { |
2508 | 0 | "Matrix" => Self::Matrix, |
2509 | 0 | "Shader" => Self::Shader, |
2510 | 0 | "Geometry" => Self::Geometry, |
2511 | 0 | "Tessellation" => Self::Tessellation, |
2512 | 0 | "Addresses" => Self::Addresses, |
2513 | 0 | "Linkage" => Self::Linkage, |
2514 | 0 | "Kernel" => Self::Kernel, |
2515 | 0 | "Vector16" => Self::Vector16, |
2516 | 0 | "Float16Buffer" => Self::Float16Buffer, |
2517 | 0 | "Float16" => Self::Float16, |
2518 | 0 | "Float64" => Self::Float64, |
2519 | 0 | "Int64" => Self::Int64, |
2520 | 0 | "Int64Atomics" => Self::Int64Atomics, |
2521 | 0 | "ImageBasic" => Self::ImageBasic, |
2522 | 0 | "ImageReadWrite" => Self::ImageReadWrite, |
2523 | 0 | "ImageMipmap" => Self::ImageMipmap, |
2524 | 0 | "Pipes" => Self::Pipes, |
2525 | 0 | "Groups" => Self::Groups, |
2526 | 0 | "DeviceEnqueue" => Self::DeviceEnqueue, |
2527 | 0 | "LiteralSampler" => Self::LiteralSampler, |
2528 | 0 | "AtomicStorage" => Self::AtomicStorage, |
2529 | 0 | "Int16" => Self::Int16, |
2530 | 0 | "TessellationPointSize" => Self::TessellationPointSize, |
2531 | 0 | "GeometryPointSize" => Self::GeometryPointSize, |
2532 | 0 | "ImageGatherExtended" => Self::ImageGatherExtended, |
2533 | 0 | "StorageImageMultisample" => Self::StorageImageMultisample, |
2534 | 0 | "UniformBufferArrayDynamicIndexing" => Self::UniformBufferArrayDynamicIndexing, |
2535 | 0 | "SampledImageArrayDynamicIndexing" => Self::SampledImageArrayDynamicIndexing, |
2536 | 0 | "StorageBufferArrayDynamicIndexing" => Self::StorageBufferArrayDynamicIndexing, |
2537 | 0 | "StorageImageArrayDynamicIndexing" => Self::StorageImageArrayDynamicIndexing, |
2538 | 0 | "ClipDistance" => Self::ClipDistance, |
2539 | 0 | "CullDistance" => Self::CullDistance, |
2540 | 0 | "ImageCubeArray" => Self::ImageCubeArray, |
2541 | 0 | "SampleRateShading" => Self::SampleRateShading, |
2542 | 0 | "ImageRect" => Self::ImageRect, |
2543 | 0 | "SampledRect" => Self::SampledRect, |
2544 | 0 | "GenericPointer" => Self::GenericPointer, |
2545 | 0 | "Int8" => Self::Int8, |
2546 | 0 | "InputAttachment" => Self::InputAttachment, |
2547 | 0 | "SparseResidency" => Self::SparseResidency, |
2548 | 0 | "MinLod" => Self::MinLod, |
2549 | 0 | "Sampled1D" => Self::Sampled1D, |
2550 | 0 | "Image1D" => Self::Image1D, |
2551 | 0 | "SampledCubeArray" => Self::SampledCubeArray, |
2552 | 0 | "SampledBuffer" => Self::SampledBuffer, |
2553 | 0 | "ImageBuffer" => Self::ImageBuffer, |
2554 | 0 | "ImageMSArray" => Self::ImageMSArray, |
2555 | 0 | "StorageImageExtendedFormats" => Self::StorageImageExtendedFormats, |
2556 | 0 | "ImageQuery" => Self::ImageQuery, |
2557 | 0 | "DerivativeControl" => Self::DerivativeControl, |
2558 | 0 | "InterpolationFunction" => Self::InterpolationFunction, |
2559 | 0 | "TransformFeedback" => Self::TransformFeedback, |
2560 | 0 | "GeometryStreams" => Self::GeometryStreams, |
2561 | 0 | "StorageImageReadWithoutFormat" => Self::StorageImageReadWithoutFormat, |
2562 | 0 | "StorageImageWriteWithoutFormat" => Self::StorageImageWriteWithoutFormat, |
2563 | 0 | "MultiViewport" => Self::MultiViewport, |
2564 | 0 | "SubgroupDispatch" => Self::SubgroupDispatch, |
2565 | 0 | "NamedBarrier" => Self::NamedBarrier, |
2566 | 0 | "PipeStorage" => Self::PipeStorage, |
2567 | 0 | "GroupNonUniform" => Self::GroupNonUniform, |
2568 | 0 | "GroupNonUniformVote" => Self::GroupNonUniformVote, |
2569 | 0 | "GroupNonUniformArithmetic" => Self::GroupNonUniformArithmetic, |
2570 | 0 | "GroupNonUniformBallot" => Self::GroupNonUniformBallot, |
2571 | 0 | "GroupNonUniformShuffle" => Self::GroupNonUniformShuffle, |
2572 | 0 | "GroupNonUniformShuffleRelative" => Self::GroupNonUniformShuffleRelative, |
2573 | 0 | "GroupNonUniformClustered" => Self::GroupNonUniformClustered, |
2574 | 0 | "GroupNonUniformQuad" => Self::GroupNonUniformQuad, |
2575 | 0 | "ShaderLayer" => Self::ShaderLayer, |
2576 | 0 | "ShaderViewportIndex" => Self::ShaderViewportIndex, |
2577 | 0 | "UniformDecoration" => Self::UniformDecoration, |
2578 | 0 | "CoreBuiltinsARM" => Self::CoreBuiltinsARM, |
2579 | 0 | "TileImageColorReadAccessEXT" => Self::TileImageColorReadAccessEXT, |
2580 | 0 | "TileImageDepthReadAccessEXT" => Self::TileImageDepthReadAccessEXT, |
2581 | 0 | "TileImageStencilReadAccessEXT" => Self::TileImageStencilReadAccessEXT, |
2582 | 0 | "CooperativeMatrixLayoutsARM" => Self::CooperativeMatrixLayoutsARM, |
2583 | 0 | "FragmentShadingRateKHR" => Self::FragmentShadingRateKHR, |
2584 | 0 | "SubgroupBallotKHR" => Self::SubgroupBallotKHR, |
2585 | 0 | "DrawParameters" => Self::DrawParameters, |
2586 | 0 | "WorkgroupMemoryExplicitLayoutKHR" => Self::WorkgroupMemoryExplicitLayoutKHR, |
2587 | 0 | "WorkgroupMemoryExplicitLayout8BitAccessKHR" => { |
2588 | 0 | Self::WorkgroupMemoryExplicitLayout8BitAccessKHR |
2589 | | } |
2590 | 0 | "WorkgroupMemoryExplicitLayout16BitAccessKHR" => { |
2591 | 0 | Self::WorkgroupMemoryExplicitLayout16BitAccessKHR |
2592 | | } |
2593 | 0 | "SubgroupVoteKHR" => Self::SubgroupVoteKHR, |
2594 | 0 | "StorageBuffer16BitAccess" => Self::StorageBuffer16BitAccess, |
2595 | 0 | "StorageUniformBufferBlock16" => Self::StorageBuffer16BitAccess, |
2596 | 0 | "UniformAndStorageBuffer16BitAccess" => Self::UniformAndStorageBuffer16BitAccess, |
2597 | 0 | "StorageUniform16" => Self::UniformAndStorageBuffer16BitAccess, |
2598 | 0 | "StoragePushConstant16" => Self::StoragePushConstant16, |
2599 | 0 | "StorageInputOutput16" => Self::StorageInputOutput16, |
2600 | 0 | "DeviceGroup" => Self::DeviceGroup, |
2601 | 0 | "MultiView" => Self::MultiView, |
2602 | 0 | "VariablePointersStorageBuffer" => Self::VariablePointersStorageBuffer, |
2603 | 0 | "VariablePointers" => Self::VariablePointers, |
2604 | 0 | "AtomicStorageOps" => Self::AtomicStorageOps, |
2605 | 0 | "SampleMaskPostDepthCoverage" => Self::SampleMaskPostDepthCoverage, |
2606 | 0 | "StorageBuffer8BitAccess" => Self::StorageBuffer8BitAccess, |
2607 | 0 | "UniformAndStorageBuffer8BitAccess" => Self::UniformAndStorageBuffer8BitAccess, |
2608 | 0 | "StoragePushConstant8" => Self::StoragePushConstant8, |
2609 | 0 | "DenormPreserve" => Self::DenormPreserve, |
2610 | 0 | "DenormFlushToZero" => Self::DenormFlushToZero, |
2611 | 0 | "SignedZeroInfNanPreserve" => Self::SignedZeroInfNanPreserve, |
2612 | 0 | "RoundingModeRTE" => Self::RoundingModeRTE, |
2613 | 0 | "RoundingModeRTZ" => Self::RoundingModeRTZ, |
2614 | 0 | "RayQueryProvisionalKHR" => Self::RayQueryProvisionalKHR, |
2615 | 0 | "RayQueryKHR" => Self::RayQueryKHR, |
2616 | 0 | "UntypedPointersKHR" => Self::UntypedPointersKHR, |
2617 | 0 | "RayTraversalPrimitiveCullingKHR" => Self::RayTraversalPrimitiveCullingKHR, |
2618 | 0 | "RayTracingKHR" => Self::RayTracingKHR, |
2619 | 0 | "TextureSampleWeightedQCOM" => Self::TextureSampleWeightedQCOM, |
2620 | 0 | "TextureBoxFilterQCOM" => Self::TextureBoxFilterQCOM, |
2621 | 0 | "TextureBlockMatchQCOM" => Self::TextureBlockMatchQCOM, |
2622 | 0 | "TextureBlockMatch2QCOM" => Self::TextureBlockMatch2QCOM, |
2623 | 0 | "Float16ImageAMD" => Self::Float16ImageAMD, |
2624 | 0 | "ImageGatherBiasLodAMD" => Self::ImageGatherBiasLodAMD, |
2625 | 0 | "FragmentMaskAMD" => Self::FragmentMaskAMD, |
2626 | 0 | "StencilExportEXT" => Self::StencilExportEXT, |
2627 | 0 | "ImageReadWriteLodAMD" => Self::ImageReadWriteLodAMD, |
2628 | 0 | "Int64ImageEXT" => Self::Int64ImageEXT, |
2629 | 0 | "ShaderClockKHR" => Self::ShaderClockKHR, |
2630 | 0 | "ShaderEnqueueAMDX" => Self::ShaderEnqueueAMDX, |
2631 | 0 | "QuadControlKHR" => Self::QuadControlKHR, |
2632 | 0 | "SampleMaskOverrideCoverageNV" => Self::SampleMaskOverrideCoverageNV, |
2633 | 0 | "GeometryShaderPassthroughNV" => Self::GeometryShaderPassthroughNV, |
2634 | 0 | "ShaderViewportIndexLayerEXT" => Self::ShaderViewportIndexLayerEXT, |
2635 | 0 | "ShaderViewportIndexLayerNV" => Self::ShaderViewportIndexLayerEXT, |
2636 | 0 | "ShaderViewportMaskNV" => Self::ShaderViewportMaskNV, |
2637 | 0 | "ShaderStereoViewNV" => Self::ShaderStereoViewNV, |
2638 | 0 | "PerViewAttributesNV" => Self::PerViewAttributesNV, |
2639 | 0 | "FragmentFullyCoveredEXT" => Self::FragmentFullyCoveredEXT, |
2640 | 0 | "MeshShadingNV" => Self::MeshShadingNV, |
2641 | 0 | "ImageFootprintNV" => Self::ImageFootprintNV, |
2642 | 0 | "MeshShadingEXT" => Self::MeshShadingEXT, |
2643 | 0 | "FragmentBarycentricKHR" => Self::FragmentBarycentricKHR, |
2644 | 0 | "FragmentBarycentricNV" => Self::FragmentBarycentricKHR, |
2645 | 0 | "ComputeDerivativeGroupQuadsKHR" => Self::ComputeDerivativeGroupQuadsKHR, |
2646 | 0 | "ComputeDerivativeGroupQuadsNV" => Self::ComputeDerivativeGroupQuadsKHR, |
2647 | 0 | "FragmentDensityEXT" => Self::FragmentDensityEXT, |
2648 | 0 | "ShadingRateNV" => Self::FragmentDensityEXT, |
2649 | 0 | "GroupNonUniformPartitionedNV" => Self::GroupNonUniformPartitionedNV, |
2650 | 0 | "ShaderNonUniform" => Self::ShaderNonUniform, |
2651 | 0 | "ShaderNonUniformEXT" => Self::ShaderNonUniform, |
2652 | 0 | "RuntimeDescriptorArray" => Self::RuntimeDescriptorArray, |
2653 | 0 | "RuntimeDescriptorArrayEXT" => Self::RuntimeDescriptorArray, |
2654 | 0 | "InputAttachmentArrayDynamicIndexing" => Self::InputAttachmentArrayDynamicIndexing, |
2655 | 0 | "InputAttachmentArrayDynamicIndexingEXT" => Self::InputAttachmentArrayDynamicIndexing, |
2656 | 0 | "UniformTexelBufferArrayDynamicIndexing" => { |
2657 | 0 | Self::UniformTexelBufferArrayDynamicIndexing |
2658 | | } |
2659 | 0 | "UniformTexelBufferArrayDynamicIndexingEXT" => { |
2660 | 0 | Self::UniformTexelBufferArrayDynamicIndexing |
2661 | | } |
2662 | 0 | "StorageTexelBufferArrayDynamicIndexing" => { |
2663 | 0 | Self::StorageTexelBufferArrayDynamicIndexing |
2664 | | } |
2665 | 0 | "StorageTexelBufferArrayDynamicIndexingEXT" => { |
2666 | 0 | Self::StorageTexelBufferArrayDynamicIndexing |
2667 | | } |
2668 | 0 | "UniformBufferArrayNonUniformIndexing" => Self::UniformBufferArrayNonUniformIndexing, |
2669 | 0 | "UniformBufferArrayNonUniformIndexingEXT" => Self::UniformBufferArrayNonUniformIndexing, |
2670 | 0 | "SampledImageArrayNonUniformIndexing" => Self::SampledImageArrayNonUniformIndexing, |
2671 | 0 | "SampledImageArrayNonUniformIndexingEXT" => Self::SampledImageArrayNonUniformIndexing, |
2672 | 0 | "StorageBufferArrayNonUniformIndexing" => Self::StorageBufferArrayNonUniformIndexing, |
2673 | 0 | "StorageBufferArrayNonUniformIndexingEXT" => Self::StorageBufferArrayNonUniformIndexing, |
2674 | 0 | "StorageImageArrayNonUniformIndexing" => Self::StorageImageArrayNonUniformIndexing, |
2675 | 0 | "StorageImageArrayNonUniformIndexingEXT" => Self::StorageImageArrayNonUniformIndexing, |
2676 | 0 | "InputAttachmentArrayNonUniformIndexing" => { |
2677 | 0 | Self::InputAttachmentArrayNonUniformIndexing |
2678 | | } |
2679 | 0 | "InputAttachmentArrayNonUniformIndexingEXT" => { |
2680 | 0 | Self::InputAttachmentArrayNonUniformIndexing |
2681 | | } |
2682 | 0 | "UniformTexelBufferArrayNonUniformIndexing" => { |
2683 | 0 | Self::UniformTexelBufferArrayNonUniformIndexing |
2684 | | } |
2685 | 0 | "UniformTexelBufferArrayNonUniformIndexingEXT" => { |
2686 | 0 | Self::UniformTexelBufferArrayNonUniformIndexing |
2687 | | } |
2688 | 0 | "StorageTexelBufferArrayNonUniformIndexing" => { |
2689 | 0 | Self::StorageTexelBufferArrayNonUniformIndexing |
2690 | | } |
2691 | 0 | "StorageTexelBufferArrayNonUniformIndexingEXT" => { |
2692 | 0 | Self::StorageTexelBufferArrayNonUniformIndexing |
2693 | | } |
2694 | 0 | "RayTracingPositionFetchKHR" => Self::RayTracingPositionFetchKHR, |
2695 | 0 | "RayTracingNV" => Self::RayTracingNV, |
2696 | 0 | "RayTracingMotionBlurNV" => Self::RayTracingMotionBlurNV, |
2697 | 0 | "VulkanMemoryModel" => Self::VulkanMemoryModel, |
2698 | 0 | "VulkanMemoryModelKHR" => Self::VulkanMemoryModel, |
2699 | 0 | "VulkanMemoryModelDeviceScope" => Self::VulkanMemoryModelDeviceScope, |
2700 | 0 | "VulkanMemoryModelDeviceScopeKHR" => Self::VulkanMemoryModelDeviceScope, |
2701 | 0 | "PhysicalStorageBufferAddresses" => Self::PhysicalStorageBufferAddresses, |
2702 | 0 | "PhysicalStorageBufferAddressesEXT" => Self::PhysicalStorageBufferAddresses, |
2703 | 0 | "ComputeDerivativeGroupLinearKHR" => Self::ComputeDerivativeGroupLinearKHR, |
2704 | 0 | "ComputeDerivativeGroupLinearNV" => Self::ComputeDerivativeGroupLinearKHR, |
2705 | 0 | "RayTracingProvisionalKHR" => Self::RayTracingProvisionalKHR, |
2706 | 0 | "CooperativeMatrixNV" => Self::CooperativeMatrixNV, |
2707 | 0 | "FragmentShaderSampleInterlockEXT" => Self::FragmentShaderSampleInterlockEXT, |
2708 | 0 | "FragmentShaderShadingRateInterlockEXT" => Self::FragmentShaderShadingRateInterlockEXT, |
2709 | 0 | "ShaderSMBuiltinsNV" => Self::ShaderSMBuiltinsNV, |
2710 | 0 | "FragmentShaderPixelInterlockEXT" => Self::FragmentShaderPixelInterlockEXT, |
2711 | 0 | "DemoteToHelperInvocation" => Self::DemoteToHelperInvocation, |
2712 | 0 | "DemoteToHelperInvocationEXT" => Self::DemoteToHelperInvocation, |
2713 | 0 | "DisplacementMicromapNV" => Self::DisplacementMicromapNV, |
2714 | 0 | "RayTracingOpacityMicromapEXT" => Self::RayTracingOpacityMicromapEXT, |
2715 | 0 | "ShaderInvocationReorderNV" => Self::ShaderInvocationReorderNV, |
2716 | 0 | "BindlessTextureNV" => Self::BindlessTextureNV, |
2717 | 0 | "RayQueryPositionFetchKHR" => Self::RayQueryPositionFetchKHR, |
2718 | 0 | "CooperativeVectorNV" => Self::CooperativeVectorNV, |
2719 | 0 | "AtomicFloat16VectorNV" => Self::AtomicFloat16VectorNV, |
2720 | 0 | "RayTracingDisplacementMicromapNV" => Self::RayTracingDisplacementMicromapNV, |
2721 | 0 | "RawAccessChainsNV" => Self::RawAccessChainsNV, |
2722 | 0 | "RayTracingSpheresGeometryNV" => Self::RayTracingSpheresGeometryNV, |
2723 | 0 | "RayTracingLinearSweptSpheresGeometryNV" => { |
2724 | 0 | Self::RayTracingLinearSweptSpheresGeometryNV |
2725 | | } |
2726 | 0 | "CooperativeMatrixReductionsNV" => Self::CooperativeMatrixReductionsNV, |
2727 | 0 | "CooperativeMatrixConversionsNV" => Self::CooperativeMatrixConversionsNV, |
2728 | 0 | "CooperativeMatrixPerElementOperationsNV" => { |
2729 | 0 | Self::CooperativeMatrixPerElementOperationsNV |
2730 | | } |
2731 | 0 | "CooperativeMatrixTensorAddressingNV" => Self::CooperativeMatrixTensorAddressingNV, |
2732 | 0 | "CooperativeMatrixBlockLoadsNV" => Self::CooperativeMatrixBlockLoadsNV, |
2733 | 0 | "CooperativeVectorTrainingNV" => Self::CooperativeVectorTrainingNV, |
2734 | 0 | "RayTracingClusterAccelerationStructureNV" => { |
2735 | 0 | Self::RayTracingClusterAccelerationStructureNV |
2736 | | } |
2737 | 0 | "TensorAddressingNV" => Self::TensorAddressingNV, |
2738 | 0 | "SubgroupShuffleINTEL" => Self::SubgroupShuffleINTEL, |
2739 | 0 | "SubgroupBufferBlockIOINTEL" => Self::SubgroupBufferBlockIOINTEL, |
2740 | 0 | "SubgroupImageBlockIOINTEL" => Self::SubgroupImageBlockIOINTEL, |
2741 | 0 | "SubgroupImageMediaBlockIOINTEL" => Self::SubgroupImageMediaBlockIOINTEL, |
2742 | 0 | "RoundToInfinityINTEL" => Self::RoundToInfinityINTEL, |
2743 | 0 | "FloatingPointModeINTEL" => Self::FloatingPointModeINTEL, |
2744 | 0 | "IntegerFunctions2INTEL" => Self::IntegerFunctions2INTEL, |
2745 | 0 | "FunctionPointersINTEL" => Self::FunctionPointersINTEL, |
2746 | 0 | "IndirectReferencesINTEL" => Self::IndirectReferencesINTEL, |
2747 | 0 | "AsmINTEL" => Self::AsmINTEL, |
2748 | 0 | "AtomicFloat32MinMaxEXT" => Self::AtomicFloat32MinMaxEXT, |
2749 | 0 | "AtomicFloat64MinMaxEXT" => Self::AtomicFloat64MinMaxEXT, |
2750 | 0 | "AtomicFloat16MinMaxEXT" => Self::AtomicFloat16MinMaxEXT, |
2751 | 0 | "VectorComputeINTEL" => Self::VectorComputeINTEL, |
2752 | 0 | "VectorAnyINTEL" => Self::VectorAnyINTEL, |
2753 | 0 | "ExpectAssumeKHR" => Self::ExpectAssumeKHR, |
2754 | 0 | "SubgroupAvcMotionEstimationINTEL" => Self::SubgroupAvcMotionEstimationINTEL, |
2755 | 0 | "SubgroupAvcMotionEstimationIntraINTEL" => Self::SubgroupAvcMotionEstimationIntraINTEL, |
2756 | 0 | "SubgroupAvcMotionEstimationChromaINTEL" => { |
2757 | 0 | Self::SubgroupAvcMotionEstimationChromaINTEL |
2758 | | } |
2759 | 0 | "VariableLengthArrayINTEL" => Self::VariableLengthArrayINTEL, |
2760 | 0 | "FunctionFloatControlINTEL" => Self::FunctionFloatControlINTEL, |
2761 | 0 | "FPGAMemoryAttributesINTEL" => Self::FPGAMemoryAttributesINTEL, |
2762 | 0 | "FPFastMathModeINTEL" => Self::FPFastMathModeINTEL, |
2763 | 0 | "ArbitraryPrecisionIntegersINTEL" => Self::ArbitraryPrecisionIntegersINTEL, |
2764 | 0 | "ArbitraryPrecisionFloatingPointINTEL" => Self::ArbitraryPrecisionFloatingPointINTEL, |
2765 | 0 | "UnstructuredLoopControlsINTEL" => Self::UnstructuredLoopControlsINTEL, |
2766 | 0 | "FPGALoopControlsINTEL" => Self::FPGALoopControlsINTEL, |
2767 | 0 | "KernelAttributesINTEL" => Self::KernelAttributesINTEL, |
2768 | 0 | "FPGAKernelAttributesINTEL" => Self::FPGAKernelAttributesINTEL, |
2769 | 0 | "FPGAMemoryAccessesINTEL" => Self::FPGAMemoryAccessesINTEL, |
2770 | 0 | "FPGAClusterAttributesINTEL" => Self::FPGAClusterAttributesINTEL, |
2771 | 0 | "LoopFuseINTEL" => Self::LoopFuseINTEL, |
2772 | 0 | "FPGADSPControlINTEL" => Self::FPGADSPControlINTEL, |
2773 | 0 | "MemoryAccessAliasingINTEL" => Self::MemoryAccessAliasingINTEL, |
2774 | 0 | "FPGAInvocationPipeliningAttributesINTEL" => { |
2775 | 0 | Self::FPGAInvocationPipeliningAttributesINTEL |
2776 | | } |
2777 | 0 | "FPGABufferLocationINTEL" => Self::FPGABufferLocationINTEL, |
2778 | 0 | "ArbitraryPrecisionFixedPointINTEL" => Self::ArbitraryPrecisionFixedPointINTEL, |
2779 | 0 | "USMStorageClassesINTEL" => Self::USMStorageClassesINTEL, |
2780 | 0 | "RuntimeAlignedAttributeINTEL" => Self::RuntimeAlignedAttributeINTEL, |
2781 | 0 | "IOPipesINTEL" => Self::IOPipesINTEL, |
2782 | 0 | "BlockingPipesINTEL" => Self::BlockingPipesINTEL, |
2783 | 0 | "FPGARegINTEL" => Self::FPGARegINTEL, |
2784 | 0 | "DotProductInputAll" => Self::DotProductInputAll, |
2785 | 0 | "DotProductInputAllKHR" => Self::DotProductInputAll, |
2786 | 0 | "DotProductInput4x8Bit" => Self::DotProductInput4x8Bit, |
2787 | 0 | "DotProductInput4x8BitKHR" => Self::DotProductInput4x8Bit, |
2788 | 0 | "DotProductInput4x8BitPacked" => Self::DotProductInput4x8BitPacked, |
2789 | 0 | "DotProductInput4x8BitPackedKHR" => Self::DotProductInput4x8BitPacked, |
2790 | 0 | "DotProduct" => Self::DotProduct, |
2791 | 0 | "DotProductKHR" => Self::DotProduct, |
2792 | 0 | "RayCullMaskKHR" => Self::RayCullMaskKHR, |
2793 | 0 | "CooperativeMatrixKHR" => Self::CooperativeMatrixKHR, |
2794 | 0 | "ReplicatedCompositesEXT" => Self::ReplicatedCompositesEXT, |
2795 | 0 | "BitInstructions" => Self::BitInstructions, |
2796 | 0 | "GroupNonUniformRotateKHR" => Self::GroupNonUniformRotateKHR, |
2797 | 0 | "FloatControls2" => Self::FloatControls2, |
2798 | 0 | "AtomicFloat32AddEXT" => Self::AtomicFloat32AddEXT, |
2799 | 0 | "AtomicFloat64AddEXT" => Self::AtomicFloat64AddEXT, |
2800 | 0 | "LongCompositesINTEL" => Self::LongCompositesINTEL, |
2801 | 0 | "OptNoneEXT" => Self::OptNoneEXT, |
2802 | 0 | "OptNoneINTEL" => Self::OptNoneEXT, |
2803 | 0 | "AtomicFloat16AddEXT" => Self::AtomicFloat16AddEXT, |
2804 | 0 | "DebugInfoModuleINTEL" => Self::DebugInfoModuleINTEL, |
2805 | 0 | "BFloat16ConversionINTEL" => Self::BFloat16ConversionINTEL, |
2806 | 0 | "SplitBarrierINTEL" => Self::SplitBarrierINTEL, |
2807 | 0 | "ArithmeticFenceEXT" => Self::ArithmeticFenceEXT, |
2808 | 0 | "FPGAClusterAttributesV2INTEL" => Self::FPGAClusterAttributesV2INTEL, |
2809 | 0 | "FPGAKernelAttributesv2INTEL" => Self::FPGAKernelAttributesv2INTEL, |
2810 | 0 | "FPMaxErrorINTEL" => Self::FPMaxErrorINTEL, |
2811 | 0 | "FPGALatencyControlINTEL" => Self::FPGALatencyControlINTEL, |
2812 | 0 | "FPGAArgumentInterfacesINTEL" => Self::FPGAArgumentInterfacesINTEL, |
2813 | 0 | "GlobalVariableHostAccessINTEL" => Self::GlobalVariableHostAccessINTEL, |
2814 | 0 | "GlobalVariableFPGADecorationsINTEL" => Self::GlobalVariableFPGADecorationsINTEL, |
2815 | 0 | "SubgroupBufferPrefetchINTEL" => Self::SubgroupBufferPrefetchINTEL, |
2816 | 0 | "Subgroup2DBlockIOINTEL" => Self::Subgroup2DBlockIOINTEL, |
2817 | 0 | "Subgroup2DBlockTransformINTEL" => Self::Subgroup2DBlockTransformINTEL, |
2818 | 0 | "Subgroup2DBlockTransposeINTEL" => Self::Subgroup2DBlockTransposeINTEL, |
2819 | 0 | "SubgroupMatrixMultiplyAccumulateINTEL" => Self::SubgroupMatrixMultiplyAccumulateINTEL, |
2820 | 0 | "GroupUniformArithmeticKHR" => Self::GroupUniformArithmeticKHR, |
2821 | 0 | "MaskedGatherScatterINTEL" => Self::MaskedGatherScatterINTEL, |
2822 | 0 | "CacheControlsINTEL" => Self::CacheControlsINTEL, |
2823 | 0 | "RegisterLimitsINTEL" => Self::RegisterLimitsINTEL, |
2824 | 0 | _ => return Err(()), |
2825 | | }) |
2826 | 0 | } |
2827 | | } |
2828 | | #[doc = "SPIR-V operand kind: [RayQueryIntersection](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_ray_query_intersection_a_ray_query_intersection)"] |
2829 | | #[repr(u32)] |
2830 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
2831 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
2832 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
2833 | | #[allow(clippy::upper_case_acronyms)] |
2834 | | pub enum RayQueryIntersection { |
2835 | | RayQueryCandidateIntersectionKHR = 0u32, |
2836 | | RayQueryCommittedIntersectionKHR = 1u32, |
2837 | | } |
2838 | | impl RayQueryIntersection { |
2839 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
2840 | 0 | Some(match n { |
2841 | 0 | 0u32..=1u32 => unsafe { core::mem::transmute::<u32, RayQueryIntersection>(n) }, |
2842 | 0 | _ => return None, |
2843 | | }) |
2844 | 0 | } |
2845 | | } |
2846 | | #[allow(non_upper_case_globals)] |
2847 | | impl RayQueryIntersection {} |
2848 | | impl core::str::FromStr for RayQueryIntersection { |
2849 | | type Err = (); |
2850 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
2851 | 0 | Ok(match s { |
2852 | 0 | "RayQueryCandidateIntersectionKHR" => Self::RayQueryCandidateIntersectionKHR, |
2853 | 0 | "RayQueryCommittedIntersectionKHR" => Self::RayQueryCommittedIntersectionKHR, |
2854 | 0 | _ => return Err(()), |
2855 | | }) |
2856 | 0 | } |
2857 | | } |
2858 | | #[doc = "SPIR-V operand kind: [RayQueryCommittedIntersectionType](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_ray_query_committed_intersection_type_a_ray_query_committed_intersection_type)"] |
2859 | | #[repr(u32)] |
2860 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
2861 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
2862 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
2863 | | #[allow(clippy::upper_case_acronyms)] |
2864 | | pub enum RayQueryCommittedIntersectionType { |
2865 | | RayQueryCommittedIntersectionNoneKHR = 0u32, |
2866 | | RayQueryCommittedIntersectionTriangleKHR = 1u32, |
2867 | | RayQueryCommittedIntersectionGeneratedKHR = 2u32, |
2868 | | } |
2869 | | impl RayQueryCommittedIntersectionType { |
2870 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
2871 | 0 | Some(match n { |
2872 | 0 | 0u32..=2u32 => unsafe { |
2873 | 0 | core::mem::transmute::<u32, RayQueryCommittedIntersectionType>(n) |
2874 | | }, |
2875 | 0 | _ => return None, |
2876 | | }) |
2877 | 0 | } |
2878 | | } |
2879 | | #[allow(non_upper_case_globals)] |
2880 | | impl RayQueryCommittedIntersectionType {} |
2881 | | impl core::str::FromStr for RayQueryCommittedIntersectionType { |
2882 | | type Err = (); |
2883 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
2884 | 0 | Ok(match s { |
2885 | 0 | "RayQueryCommittedIntersectionNoneKHR" => Self::RayQueryCommittedIntersectionNoneKHR, |
2886 | 0 | "RayQueryCommittedIntersectionTriangleKHR" => { |
2887 | 0 | Self::RayQueryCommittedIntersectionTriangleKHR |
2888 | | } |
2889 | 0 | "RayQueryCommittedIntersectionGeneratedKHR" => { |
2890 | 0 | Self::RayQueryCommittedIntersectionGeneratedKHR |
2891 | | } |
2892 | 0 | _ => return Err(()), |
2893 | | }) |
2894 | 0 | } |
2895 | | } |
2896 | | #[doc = "SPIR-V operand kind: [RayQueryCandidateIntersectionType](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_ray_query_candidate_intersection_type_a_ray_query_candidate_intersection_type)"] |
2897 | | #[repr(u32)] |
2898 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
2899 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
2900 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
2901 | | #[allow(clippy::upper_case_acronyms)] |
2902 | | pub enum RayQueryCandidateIntersectionType { |
2903 | | RayQueryCandidateIntersectionTriangleKHR = 0u32, |
2904 | | RayQueryCandidateIntersectionAABBKHR = 1u32, |
2905 | | } |
2906 | | impl RayQueryCandidateIntersectionType { |
2907 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
2908 | 0 | Some(match n { |
2909 | 0 | 0u32..=1u32 => unsafe { |
2910 | 0 | core::mem::transmute::<u32, RayQueryCandidateIntersectionType>(n) |
2911 | | }, |
2912 | 0 | _ => return None, |
2913 | | }) |
2914 | 0 | } |
2915 | | } |
2916 | | #[allow(non_upper_case_globals)] |
2917 | | impl RayQueryCandidateIntersectionType {} |
2918 | | impl core::str::FromStr for RayQueryCandidateIntersectionType { |
2919 | | type Err = (); |
2920 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
2921 | 0 | Ok(match s { |
2922 | 0 | "RayQueryCandidateIntersectionTriangleKHR" => { |
2923 | 0 | Self::RayQueryCandidateIntersectionTriangleKHR |
2924 | | } |
2925 | 0 | "RayQueryCandidateIntersectionAABBKHR" => Self::RayQueryCandidateIntersectionAABBKHR, |
2926 | 0 | _ => return Err(()), |
2927 | | }) |
2928 | 0 | } |
2929 | | } |
2930 | | #[doc = "SPIR-V operand kind: [PackedVectorFormat](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_packed_vector_format_a_packed_vector_format)"] |
2931 | | #[repr(u32)] |
2932 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
2933 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
2934 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
2935 | | #[allow(clippy::upper_case_acronyms)] |
2936 | | pub enum PackedVectorFormat { |
2937 | | PackedVectorFormat4x8Bit = 0u32, |
2938 | | } |
2939 | | impl PackedVectorFormat { |
2940 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
2941 | 0 | Some(match n { |
2942 | 0 | 0u32 => unsafe { core::mem::transmute::<u32, PackedVectorFormat>(0u32) }, |
2943 | 0 | _ => return None, |
2944 | | }) |
2945 | 0 | } |
2946 | | } |
2947 | | #[allow(non_upper_case_globals)] |
2948 | | impl PackedVectorFormat { |
2949 | | pub const PackedVectorFormat4x8BitKHR: Self = Self::PackedVectorFormat4x8Bit; |
2950 | | } |
2951 | | impl core::str::FromStr for PackedVectorFormat { |
2952 | | type Err = (); |
2953 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
2954 | 0 | Ok(match s { |
2955 | 0 | "PackedVectorFormat4x8Bit" => Self::PackedVectorFormat4x8Bit, |
2956 | 0 | "PackedVectorFormat4x8BitKHR" => Self::PackedVectorFormat4x8Bit, |
2957 | 0 | _ => return Err(()), |
2958 | | }) |
2959 | 0 | } |
2960 | | } |
2961 | | bitflags! { # [doc = "SPIR-V operand kind: [CooperativeMatrixOperands](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_cooperative_matrix_operands_a_cooperative_matrix_operands)"] # [derive (Clone , Copy , Debug , PartialEq , Eq , Hash)] # [cfg_attr (feature = "serialize" , derive (serde :: Serialize))] # [cfg_attr (feature = "deserialize" , derive (serde :: Deserialize))] pub struct CooperativeMatrixOperands : u32 { const NONE_KHR = 0u32 ; const MATRIX_A_SIGNED_COMPONENTS_KHR = 1u32 ; const MATRIX_B_SIGNED_COMPONENTS_KHR = 2u32 ; const MATRIX_C_SIGNED_COMPONENTS_KHR = 4u32 ; const MATRIX_RESULT_SIGNED_COMPONENTS_KHR = 8u32 ; const SATURATING_ACCUMULATION_KHR = 16u32 ; } } |
2962 | | #[doc = "SPIR-V operand kind: [CooperativeMatrixLayout](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_cooperative_matrix_layout_a_cooperative_matrix_layout)"] |
2963 | | #[repr(u32)] |
2964 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
2965 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
2966 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
2967 | | #[allow(clippy::upper_case_acronyms)] |
2968 | | pub enum CooperativeMatrixLayout { |
2969 | | RowMajorKHR = 0u32, |
2970 | | ColumnMajorKHR = 1u32, |
2971 | | RowBlockedInterleavedARM = 4202u32, |
2972 | | ColumnBlockedInterleavedARM = 4203u32, |
2973 | | } |
2974 | | impl CooperativeMatrixLayout { |
2975 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
2976 | 0 | Some(match n { |
2977 | 0 | 0u32..=1u32 => unsafe { core::mem::transmute::<u32, CooperativeMatrixLayout>(n) }, |
2978 | 0 | 4202u32..=4203u32 => unsafe { core::mem::transmute::<u32, CooperativeMatrixLayout>(n) }, |
2979 | 0 | _ => return None, |
2980 | | }) |
2981 | 0 | } |
2982 | | } |
2983 | | #[allow(non_upper_case_globals)] |
2984 | | impl CooperativeMatrixLayout {} |
2985 | | impl core::str::FromStr for CooperativeMatrixLayout { |
2986 | | type Err = (); |
2987 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
2988 | 0 | Ok(match s { |
2989 | 0 | "RowMajorKHR" => Self::RowMajorKHR, |
2990 | 0 | "ColumnMajorKHR" => Self::ColumnMajorKHR, |
2991 | 0 | "RowBlockedInterleavedARM" => Self::RowBlockedInterleavedARM, |
2992 | 0 | "ColumnBlockedInterleavedARM" => Self::ColumnBlockedInterleavedARM, |
2993 | 0 | _ => return Err(()), |
2994 | | }) |
2995 | 0 | } |
2996 | | } |
2997 | | #[doc = "SPIR-V operand kind: [CooperativeMatrixUse](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_cooperative_matrix_use_a_cooperative_matrix_use)"] |
2998 | | #[repr(u32)] |
2999 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
3000 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
3001 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
3002 | | #[allow(clippy::upper_case_acronyms)] |
3003 | | pub enum CooperativeMatrixUse { |
3004 | | MatrixAKHR = 0u32, |
3005 | | MatrixBKHR = 1u32, |
3006 | | MatrixAccumulatorKHR = 2u32, |
3007 | | } |
3008 | | impl CooperativeMatrixUse { |
3009 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
3010 | 0 | Some(match n { |
3011 | 0 | 0u32..=2u32 => unsafe { core::mem::transmute::<u32, CooperativeMatrixUse>(n) }, |
3012 | 0 | _ => return None, |
3013 | | }) |
3014 | 0 | } |
3015 | | } |
3016 | | #[allow(non_upper_case_globals)] |
3017 | | impl CooperativeMatrixUse {} |
3018 | | impl core::str::FromStr for CooperativeMatrixUse { |
3019 | | type Err = (); |
3020 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
3021 | 0 | Ok(match s { |
3022 | 0 | "MatrixAKHR" => Self::MatrixAKHR, |
3023 | 0 | "MatrixBKHR" => Self::MatrixBKHR, |
3024 | 0 | "MatrixAccumulatorKHR" => Self::MatrixAccumulatorKHR, |
3025 | 0 | _ => return Err(()), |
3026 | | }) |
3027 | 0 | } |
3028 | | } |
3029 | | bitflags! { # [doc = "SPIR-V operand kind: [CooperativeMatrixReduce](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_cooperative_matrix_reduce_a_cooperative_matrix_reduce)"] # [derive (Clone , Copy , Debug , PartialEq , Eq , Hash)] # [cfg_attr (feature = "serialize" , derive (serde :: Serialize))] # [cfg_attr (feature = "deserialize" , derive (serde :: Deserialize))] pub struct CooperativeMatrixReduce : u32 { const ROW = 1u32 ; const COLUMN = 2u32 ; const _2X2 = 4u32 ; } } |
3030 | | #[doc = "SPIR-V operand kind: [TensorClampMode](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_tensor_clamp_mode_a_tensor_clamp_mode)"] |
3031 | | #[repr(u32)] |
3032 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
3033 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
3034 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
3035 | | #[allow(clippy::upper_case_acronyms)] |
3036 | | pub enum TensorClampMode { |
3037 | | Undefined = 0u32, |
3038 | | Constant = 1u32, |
3039 | | ClampToEdge = 2u32, |
3040 | | Repeat = 3u32, |
3041 | | RepeatMirrored = 4u32, |
3042 | | } |
3043 | | impl TensorClampMode { |
3044 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
3045 | 0 | Some(match n { |
3046 | 0 | 0u32..=4u32 => unsafe { core::mem::transmute::<u32, TensorClampMode>(n) }, |
3047 | 0 | _ => return None, |
3048 | | }) |
3049 | 0 | } |
3050 | | } |
3051 | | #[allow(non_upper_case_globals)] |
3052 | | impl TensorClampMode {} |
3053 | | impl core::str::FromStr for TensorClampMode { |
3054 | | type Err = (); |
3055 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
3056 | 0 | Ok(match s { |
3057 | 0 | "Undefined" => Self::Undefined, |
3058 | 0 | "Constant" => Self::Constant, |
3059 | 0 | "ClampToEdge" => Self::ClampToEdge, |
3060 | 0 | "Repeat" => Self::Repeat, |
3061 | 0 | "RepeatMirrored" => Self::RepeatMirrored, |
3062 | 0 | _ => return Err(()), |
3063 | | }) |
3064 | 0 | } |
3065 | | } |
3066 | | bitflags! { # [doc = "SPIR-V operand kind: [TensorAddressingOperands](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_tensor_addressing_operands_a_tensor_addressing_operands)"] # [derive (Clone , Copy , Debug , PartialEq , Eq , Hash)] # [cfg_attr (feature = "serialize" , derive (serde :: Serialize))] # [cfg_attr (feature = "deserialize" , derive (serde :: Deserialize))] pub struct TensorAddressingOperands : u32 { const NONE = 0u32 ; const TENSOR_VIEW = 1u32 ; const DECODE_FUNC = 2u32 ; } } |
3067 | | #[doc = "SPIR-V operand kind: [InitializationModeQualifier](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_initialization_mode_qualifier_a_initialization_mode_qualifier)"] |
3068 | | #[repr(u32)] |
3069 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
3070 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
3071 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
3072 | | #[allow(clippy::upper_case_acronyms)] |
3073 | | pub enum InitializationModeQualifier { |
3074 | | InitOnDeviceReprogramINTEL = 0u32, |
3075 | | InitOnDeviceResetINTEL = 1u32, |
3076 | | } |
3077 | | impl InitializationModeQualifier { |
3078 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
3079 | 0 | Some(match n { |
3080 | 0 | 0u32..=1u32 => unsafe { core::mem::transmute::<u32, InitializationModeQualifier>(n) }, |
3081 | 0 | _ => return None, |
3082 | | }) |
3083 | 0 | } |
3084 | | } |
3085 | | #[allow(non_upper_case_globals)] |
3086 | | impl InitializationModeQualifier {} |
3087 | | impl core::str::FromStr for InitializationModeQualifier { |
3088 | | type Err = (); |
3089 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
3090 | 0 | Ok(match s { |
3091 | 0 | "InitOnDeviceReprogramINTEL" => Self::InitOnDeviceReprogramINTEL, |
3092 | 0 | "InitOnDeviceResetINTEL" => Self::InitOnDeviceResetINTEL, |
3093 | 0 | _ => return Err(()), |
3094 | | }) |
3095 | 0 | } |
3096 | | } |
3097 | | #[doc = "SPIR-V operand kind: [LoadCacheControl](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_load_cache_control_a_load_cache_control)"] |
3098 | | #[repr(u32)] |
3099 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
3100 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
3101 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
3102 | | #[allow(clippy::upper_case_acronyms)] |
3103 | | pub enum LoadCacheControl { |
3104 | | UncachedINTEL = 0u32, |
3105 | | CachedINTEL = 1u32, |
3106 | | StreamingINTEL = 2u32, |
3107 | | InvalidateAfterReadINTEL = 3u32, |
3108 | | ConstCachedINTEL = 4u32, |
3109 | | } |
3110 | | impl LoadCacheControl { |
3111 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
3112 | 0 | Some(match n { |
3113 | 0 | 0u32..=4u32 => unsafe { core::mem::transmute::<u32, LoadCacheControl>(n) }, |
3114 | 0 | _ => return None, |
3115 | | }) |
3116 | 0 | } |
3117 | | } |
3118 | | #[allow(non_upper_case_globals)] |
3119 | | impl LoadCacheControl {} |
3120 | | impl core::str::FromStr for LoadCacheControl { |
3121 | | type Err = (); |
3122 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
3123 | 0 | Ok(match s { |
3124 | 0 | "UncachedINTEL" => Self::UncachedINTEL, |
3125 | 0 | "CachedINTEL" => Self::CachedINTEL, |
3126 | 0 | "StreamingINTEL" => Self::StreamingINTEL, |
3127 | 0 | "InvalidateAfterReadINTEL" => Self::InvalidateAfterReadINTEL, |
3128 | 0 | "ConstCachedINTEL" => Self::ConstCachedINTEL, |
3129 | 0 | _ => return Err(()), |
3130 | | }) |
3131 | 0 | } |
3132 | | } |
3133 | | #[doc = "SPIR-V operand kind: [StoreCacheControl](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_store_cache_control_a_store_cache_control)"] |
3134 | | #[repr(u32)] |
3135 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
3136 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
3137 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
3138 | | #[allow(clippy::upper_case_acronyms)] |
3139 | | pub enum StoreCacheControl { |
3140 | | UncachedINTEL = 0u32, |
3141 | | WriteThroughINTEL = 1u32, |
3142 | | WriteBackINTEL = 2u32, |
3143 | | StreamingINTEL = 3u32, |
3144 | | } |
3145 | | impl StoreCacheControl { |
3146 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
3147 | 0 | Some(match n { |
3148 | 0 | 0u32..=3u32 => unsafe { core::mem::transmute::<u32, StoreCacheControl>(n) }, |
3149 | 0 | _ => return None, |
3150 | | }) |
3151 | 0 | } |
3152 | | } |
3153 | | #[allow(non_upper_case_globals)] |
3154 | | impl StoreCacheControl {} |
3155 | | impl core::str::FromStr for StoreCacheControl { |
3156 | | type Err = (); |
3157 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
3158 | 0 | Ok(match s { |
3159 | 0 | "UncachedINTEL" => Self::UncachedINTEL, |
3160 | 0 | "WriteThroughINTEL" => Self::WriteThroughINTEL, |
3161 | 0 | "WriteBackINTEL" => Self::WriteBackINTEL, |
3162 | 0 | "StreamingINTEL" => Self::StreamingINTEL, |
3163 | 0 | _ => return Err(()), |
3164 | | }) |
3165 | 0 | } |
3166 | | } |
3167 | | #[doc = "SPIR-V operand kind: [NamedMaximumNumberOfRegisters](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_named_maximum_number_of_registers_a_named_maximum_number_of_registers)"] |
3168 | | #[repr(u32)] |
3169 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
3170 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
3171 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
3172 | | #[allow(clippy::upper_case_acronyms)] |
3173 | | pub enum NamedMaximumNumberOfRegisters { |
3174 | | AutoINTEL = 0u32, |
3175 | | } |
3176 | | impl NamedMaximumNumberOfRegisters { |
3177 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
3178 | 0 | Some(match n { |
3179 | 0 | 0u32 => unsafe { core::mem::transmute::<u32, NamedMaximumNumberOfRegisters>(0u32) }, |
3180 | 0 | _ => return None, |
3181 | | }) |
3182 | 0 | } |
3183 | | } |
3184 | | #[allow(non_upper_case_globals)] |
3185 | | impl NamedMaximumNumberOfRegisters {} |
3186 | | impl core::str::FromStr for NamedMaximumNumberOfRegisters { |
3187 | | type Err = (); |
3188 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
3189 | 0 | Ok(match s { |
3190 | 0 | "AutoINTEL" => Self::AutoINTEL, |
3191 | 0 | _ => return Err(()), |
3192 | | }) |
3193 | 0 | } |
3194 | | } |
3195 | | bitflags! { # [doc = "SPIR-V operand kind: [MatrixMultiplyAccumulateOperands](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_matrix_multiply_accumulate_operands_a_matrix_multiply_accumulate_operands)"] # [derive (Clone , Copy , Debug , PartialEq , Eq , Hash)] # [cfg_attr (feature = "serialize" , derive (serde :: Serialize))] # [cfg_attr (feature = "deserialize" , derive (serde :: Deserialize))] pub struct MatrixMultiplyAccumulateOperands : u32 { const NONE = 0u32 ; const MATRIX_A_SIGNED_COMPONENTS_INTEL = 1u32 ; const MATRIX_B_SIGNED_COMPONENTS_INTEL = 2u32 ; const MATRIX_CB_FLOAT16_INTEL = 4u32 ; const MATRIX_RESULT_B_FLOAT16_INTEL = 8u32 ; const MATRIX_A_PACKED_INT8_INTEL = 16u32 ; const MATRIX_B_PACKED_INT8_INTEL = 32u32 ; const MATRIX_A_PACKED_INT4_INTEL = 64u32 ; const MATRIX_B_PACKED_INT4_INTEL = 128u32 ; const MATRIX_ATF32INTEL = 256u32 ; const MATRIX_BTF32INTEL = 512u32 ; const MATRIX_A_PACKED_FLOAT16_INTEL = 1024u32 ; const MATRIX_B_PACKED_FLOAT16_INTEL = 2048u32 ; const MATRIX_A_PACKED_B_FLOAT16_INTEL = 4096u32 ; const MATRIX_B_PACKED_B_FLOAT16_INTEL = 8192u32 ; } } |
3196 | | #[doc = "SPIR-V operand kind: [FPEncoding](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_fp_encoding_a_fp_encoding)"] |
3197 | | #[repr(u32)] |
3198 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
3199 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
3200 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
3201 | | #[allow(clippy::upper_case_acronyms)] |
3202 | | pub enum FPEncoding { |
3203 | | Max = 0x7fffffff, |
3204 | | } |
3205 | | impl FPEncoding { |
3206 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
3207 | 0 | Some(match n { |
3208 | 0 | 0x7fffffff => Self::Max, |
3209 | 0 | _ => return None, |
3210 | | }) |
3211 | 0 | } |
3212 | | } |
3213 | | #[allow(non_upper_case_globals)] |
3214 | | impl FPEncoding {} |
3215 | | impl core::str::FromStr for FPEncoding { |
3216 | | type Err = (); |
3217 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
3218 | 0 | Ok(match s { |
3219 | 0 | "Max" => Self::Max, |
3220 | 0 | _ => return Err(()), |
3221 | | }) |
3222 | 0 | } |
3223 | | } |
3224 | | #[doc = "SPIR-V operand kind: [CooperativeVectorMatrixLayout](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_cooperative_vector_matrix_layout_a_cooperative_vector_matrix_layout)"] |
3225 | | #[repr(u32)] |
3226 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
3227 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
3228 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
3229 | | #[allow(clippy::upper_case_acronyms)] |
3230 | | pub enum CooperativeVectorMatrixLayout { |
3231 | | RowMajorNV = 0u32, |
3232 | | ColumnMajorNV = 1u32, |
3233 | | InferencingOptimalNV = 2u32, |
3234 | | TrainingOptimalNV = 3u32, |
3235 | | } |
3236 | | impl CooperativeVectorMatrixLayout { |
3237 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
3238 | 0 | Some(match n { |
3239 | 0 | 0u32..=3u32 => unsafe { core::mem::transmute::<u32, CooperativeVectorMatrixLayout>(n) }, |
3240 | 0 | _ => return None, |
3241 | | }) |
3242 | 0 | } |
3243 | | } |
3244 | | #[allow(non_upper_case_globals)] |
3245 | | impl CooperativeVectorMatrixLayout {} |
3246 | | impl core::str::FromStr for CooperativeVectorMatrixLayout { |
3247 | | type Err = (); |
3248 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
3249 | 0 | Ok(match s { |
3250 | 0 | "RowMajorNV" => Self::RowMajorNV, |
3251 | 0 | "ColumnMajorNV" => Self::ColumnMajorNV, |
3252 | 0 | "InferencingOptimalNV" => Self::InferencingOptimalNV, |
3253 | 0 | "TrainingOptimalNV" => Self::TrainingOptimalNV, |
3254 | 0 | _ => return Err(()), |
3255 | | }) |
3256 | 0 | } |
3257 | | } |
3258 | | #[doc = "SPIR-V operand kind: [ComponentType](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_component_type_a_component_type)"] |
3259 | | #[repr(u32)] |
3260 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
3261 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
3262 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
3263 | | #[allow(clippy::upper_case_acronyms)] |
3264 | | pub enum ComponentType { |
3265 | | Float16NV = 0u32, |
3266 | | Float32NV = 1u32, |
3267 | | Float64NV = 2u32, |
3268 | | SignedInt8NV = 3u32, |
3269 | | SignedInt16NV = 4u32, |
3270 | | SignedInt32NV = 5u32, |
3271 | | SignedInt64NV = 6u32, |
3272 | | UnsignedInt8NV = 7u32, |
3273 | | UnsignedInt16NV = 8u32, |
3274 | | UnsignedInt32NV = 9u32, |
3275 | | UnsignedInt64NV = 10u32, |
3276 | | SignedInt8PackedNV = 1000491000u32, |
3277 | | UnsignedInt8PackedNV = 1000491001u32, |
3278 | | FloatE4M3NV = 1000491002u32, |
3279 | | FloatE5M2NV = 1000491003u32, |
3280 | | } |
3281 | | impl ComponentType { |
3282 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
3283 | 0 | Some(match n { |
3284 | 0 | 0u32..=10u32 => unsafe { core::mem::transmute::<u32, ComponentType>(n) }, |
3285 | 0 | 1000491000u32..=1000491003u32 => unsafe { |
3286 | 0 | core::mem::transmute::<u32, ComponentType>(n) |
3287 | | }, |
3288 | 0 | _ => return None, |
3289 | | }) |
3290 | 0 | } |
3291 | | } |
3292 | | #[allow(non_upper_case_globals)] |
3293 | | impl ComponentType {} |
3294 | | impl core::str::FromStr for ComponentType { |
3295 | | type Err = (); |
3296 | 0 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
3297 | 0 | Ok(match s { |
3298 | 0 | "Float16NV" => Self::Float16NV, |
3299 | 0 | "Float32NV" => Self::Float32NV, |
3300 | 0 | "Float64NV" => Self::Float64NV, |
3301 | 0 | "SignedInt8NV" => Self::SignedInt8NV, |
3302 | 0 | "SignedInt16NV" => Self::SignedInt16NV, |
3303 | 0 | "SignedInt32NV" => Self::SignedInt32NV, |
3304 | 0 | "SignedInt64NV" => Self::SignedInt64NV, |
3305 | 0 | "UnsignedInt8NV" => Self::UnsignedInt8NV, |
3306 | 0 | "UnsignedInt16NV" => Self::UnsignedInt16NV, |
3307 | 0 | "UnsignedInt32NV" => Self::UnsignedInt32NV, |
3308 | 0 | "UnsignedInt64NV" => Self::UnsignedInt64NV, |
3309 | 0 | "SignedInt8PackedNV" => Self::SignedInt8PackedNV, |
3310 | 0 | "UnsignedInt8PackedNV" => Self::UnsignedInt8PackedNV, |
3311 | 0 | "FloatE4M3NV" => Self::FloatE4M3NV, |
3312 | 0 | "FloatE5M2NV" => Self::FloatE5M2NV, |
3313 | 0 | _ => return Err(()), |
3314 | | }) |
3315 | 0 | } |
3316 | | } |
3317 | | #[doc = "SPIR-V [instructions](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_instructions_a_instructions) opcodes"] |
3318 | | #[repr(u32)] |
3319 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
3320 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
3321 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
3322 | | #[allow(clippy::upper_case_acronyms)] |
3323 | | pub enum Op { |
3324 | | Nop = 0u32, |
3325 | | Undef = 1u32, |
3326 | | SourceContinued = 2u32, |
3327 | | Source = 3u32, |
3328 | | SourceExtension = 4u32, |
3329 | | Name = 5u32, |
3330 | | MemberName = 6u32, |
3331 | | String = 7u32, |
3332 | | Line = 8u32, |
3333 | | Extension = 10u32, |
3334 | | ExtInstImport = 11u32, |
3335 | | ExtInst = 12u32, |
3336 | | MemoryModel = 14u32, |
3337 | | EntryPoint = 15u32, |
3338 | | ExecutionMode = 16u32, |
3339 | | Capability = 17u32, |
3340 | | TypeVoid = 19u32, |
3341 | | TypeBool = 20u32, |
3342 | | TypeInt = 21u32, |
3343 | | TypeFloat = 22u32, |
3344 | | TypeVector = 23u32, |
3345 | | TypeMatrix = 24u32, |
3346 | | TypeImage = 25u32, |
3347 | | TypeSampler = 26u32, |
3348 | | TypeSampledImage = 27u32, |
3349 | | TypeArray = 28u32, |
3350 | | TypeRuntimeArray = 29u32, |
3351 | | TypeStruct = 30u32, |
3352 | | TypeOpaque = 31u32, |
3353 | | TypePointer = 32u32, |
3354 | | TypeFunction = 33u32, |
3355 | | TypeEvent = 34u32, |
3356 | | TypeDeviceEvent = 35u32, |
3357 | | TypeReserveId = 36u32, |
3358 | | TypeQueue = 37u32, |
3359 | | TypePipe = 38u32, |
3360 | | TypeForwardPointer = 39u32, |
3361 | | ConstantTrue = 41u32, |
3362 | | ConstantFalse = 42u32, |
3363 | | Constant = 43u32, |
3364 | | ConstantComposite = 44u32, |
3365 | | ConstantSampler = 45u32, |
3366 | | ConstantNull = 46u32, |
3367 | | SpecConstantTrue = 48u32, |
3368 | | SpecConstantFalse = 49u32, |
3369 | | SpecConstant = 50u32, |
3370 | | SpecConstantComposite = 51u32, |
3371 | | SpecConstantOp = 52u32, |
3372 | | Function = 54u32, |
3373 | | FunctionParameter = 55u32, |
3374 | | FunctionEnd = 56u32, |
3375 | | FunctionCall = 57u32, |
3376 | | Variable = 59u32, |
3377 | | ImageTexelPointer = 60u32, |
3378 | | Load = 61u32, |
3379 | | Store = 62u32, |
3380 | | CopyMemory = 63u32, |
3381 | | CopyMemorySized = 64u32, |
3382 | | AccessChain = 65u32, |
3383 | | InBoundsAccessChain = 66u32, |
3384 | | PtrAccessChain = 67u32, |
3385 | | ArrayLength = 68u32, |
3386 | | GenericPtrMemSemantics = 69u32, |
3387 | | InBoundsPtrAccessChain = 70u32, |
3388 | | Decorate = 71u32, |
3389 | | MemberDecorate = 72u32, |
3390 | | DecorationGroup = 73u32, |
3391 | | GroupDecorate = 74u32, |
3392 | | GroupMemberDecorate = 75u32, |
3393 | | VectorExtractDynamic = 77u32, |
3394 | | VectorInsertDynamic = 78u32, |
3395 | | VectorShuffle = 79u32, |
3396 | | CompositeConstruct = 80u32, |
3397 | | CompositeExtract = 81u32, |
3398 | | CompositeInsert = 82u32, |
3399 | | CopyObject = 83u32, |
3400 | | Transpose = 84u32, |
3401 | | SampledImage = 86u32, |
3402 | | ImageSampleImplicitLod = 87u32, |
3403 | | ImageSampleExplicitLod = 88u32, |
3404 | | ImageSampleDrefImplicitLod = 89u32, |
3405 | | ImageSampleDrefExplicitLod = 90u32, |
3406 | | ImageSampleProjImplicitLod = 91u32, |
3407 | | ImageSampleProjExplicitLod = 92u32, |
3408 | | ImageSampleProjDrefImplicitLod = 93u32, |
3409 | | ImageSampleProjDrefExplicitLod = 94u32, |
3410 | | ImageFetch = 95u32, |
3411 | | ImageGather = 96u32, |
3412 | | ImageDrefGather = 97u32, |
3413 | | ImageRead = 98u32, |
3414 | | ImageWrite = 99u32, |
3415 | | Image = 100u32, |
3416 | | ImageQueryFormat = 101u32, |
3417 | | ImageQueryOrder = 102u32, |
3418 | | ImageQuerySizeLod = 103u32, |
3419 | | ImageQuerySize = 104u32, |
3420 | | ImageQueryLod = 105u32, |
3421 | | ImageQueryLevels = 106u32, |
3422 | | ImageQuerySamples = 107u32, |
3423 | | ConvertFToU = 109u32, |
3424 | | ConvertFToS = 110u32, |
3425 | | ConvertSToF = 111u32, |
3426 | | ConvertUToF = 112u32, |
3427 | | UConvert = 113u32, |
3428 | | SConvert = 114u32, |
3429 | | FConvert = 115u32, |
3430 | | QuantizeToF16 = 116u32, |
3431 | | ConvertPtrToU = 117u32, |
3432 | | SatConvertSToU = 118u32, |
3433 | | SatConvertUToS = 119u32, |
3434 | | ConvertUToPtr = 120u32, |
3435 | | PtrCastToGeneric = 121u32, |
3436 | | GenericCastToPtr = 122u32, |
3437 | | GenericCastToPtrExplicit = 123u32, |
3438 | | Bitcast = 124u32, |
3439 | | SNegate = 126u32, |
3440 | | FNegate = 127u32, |
3441 | | IAdd = 128u32, |
3442 | | FAdd = 129u32, |
3443 | | ISub = 130u32, |
3444 | | FSub = 131u32, |
3445 | | IMul = 132u32, |
3446 | | FMul = 133u32, |
3447 | | UDiv = 134u32, |
3448 | | SDiv = 135u32, |
3449 | | FDiv = 136u32, |
3450 | | UMod = 137u32, |
3451 | | SRem = 138u32, |
3452 | | SMod = 139u32, |
3453 | | FRem = 140u32, |
3454 | | FMod = 141u32, |
3455 | | VectorTimesScalar = 142u32, |
3456 | | MatrixTimesScalar = 143u32, |
3457 | | VectorTimesMatrix = 144u32, |
3458 | | MatrixTimesVector = 145u32, |
3459 | | MatrixTimesMatrix = 146u32, |
3460 | | OuterProduct = 147u32, |
3461 | | Dot = 148u32, |
3462 | | IAddCarry = 149u32, |
3463 | | ISubBorrow = 150u32, |
3464 | | UMulExtended = 151u32, |
3465 | | SMulExtended = 152u32, |
3466 | | Any = 154u32, |
3467 | | All = 155u32, |
3468 | | IsNan = 156u32, |
3469 | | IsInf = 157u32, |
3470 | | IsFinite = 158u32, |
3471 | | IsNormal = 159u32, |
3472 | | SignBitSet = 160u32, |
3473 | | LessOrGreater = 161u32, |
3474 | | Ordered = 162u32, |
3475 | | Unordered = 163u32, |
3476 | | LogicalEqual = 164u32, |
3477 | | LogicalNotEqual = 165u32, |
3478 | | LogicalOr = 166u32, |
3479 | | LogicalAnd = 167u32, |
3480 | | LogicalNot = 168u32, |
3481 | | Select = 169u32, |
3482 | | IEqual = 170u32, |
3483 | | INotEqual = 171u32, |
3484 | | UGreaterThan = 172u32, |
3485 | | SGreaterThan = 173u32, |
3486 | | UGreaterThanEqual = 174u32, |
3487 | | SGreaterThanEqual = 175u32, |
3488 | | ULessThan = 176u32, |
3489 | | SLessThan = 177u32, |
3490 | | ULessThanEqual = 178u32, |
3491 | | SLessThanEqual = 179u32, |
3492 | | FOrdEqual = 180u32, |
3493 | | FUnordEqual = 181u32, |
3494 | | FOrdNotEqual = 182u32, |
3495 | | FUnordNotEqual = 183u32, |
3496 | | FOrdLessThan = 184u32, |
3497 | | FUnordLessThan = 185u32, |
3498 | | FOrdGreaterThan = 186u32, |
3499 | | FUnordGreaterThan = 187u32, |
3500 | | FOrdLessThanEqual = 188u32, |
3501 | | FUnordLessThanEqual = 189u32, |
3502 | | FOrdGreaterThanEqual = 190u32, |
3503 | | FUnordGreaterThanEqual = 191u32, |
3504 | | ShiftRightLogical = 194u32, |
3505 | | ShiftRightArithmetic = 195u32, |
3506 | | ShiftLeftLogical = 196u32, |
3507 | | BitwiseOr = 197u32, |
3508 | | BitwiseXor = 198u32, |
3509 | | BitwiseAnd = 199u32, |
3510 | | Not = 200u32, |
3511 | | BitFieldInsert = 201u32, |
3512 | | BitFieldSExtract = 202u32, |
3513 | | BitFieldUExtract = 203u32, |
3514 | | BitReverse = 204u32, |
3515 | | BitCount = 205u32, |
3516 | | DPdx = 207u32, |
3517 | | DPdy = 208u32, |
3518 | | Fwidth = 209u32, |
3519 | | DPdxFine = 210u32, |
3520 | | DPdyFine = 211u32, |
3521 | | FwidthFine = 212u32, |
3522 | | DPdxCoarse = 213u32, |
3523 | | DPdyCoarse = 214u32, |
3524 | | FwidthCoarse = 215u32, |
3525 | | EmitVertex = 218u32, |
3526 | | EndPrimitive = 219u32, |
3527 | | EmitStreamVertex = 220u32, |
3528 | | EndStreamPrimitive = 221u32, |
3529 | | ControlBarrier = 224u32, |
3530 | | MemoryBarrier = 225u32, |
3531 | | AtomicLoad = 227u32, |
3532 | | AtomicStore = 228u32, |
3533 | | AtomicExchange = 229u32, |
3534 | | AtomicCompareExchange = 230u32, |
3535 | | AtomicCompareExchangeWeak = 231u32, |
3536 | | AtomicIIncrement = 232u32, |
3537 | | AtomicIDecrement = 233u32, |
3538 | | AtomicIAdd = 234u32, |
3539 | | AtomicISub = 235u32, |
3540 | | AtomicSMin = 236u32, |
3541 | | AtomicUMin = 237u32, |
3542 | | AtomicSMax = 238u32, |
3543 | | AtomicUMax = 239u32, |
3544 | | AtomicAnd = 240u32, |
3545 | | AtomicOr = 241u32, |
3546 | | AtomicXor = 242u32, |
3547 | | Phi = 245u32, |
3548 | | LoopMerge = 246u32, |
3549 | | SelectionMerge = 247u32, |
3550 | | Label = 248u32, |
3551 | | Branch = 249u32, |
3552 | | BranchConditional = 250u32, |
3553 | | Switch = 251u32, |
3554 | | Kill = 252u32, |
3555 | | Return = 253u32, |
3556 | | ReturnValue = 254u32, |
3557 | | Unreachable = 255u32, |
3558 | | LifetimeStart = 256u32, |
3559 | | LifetimeStop = 257u32, |
3560 | | GroupAsyncCopy = 259u32, |
3561 | | GroupWaitEvents = 260u32, |
3562 | | GroupAll = 261u32, |
3563 | | GroupAny = 262u32, |
3564 | | GroupBroadcast = 263u32, |
3565 | | GroupIAdd = 264u32, |
3566 | | GroupFAdd = 265u32, |
3567 | | GroupFMin = 266u32, |
3568 | | GroupUMin = 267u32, |
3569 | | GroupSMin = 268u32, |
3570 | | GroupFMax = 269u32, |
3571 | | GroupUMax = 270u32, |
3572 | | GroupSMax = 271u32, |
3573 | | ReadPipe = 274u32, |
3574 | | WritePipe = 275u32, |
3575 | | ReservedReadPipe = 276u32, |
3576 | | ReservedWritePipe = 277u32, |
3577 | | ReserveReadPipePackets = 278u32, |
3578 | | ReserveWritePipePackets = 279u32, |
3579 | | CommitReadPipe = 280u32, |
3580 | | CommitWritePipe = 281u32, |
3581 | | IsValidReserveId = 282u32, |
3582 | | GetNumPipePackets = 283u32, |
3583 | | GetMaxPipePackets = 284u32, |
3584 | | GroupReserveReadPipePackets = 285u32, |
3585 | | GroupReserveWritePipePackets = 286u32, |
3586 | | GroupCommitReadPipe = 287u32, |
3587 | | GroupCommitWritePipe = 288u32, |
3588 | | EnqueueMarker = 291u32, |
3589 | | EnqueueKernel = 292u32, |
3590 | | GetKernelNDrangeSubGroupCount = 293u32, |
3591 | | GetKernelNDrangeMaxSubGroupSize = 294u32, |
3592 | | GetKernelWorkGroupSize = 295u32, |
3593 | | GetKernelPreferredWorkGroupSizeMultiple = 296u32, |
3594 | | RetainEvent = 297u32, |
3595 | | ReleaseEvent = 298u32, |
3596 | | CreateUserEvent = 299u32, |
3597 | | IsValidEvent = 300u32, |
3598 | | SetUserEventStatus = 301u32, |
3599 | | CaptureEventProfilingInfo = 302u32, |
3600 | | GetDefaultQueue = 303u32, |
3601 | | BuildNDRange = 304u32, |
3602 | | ImageSparseSampleImplicitLod = 305u32, |
3603 | | ImageSparseSampleExplicitLod = 306u32, |
3604 | | ImageSparseSampleDrefImplicitLod = 307u32, |
3605 | | ImageSparseSampleDrefExplicitLod = 308u32, |
3606 | | ImageSparseSampleProjImplicitLod = 309u32, |
3607 | | ImageSparseSampleProjExplicitLod = 310u32, |
3608 | | ImageSparseSampleProjDrefImplicitLod = 311u32, |
3609 | | ImageSparseSampleProjDrefExplicitLod = 312u32, |
3610 | | ImageSparseFetch = 313u32, |
3611 | | ImageSparseGather = 314u32, |
3612 | | ImageSparseDrefGather = 315u32, |
3613 | | ImageSparseTexelsResident = 316u32, |
3614 | | NoLine = 317u32, |
3615 | | AtomicFlagTestAndSet = 318u32, |
3616 | | AtomicFlagClear = 319u32, |
3617 | | ImageSparseRead = 320u32, |
3618 | | SizeOf = 321u32, |
3619 | | TypePipeStorage = 322u32, |
3620 | | ConstantPipeStorage = 323u32, |
3621 | | CreatePipeFromPipeStorage = 324u32, |
3622 | | GetKernelLocalSizeForSubgroupCount = 325u32, |
3623 | | GetKernelMaxNumSubgroups = 326u32, |
3624 | | TypeNamedBarrier = 327u32, |
3625 | | NamedBarrierInitialize = 328u32, |
3626 | | MemoryNamedBarrier = 329u32, |
3627 | | ModuleProcessed = 330u32, |
3628 | | ExecutionModeId = 331u32, |
3629 | | DecorateId = 332u32, |
3630 | | GroupNonUniformElect = 333u32, |
3631 | | GroupNonUniformAll = 334u32, |
3632 | | GroupNonUniformAny = 335u32, |
3633 | | GroupNonUniformAllEqual = 336u32, |
3634 | | GroupNonUniformBroadcast = 337u32, |
3635 | | GroupNonUniformBroadcastFirst = 338u32, |
3636 | | GroupNonUniformBallot = 339u32, |
3637 | | GroupNonUniformInverseBallot = 340u32, |
3638 | | GroupNonUniformBallotBitExtract = 341u32, |
3639 | | GroupNonUniformBallotBitCount = 342u32, |
3640 | | GroupNonUniformBallotFindLSB = 343u32, |
3641 | | GroupNonUniformBallotFindMSB = 344u32, |
3642 | | GroupNonUniformShuffle = 345u32, |
3643 | | GroupNonUniformShuffleXor = 346u32, |
3644 | | GroupNonUniformShuffleUp = 347u32, |
3645 | | GroupNonUniformShuffleDown = 348u32, |
3646 | | GroupNonUniformIAdd = 349u32, |
3647 | | GroupNonUniformFAdd = 350u32, |
3648 | | GroupNonUniformIMul = 351u32, |
3649 | | GroupNonUniformFMul = 352u32, |
3650 | | GroupNonUniformSMin = 353u32, |
3651 | | GroupNonUniformUMin = 354u32, |
3652 | | GroupNonUniformFMin = 355u32, |
3653 | | GroupNonUniformSMax = 356u32, |
3654 | | GroupNonUniformUMax = 357u32, |
3655 | | GroupNonUniformFMax = 358u32, |
3656 | | GroupNonUniformBitwiseAnd = 359u32, |
3657 | | GroupNonUniformBitwiseOr = 360u32, |
3658 | | GroupNonUniformBitwiseXor = 361u32, |
3659 | | GroupNonUniformLogicalAnd = 362u32, |
3660 | | GroupNonUniformLogicalOr = 363u32, |
3661 | | GroupNonUniformLogicalXor = 364u32, |
3662 | | GroupNonUniformQuadBroadcast = 365u32, |
3663 | | GroupNonUniformQuadSwap = 366u32, |
3664 | | CopyLogical = 400u32, |
3665 | | PtrEqual = 401u32, |
3666 | | PtrNotEqual = 402u32, |
3667 | | PtrDiff = 403u32, |
3668 | | ColorAttachmentReadEXT = 4160u32, |
3669 | | DepthAttachmentReadEXT = 4161u32, |
3670 | | StencilAttachmentReadEXT = 4162u32, |
3671 | | TerminateInvocation = 4416u32, |
3672 | | TypeUntypedPointerKHR = 4417u32, |
3673 | | UntypedVariableKHR = 4418u32, |
3674 | | UntypedAccessChainKHR = 4419u32, |
3675 | | UntypedInBoundsAccessChainKHR = 4420u32, |
3676 | | SubgroupBallotKHR = 4421u32, |
3677 | | SubgroupFirstInvocationKHR = 4422u32, |
3678 | | UntypedPtrAccessChainKHR = 4423u32, |
3679 | | UntypedInBoundsPtrAccessChainKHR = 4424u32, |
3680 | | UntypedArrayLengthKHR = 4425u32, |
3681 | | UntypedPrefetchKHR = 4426u32, |
3682 | | SubgroupAllKHR = 4428u32, |
3683 | | SubgroupAnyKHR = 4429u32, |
3684 | | SubgroupAllEqualKHR = 4430u32, |
3685 | | GroupNonUniformRotateKHR = 4431u32, |
3686 | | SubgroupReadInvocationKHR = 4432u32, |
3687 | | ExtInstWithForwardRefsKHR = 4433u32, |
3688 | | TraceRayKHR = 4445u32, |
3689 | | ExecuteCallableKHR = 4446u32, |
3690 | | ConvertUToAccelerationStructureKHR = 4447u32, |
3691 | | IgnoreIntersectionKHR = 4448u32, |
3692 | | TerminateRayKHR = 4449u32, |
3693 | | SDot = 4450u32, |
3694 | | UDot = 4451u32, |
3695 | | SUDot = 4452u32, |
3696 | | SDotAccSat = 4453u32, |
3697 | | UDotAccSat = 4454u32, |
3698 | | SUDotAccSat = 4455u32, |
3699 | | TypeCooperativeMatrixKHR = 4456u32, |
3700 | | CooperativeMatrixLoadKHR = 4457u32, |
3701 | | CooperativeMatrixStoreKHR = 4458u32, |
3702 | | CooperativeMatrixMulAddKHR = 4459u32, |
3703 | | CooperativeMatrixLengthKHR = 4460u32, |
3704 | | ConstantCompositeReplicateEXT = 4461u32, |
3705 | | SpecConstantCompositeReplicateEXT = 4462u32, |
3706 | | CompositeConstructReplicateEXT = 4463u32, |
3707 | | TypeRayQueryKHR = 4472u32, |
3708 | | RayQueryInitializeKHR = 4473u32, |
3709 | | RayQueryTerminateKHR = 4474u32, |
3710 | | RayQueryGenerateIntersectionKHR = 4475u32, |
3711 | | RayQueryConfirmIntersectionKHR = 4476u32, |
3712 | | RayQueryProceedKHR = 4477u32, |
3713 | | RayQueryGetIntersectionTypeKHR = 4479u32, |
3714 | | ImageSampleWeightedQCOM = 4480u32, |
3715 | | ImageBoxFilterQCOM = 4481u32, |
3716 | | ImageBlockMatchSSDQCOM = 4482u32, |
3717 | | ImageBlockMatchSADQCOM = 4483u32, |
3718 | | ImageBlockMatchWindowSSDQCOM = 4500u32, |
3719 | | ImageBlockMatchWindowSADQCOM = 4501u32, |
3720 | | ImageBlockMatchGatherSSDQCOM = 4502u32, |
3721 | | ImageBlockMatchGatherSADQCOM = 4503u32, |
3722 | | GroupIAddNonUniformAMD = 5000u32, |
3723 | | GroupFAddNonUniformAMD = 5001u32, |
3724 | | GroupFMinNonUniformAMD = 5002u32, |
3725 | | GroupUMinNonUniformAMD = 5003u32, |
3726 | | GroupSMinNonUniformAMD = 5004u32, |
3727 | | GroupFMaxNonUniformAMD = 5005u32, |
3728 | | GroupUMaxNonUniformAMD = 5006u32, |
3729 | | GroupSMaxNonUniformAMD = 5007u32, |
3730 | | FragmentMaskFetchAMD = 5011u32, |
3731 | | FragmentFetchAMD = 5012u32, |
3732 | | ReadClockKHR = 5056u32, |
3733 | | AllocateNodePayloadsAMDX = 5074u32, |
3734 | | EnqueueNodePayloadsAMDX = 5075u32, |
3735 | | TypeNodePayloadArrayAMDX = 5076u32, |
3736 | | FinishWritingNodePayloadAMDX = 5078u32, |
3737 | | NodePayloadArrayLengthAMDX = 5090u32, |
3738 | | IsNodePayloadValidAMDX = 5101u32, |
3739 | | ConstantStringAMDX = 5103u32, |
3740 | | SpecConstantStringAMDX = 5104u32, |
3741 | | GroupNonUniformQuadAllKHR = 5110u32, |
3742 | | GroupNonUniformQuadAnyKHR = 5111u32, |
3743 | | HitObjectRecordHitMotionNV = 5249u32, |
3744 | | HitObjectRecordHitWithIndexMotionNV = 5250u32, |
3745 | | HitObjectRecordMissMotionNV = 5251u32, |
3746 | | HitObjectGetWorldToObjectNV = 5252u32, |
3747 | | HitObjectGetObjectToWorldNV = 5253u32, |
3748 | | HitObjectGetObjectRayDirectionNV = 5254u32, |
3749 | | HitObjectGetObjectRayOriginNV = 5255u32, |
3750 | | HitObjectTraceRayMotionNV = 5256u32, |
3751 | | HitObjectGetShaderRecordBufferHandleNV = 5257u32, |
3752 | | HitObjectGetShaderBindingTableRecordIndexNV = 5258u32, |
3753 | | HitObjectRecordEmptyNV = 5259u32, |
3754 | | HitObjectTraceRayNV = 5260u32, |
3755 | | HitObjectRecordHitNV = 5261u32, |
3756 | | HitObjectRecordHitWithIndexNV = 5262u32, |
3757 | | HitObjectRecordMissNV = 5263u32, |
3758 | | HitObjectExecuteShaderNV = 5264u32, |
3759 | | HitObjectGetCurrentTimeNV = 5265u32, |
3760 | | HitObjectGetAttributesNV = 5266u32, |
3761 | | HitObjectGetHitKindNV = 5267u32, |
3762 | | HitObjectGetPrimitiveIndexNV = 5268u32, |
3763 | | HitObjectGetGeometryIndexNV = 5269u32, |
3764 | | HitObjectGetInstanceIdNV = 5270u32, |
3765 | | HitObjectGetInstanceCustomIndexNV = 5271u32, |
3766 | | HitObjectGetWorldRayDirectionNV = 5272u32, |
3767 | | HitObjectGetWorldRayOriginNV = 5273u32, |
3768 | | HitObjectGetRayTMaxNV = 5274u32, |
3769 | | HitObjectGetRayTMinNV = 5275u32, |
3770 | | HitObjectIsEmptyNV = 5276u32, |
3771 | | HitObjectIsHitNV = 5277u32, |
3772 | | HitObjectIsMissNV = 5278u32, |
3773 | | ReorderThreadWithHitObjectNV = 5279u32, |
3774 | | ReorderThreadWithHintNV = 5280u32, |
3775 | | TypeHitObjectNV = 5281u32, |
3776 | | ImageSampleFootprintNV = 5283u32, |
3777 | | TypeCooperativeVectorNV = 5288u32, |
3778 | | CooperativeVectorMatrixMulNV = 5289u32, |
3779 | | CooperativeVectorOuterProductAccumulateNV = 5290u32, |
3780 | | CooperativeVectorReduceSumAccumulateNV = 5291u32, |
3781 | | CooperativeVectorMatrixMulAddNV = 5292u32, |
3782 | | CooperativeMatrixConvertNV = 5293u32, |
3783 | | EmitMeshTasksEXT = 5294u32, |
3784 | | SetMeshOutputsEXT = 5295u32, |
3785 | | GroupNonUniformPartitionNV = 5296u32, |
3786 | | WritePackedPrimitiveIndices4x8NV = 5299u32, |
3787 | | FetchMicroTriangleVertexPositionNV = 5300u32, |
3788 | | FetchMicroTriangleVertexBarycentricNV = 5301u32, |
3789 | | CooperativeVectorLoadNV = 5302u32, |
3790 | | CooperativeVectorStoreNV = 5303u32, |
3791 | | ReportIntersectionKHR = 5334u32, |
3792 | | IgnoreIntersectionNV = 5335u32, |
3793 | | TerminateRayNV = 5336u32, |
3794 | | TraceNV = 5337u32, |
3795 | | TraceMotionNV = 5338u32, |
3796 | | TraceRayMotionNV = 5339u32, |
3797 | | RayQueryGetIntersectionTriangleVertexPositionsKHR = 5340u32, |
3798 | | TypeAccelerationStructureKHR = 5341u32, |
3799 | | ExecuteCallableNV = 5344u32, |
3800 | | RayQueryGetClusterIdNV = 5345u32, |
3801 | | HitObjectGetClusterIdNV = 5346u32, |
3802 | | TypeCooperativeMatrixNV = 5358u32, |
3803 | | CooperativeMatrixLoadNV = 5359u32, |
3804 | | CooperativeMatrixStoreNV = 5360u32, |
3805 | | CooperativeMatrixMulAddNV = 5361u32, |
3806 | | CooperativeMatrixLengthNV = 5362u32, |
3807 | | BeginInvocationInterlockEXT = 5364u32, |
3808 | | EndInvocationInterlockEXT = 5365u32, |
3809 | | CooperativeMatrixReduceNV = 5366u32, |
3810 | | CooperativeMatrixLoadTensorNV = 5367u32, |
3811 | | CooperativeMatrixStoreTensorNV = 5368u32, |
3812 | | CooperativeMatrixPerElementOpNV = 5369u32, |
3813 | | TypeTensorLayoutNV = 5370u32, |
3814 | | TypeTensorViewNV = 5371u32, |
3815 | | CreateTensorLayoutNV = 5372u32, |
3816 | | TensorLayoutSetDimensionNV = 5373u32, |
3817 | | TensorLayoutSetStrideNV = 5374u32, |
3818 | | TensorLayoutSliceNV = 5375u32, |
3819 | | TensorLayoutSetClampValueNV = 5376u32, |
3820 | | CreateTensorViewNV = 5377u32, |
3821 | | TensorViewSetDimensionNV = 5378u32, |
3822 | | TensorViewSetStrideNV = 5379u32, |
3823 | | DemoteToHelperInvocation = 5380u32, |
3824 | | IsHelperInvocationEXT = 5381u32, |
3825 | | TensorViewSetClipNV = 5382u32, |
3826 | | TensorLayoutSetBlockSizeNV = 5384u32, |
3827 | | CooperativeMatrixTransposeNV = 5390u32, |
3828 | | ConvertUToImageNV = 5391u32, |
3829 | | ConvertUToSamplerNV = 5392u32, |
3830 | | ConvertImageToUNV = 5393u32, |
3831 | | ConvertSamplerToUNV = 5394u32, |
3832 | | ConvertUToSampledImageNV = 5395u32, |
3833 | | ConvertSampledImageToUNV = 5396u32, |
3834 | | SamplerImageAddressingModeNV = 5397u32, |
3835 | | RawAccessChainNV = 5398u32, |
3836 | | RayQueryGetIntersectionSpherePositionNV = 5427u32, |
3837 | | RayQueryGetIntersectionSphereRadiusNV = 5428u32, |
3838 | | RayQueryGetIntersectionLSSPositionsNV = 5429u32, |
3839 | | RayQueryGetIntersectionLSSRadiiNV = 5430u32, |
3840 | | RayQueryGetIntersectionLSSHitValueNV = 5431u32, |
3841 | | HitObjectGetSpherePositionNV = 5432u32, |
3842 | | HitObjectGetSphereRadiusNV = 5433u32, |
3843 | | HitObjectGetLSSPositionsNV = 5434u32, |
3844 | | HitObjectGetLSSRadiiNV = 5435u32, |
3845 | | HitObjectIsSphereHitNV = 5436u32, |
3846 | | HitObjectIsLSSHitNV = 5437u32, |
3847 | | RayQueryIsSphereHitNV = 5438u32, |
3848 | | RayQueryIsLSSHitNV = 5439u32, |
3849 | | SubgroupShuffleINTEL = 5571u32, |
3850 | | SubgroupShuffleDownINTEL = 5572u32, |
3851 | | SubgroupShuffleUpINTEL = 5573u32, |
3852 | | SubgroupShuffleXorINTEL = 5574u32, |
3853 | | SubgroupBlockReadINTEL = 5575u32, |
3854 | | SubgroupBlockWriteINTEL = 5576u32, |
3855 | | SubgroupImageBlockReadINTEL = 5577u32, |
3856 | | SubgroupImageBlockWriteINTEL = 5578u32, |
3857 | | SubgroupImageMediaBlockReadINTEL = 5580u32, |
3858 | | SubgroupImageMediaBlockWriteINTEL = 5581u32, |
3859 | | UCountLeadingZerosINTEL = 5585u32, |
3860 | | UCountTrailingZerosINTEL = 5586u32, |
3861 | | AbsISubINTEL = 5587u32, |
3862 | | AbsUSubINTEL = 5588u32, |
3863 | | IAddSatINTEL = 5589u32, |
3864 | | UAddSatINTEL = 5590u32, |
3865 | | IAverageINTEL = 5591u32, |
3866 | | UAverageINTEL = 5592u32, |
3867 | | IAverageRoundedINTEL = 5593u32, |
3868 | | UAverageRoundedINTEL = 5594u32, |
3869 | | ISubSatINTEL = 5595u32, |
3870 | | USubSatINTEL = 5596u32, |
3871 | | IMul32x16INTEL = 5597u32, |
3872 | | UMul32x16INTEL = 5598u32, |
3873 | | ConstantFunctionPointerINTEL = 5600u32, |
3874 | | FunctionPointerCallINTEL = 5601u32, |
3875 | | AsmTargetINTEL = 5609u32, |
3876 | | AsmINTEL = 5610u32, |
3877 | | AsmCallINTEL = 5611u32, |
3878 | | AtomicFMinEXT = 5614u32, |
3879 | | AtomicFMaxEXT = 5615u32, |
3880 | | AssumeTrueKHR = 5630u32, |
3881 | | ExpectKHR = 5631u32, |
3882 | | DecorateString = 5632u32, |
3883 | | MemberDecorateString = 5633u32, |
3884 | | VmeImageINTEL = 5699u32, |
3885 | | TypeVmeImageINTEL = 5700u32, |
3886 | | TypeAvcImePayloadINTEL = 5701u32, |
3887 | | TypeAvcRefPayloadINTEL = 5702u32, |
3888 | | TypeAvcSicPayloadINTEL = 5703u32, |
3889 | | TypeAvcMcePayloadINTEL = 5704u32, |
3890 | | TypeAvcMceResultINTEL = 5705u32, |
3891 | | TypeAvcImeResultINTEL = 5706u32, |
3892 | | TypeAvcImeResultSingleReferenceStreamoutINTEL = 5707u32, |
3893 | | TypeAvcImeResultDualReferenceStreamoutINTEL = 5708u32, |
3894 | | TypeAvcImeSingleReferenceStreaminINTEL = 5709u32, |
3895 | | TypeAvcImeDualReferenceStreaminINTEL = 5710u32, |
3896 | | TypeAvcRefResultINTEL = 5711u32, |
3897 | | TypeAvcSicResultINTEL = 5712u32, |
3898 | | SubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713u32, |
3899 | | SubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714u32, |
3900 | | SubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715u32, |
3901 | | SubgroupAvcMceSetInterShapePenaltyINTEL = 5716u32, |
3902 | | SubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717u32, |
3903 | | SubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718u32, |
3904 | | SubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719u32, |
3905 | | SubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720u32, |
3906 | | SubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721u32, |
3907 | | SubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722u32, |
3908 | | SubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723u32, |
3909 | | SubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724u32, |
3910 | | SubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725u32, |
3911 | | SubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726u32, |
3912 | | SubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727u32, |
3913 | | SubgroupAvcMceSetAcOnlyHaarINTEL = 5728u32, |
3914 | | SubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729u32, |
3915 | | SubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730u32, |
3916 | | SubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731u32, |
3917 | | SubgroupAvcMceConvertToImePayloadINTEL = 5732u32, |
3918 | | SubgroupAvcMceConvertToImeResultINTEL = 5733u32, |
3919 | | SubgroupAvcMceConvertToRefPayloadINTEL = 5734u32, |
3920 | | SubgroupAvcMceConvertToRefResultINTEL = 5735u32, |
3921 | | SubgroupAvcMceConvertToSicPayloadINTEL = 5736u32, |
3922 | | SubgroupAvcMceConvertToSicResultINTEL = 5737u32, |
3923 | | SubgroupAvcMceGetMotionVectorsINTEL = 5738u32, |
3924 | | SubgroupAvcMceGetInterDistortionsINTEL = 5739u32, |
3925 | | SubgroupAvcMceGetBestInterDistortionsINTEL = 5740u32, |
3926 | | SubgroupAvcMceGetInterMajorShapeINTEL = 5741u32, |
3927 | | SubgroupAvcMceGetInterMinorShapeINTEL = 5742u32, |
3928 | | SubgroupAvcMceGetInterDirectionsINTEL = 5743u32, |
3929 | | SubgroupAvcMceGetInterMotionVectorCountINTEL = 5744u32, |
3930 | | SubgroupAvcMceGetInterReferenceIdsINTEL = 5745u32, |
3931 | | SubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746u32, |
3932 | | SubgroupAvcImeInitializeINTEL = 5747u32, |
3933 | | SubgroupAvcImeSetSingleReferenceINTEL = 5748u32, |
3934 | | SubgroupAvcImeSetDualReferenceINTEL = 5749u32, |
3935 | | SubgroupAvcImeRefWindowSizeINTEL = 5750u32, |
3936 | | SubgroupAvcImeAdjustRefOffsetINTEL = 5751u32, |
3937 | | SubgroupAvcImeConvertToMcePayloadINTEL = 5752u32, |
3938 | | SubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753u32, |
3939 | | SubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754u32, |
3940 | | SubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755u32, |
3941 | | SubgroupAvcImeSetWeightedSadINTEL = 5756u32, |
3942 | | SubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757u32, |
3943 | | SubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758u32, |
3944 | | SubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759u32, |
3945 | | SubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760u32, |
3946 | | SubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761u32, |
3947 | | SubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762u32, |
3948 | | SubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763u32, |
3949 | | SubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764u32, |
3950 | | SubgroupAvcImeConvertToMceResultINTEL = 5765u32, |
3951 | | SubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766u32, |
3952 | | SubgroupAvcImeGetDualReferenceStreaminINTEL = 5767u32, |
3953 | | SubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768u32, |
3954 | | SubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769u32, |
3955 | | SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770u32, |
3956 | | SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771u32, |
3957 | | SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772u32, |
3958 | | SubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773u32, |
3959 | | SubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774u32, |
3960 | | SubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775u32, |
3961 | | SubgroupAvcImeGetBorderReachedINTEL = 5776u32, |
3962 | | SubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777u32, |
3963 | | SubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778u32, |
3964 | | SubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779u32, |
3965 | | SubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780u32, |
3966 | | SubgroupAvcFmeInitializeINTEL = 5781u32, |
3967 | | SubgroupAvcBmeInitializeINTEL = 5782u32, |
3968 | | SubgroupAvcRefConvertToMcePayloadINTEL = 5783u32, |
3969 | | SubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784u32, |
3970 | | SubgroupAvcRefSetBilinearFilterEnableINTEL = 5785u32, |
3971 | | SubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786u32, |
3972 | | SubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787u32, |
3973 | | SubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788u32, |
3974 | | SubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789u32, |
3975 | | SubgroupAvcRefConvertToMceResultINTEL = 5790u32, |
3976 | | SubgroupAvcSicInitializeINTEL = 5791u32, |
3977 | | SubgroupAvcSicConfigureSkcINTEL = 5792u32, |
3978 | | SubgroupAvcSicConfigureIpeLumaINTEL = 5793u32, |
3979 | | SubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794u32, |
3980 | | SubgroupAvcSicGetMotionVectorMaskINTEL = 5795u32, |
3981 | | SubgroupAvcSicConvertToMcePayloadINTEL = 5796u32, |
3982 | | SubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797u32, |
3983 | | SubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798u32, |
3984 | | SubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799u32, |
3985 | | SubgroupAvcSicSetBilinearFilterEnableINTEL = 5800u32, |
3986 | | SubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801u32, |
3987 | | SubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802u32, |
3988 | | SubgroupAvcSicEvaluateIpeINTEL = 5803u32, |
3989 | | SubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804u32, |
3990 | | SubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805u32, |
3991 | | SubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806u32, |
3992 | | SubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807u32, |
3993 | | SubgroupAvcSicConvertToMceResultINTEL = 5808u32, |
3994 | | SubgroupAvcSicGetIpeLumaShapeINTEL = 5809u32, |
3995 | | SubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810u32, |
3996 | | SubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811u32, |
3997 | | SubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812u32, |
3998 | | SubgroupAvcSicGetIpeChromaModeINTEL = 5813u32, |
3999 | | SubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814u32, |
4000 | | SubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815u32, |
4001 | | SubgroupAvcSicGetInterRawSadsINTEL = 5816u32, |
4002 | | VariableLengthArrayINTEL = 5818u32, |
4003 | | SaveMemoryINTEL = 5819u32, |
4004 | | RestoreMemoryINTEL = 5820u32, |
4005 | | ArbitraryFloatSinCosPiINTEL = 5840u32, |
4006 | | ArbitraryFloatCastINTEL = 5841u32, |
4007 | | ArbitraryFloatCastFromIntINTEL = 5842u32, |
4008 | | ArbitraryFloatCastToIntINTEL = 5843u32, |
4009 | | ArbitraryFloatAddINTEL = 5846u32, |
4010 | | ArbitraryFloatSubINTEL = 5847u32, |
4011 | | ArbitraryFloatMulINTEL = 5848u32, |
4012 | | ArbitraryFloatDivINTEL = 5849u32, |
4013 | | ArbitraryFloatGTINTEL = 5850u32, |
4014 | | ArbitraryFloatGEINTEL = 5851u32, |
4015 | | ArbitraryFloatLTINTEL = 5852u32, |
4016 | | ArbitraryFloatLEINTEL = 5853u32, |
4017 | | ArbitraryFloatEQINTEL = 5854u32, |
4018 | | ArbitraryFloatRecipINTEL = 5855u32, |
4019 | | ArbitraryFloatRSqrtINTEL = 5856u32, |
4020 | | ArbitraryFloatCbrtINTEL = 5857u32, |
4021 | | ArbitraryFloatHypotINTEL = 5858u32, |
4022 | | ArbitraryFloatSqrtINTEL = 5859u32, |
4023 | | ArbitraryFloatLogINTEL = 5860u32, |
4024 | | ArbitraryFloatLog2INTEL = 5861u32, |
4025 | | ArbitraryFloatLog10INTEL = 5862u32, |
4026 | | ArbitraryFloatLog1pINTEL = 5863u32, |
4027 | | ArbitraryFloatExpINTEL = 5864u32, |
4028 | | ArbitraryFloatExp2INTEL = 5865u32, |
4029 | | ArbitraryFloatExp10INTEL = 5866u32, |
4030 | | ArbitraryFloatExpm1INTEL = 5867u32, |
4031 | | ArbitraryFloatSinINTEL = 5868u32, |
4032 | | ArbitraryFloatCosINTEL = 5869u32, |
4033 | | ArbitraryFloatSinCosINTEL = 5870u32, |
4034 | | ArbitraryFloatSinPiINTEL = 5871u32, |
4035 | | ArbitraryFloatCosPiINTEL = 5872u32, |
4036 | | ArbitraryFloatASinINTEL = 5873u32, |
4037 | | ArbitraryFloatASinPiINTEL = 5874u32, |
4038 | | ArbitraryFloatACosINTEL = 5875u32, |
4039 | | ArbitraryFloatACosPiINTEL = 5876u32, |
4040 | | ArbitraryFloatATanINTEL = 5877u32, |
4041 | | ArbitraryFloatATanPiINTEL = 5878u32, |
4042 | | ArbitraryFloatATan2INTEL = 5879u32, |
4043 | | ArbitraryFloatPowINTEL = 5880u32, |
4044 | | ArbitraryFloatPowRINTEL = 5881u32, |
4045 | | ArbitraryFloatPowNINTEL = 5882u32, |
4046 | | LoopControlINTEL = 5887u32, |
4047 | | AliasDomainDeclINTEL = 5911u32, |
4048 | | AliasScopeDeclINTEL = 5912u32, |
4049 | | AliasScopeListDeclINTEL = 5913u32, |
4050 | | FixedSqrtINTEL = 5923u32, |
4051 | | FixedRecipINTEL = 5924u32, |
4052 | | FixedRsqrtINTEL = 5925u32, |
4053 | | FixedSinINTEL = 5926u32, |
4054 | | FixedCosINTEL = 5927u32, |
4055 | | FixedSinCosINTEL = 5928u32, |
4056 | | FixedSinPiINTEL = 5929u32, |
4057 | | FixedCosPiINTEL = 5930u32, |
4058 | | FixedSinCosPiINTEL = 5931u32, |
4059 | | FixedLogINTEL = 5932u32, |
4060 | | FixedExpINTEL = 5933u32, |
4061 | | PtrCastToCrossWorkgroupINTEL = 5934u32, |
4062 | | CrossWorkgroupCastToPtrINTEL = 5938u32, |
4063 | | ReadPipeBlockingINTEL = 5946u32, |
4064 | | WritePipeBlockingINTEL = 5947u32, |
4065 | | FPGARegINTEL = 5949u32, |
4066 | | RayQueryGetRayTMinKHR = 6016u32, |
4067 | | RayQueryGetRayFlagsKHR = 6017u32, |
4068 | | RayQueryGetIntersectionTKHR = 6018u32, |
4069 | | RayQueryGetIntersectionInstanceCustomIndexKHR = 6019u32, |
4070 | | RayQueryGetIntersectionInstanceIdKHR = 6020u32, |
4071 | | RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021u32, |
4072 | | RayQueryGetIntersectionGeometryIndexKHR = 6022u32, |
4073 | | RayQueryGetIntersectionPrimitiveIndexKHR = 6023u32, |
4074 | | RayQueryGetIntersectionBarycentricsKHR = 6024u32, |
4075 | | RayQueryGetIntersectionFrontFaceKHR = 6025u32, |
4076 | | RayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026u32, |
4077 | | RayQueryGetIntersectionObjectRayDirectionKHR = 6027u32, |
4078 | | RayQueryGetIntersectionObjectRayOriginKHR = 6028u32, |
4079 | | RayQueryGetWorldRayDirectionKHR = 6029u32, |
4080 | | RayQueryGetWorldRayOriginKHR = 6030u32, |
4081 | | RayQueryGetIntersectionObjectToWorldKHR = 6031u32, |
4082 | | RayQueryGetIntersectionWorldToObjectKHR = 6032u32, |
4083 | | AtomicFAddEXT = 6035u32, |
4084 | | TypeBufferSurfaceINTEL = 6086u32, |
4085 | | TypeStructContinuedINTEL = 6090u32, |
4086 | | ConstantCompositeContinuedINTEL = 6091u32, |
4087 | | SpecConstantCompositeContinuedINTEL = 6092u32, |
4088 | | CompositeConstructContinuedINTEL = 6096u32, |
4089 | | ConvertFToBF16INTEL = 6116u32, |
4090 | | ConvertBF16ToFINTEL = 6117u32, |
4091 | | ControlBarrierArriveINTEL = 6142u32, |
4092 | | ControlBarrierWaitINTEL = 6143u32, |
4093 | | ArithmeticFenceEXT = 6145u32, |
4094 | | SubgroupBlockPrefetchINTEL = 6221u32, |
4095 | | Subgroup2DBlockLoadINTEL = 6231u32, |
4096 | | Subgroup2DBlockLoadTransformINTEL = 6232u32, |
4097 | | Subgroup2DBlockLoadTransposeINTEL = 6233u32, |
4098 | | Subgroup2DBlockPrefetchINTEL = 6234u32, |
4099 | | Subgroup2DBlockStoreINTEL = 6235u32, |
4100 | | SubgroupMatrixMultiplyAccumulateINTEL = 6237u32, |
4101 | | GroupIMulKHR = 6401u32, |
4102 | | GroupFMulKHR = 6402u32, |
4103 | | GroupBitwiseAndKHR = 6403u32, |
4104 | | GroupBitwiseOrKHR = 6404u32, |
4105 | | GroupBitwiseXorKHR = 6405u32, |
4106 | | GroupLogicalAndKHR = 6406u32, |
4107 | | GroupLogicalOrKHR = 6407u32, |
4108 | | GroupLogicalXorKHR = 6408u32, |
4109 | | MaskedGatherINTEL = 6428u32, |
4110 | | MaskedScatterINTEL = 6429u32, |
4111 | | } |
4112 | | impl Op { |
4113 | 300k | pub fn from_u32(n: u32) -> Option<Self> { |
4114 | 300k | Some(match n { |
4115 | 300k | 0u32..=8u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4116 | 300k | 10u32..=12u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4117 | 300k | 14u32..=17u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4118 | 300k | 19u32..=39u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4119 | 242k | 41u32..=46u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4120 | 242k | 48u32..=52u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4121 | 242k | 54u32..=57u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4122 | 242k | 59u32..=75u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4123 | 242k | 77u32..=84u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4124 | 242k | 86u32..=107u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4125 | 242k | 109u32..=124u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4126 | 242k | 126u32..=152u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4127 | 24 | 154u32..=191u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4128 | 24 | 194u32..=205u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4129 | 24 | 207u32..=215u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4130 | 24 | 218u32..=221u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4131 | 24 | 224u32..=225u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4132 | 24 | 227u32..=242u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4133 | 24 | 245u32..=257u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4134 | 7 | 259u32..=271u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4135 | 7 | 274u32..=288u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4136 | 7 | 291u32..=366u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4137 | 7 | 400u32..=403u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4138 | 6 | 4160u32..=4162u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4139 | 6 | 4416u32..=4426u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4140 | 6 | 4428u32..=4433u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4141 | 6 | 4445u32..=4463u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4142 | 6 | 4472u32..=4477u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4143 | 6 | 4479u32..=4483u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4144 | 6 | 4500u32..=4503u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4145 | 6 | 5000u32..=5007u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4146 | 6 | 5011u32..=5012u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4147 | 0 | 5056u32 => unsafe { core::mem::transmute::<u32, Op>(5056u32) }, |
4148 | 6 | 5074u32..=5076u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4149 | 0 | 5078u32 => unsafe { core::mem::transmute::<u32, Op>(5078u32) }, |
4150 | 0 | 5090u32 => unsafe { core::mem::transmute::<u32, Op>(5090u32) }, |
4151 | 0 | 5101u32 => unsafe { core::mem::transmute::<u32, Op>(5101u32) }, |
4152 | 6 | 5103u32..=5104u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4153 | 6 | 5110u32..=5111u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4154 | 6 | 5249u32..=5281u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4155 | 0 | 5283u32 => unsafe { core::mem::transmute::<u32, Op>(5283u32) }, |
4156 | 6 | 5288u32..=5296u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4157 | 6 | 5299u32..=5303u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4158 | 6 | 5334u32..=5341u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4159 | 6 | 5344u32..=5346u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4160 | 6 | 5358u32..=5362u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4161 | 6 | 5364u32..=5382u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4162 | 0 | 5384u32 => unsafe { core::mem::transmute::<u32, Op>(5384u32) }, |
4163 | 6 | 5390u32..=5398u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4164 | 6 | 5427u32..=5439u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4165 | 6 | 5571u32..=5578u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4166 | 6 | 5580u32..=5581u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4167 | 6 | 5585u32..=5598u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4168 | 6 | 5600u32..=5601u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4169 | 6 | 5609u32..=5611u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4170 | 6 | 5614u32..=5615u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4171 | 6 | 5630u32..=5633u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4172 | 6 | 5699u32..=5816u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4173 | 6 | 5818u32..=5820u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4174 | 6 | 5840u32..=5843u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4175 | 6 | 5846u32..=5882u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4176 | 0 | 5887u32 => unsafe { core::mem::transmute::<u32, Op>(5887u32) }, |
4177 | 6 | 5911u32..=5913u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4178 | 6 | 5923u32..=5934u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4179 | 0 | 5938u32 => unsafe { core::mem::transmute::<u32, Op>(5938u32) }, |
4180 | 6 | 5946u32..=5947u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4181 | 0 | 5949u32 => unsafe { core::mem::transmute::<u32, Op>(5949u32) }, |
4182 | 6 | 6016u32..=6032u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4183 | 0 | 6035u32 => unsafe { core::mem::transmute::<u32, Op>(6035u32) }, |
4184 | 0 | 6086u32 => unsafe { core::mem::transmute::<u32, Op>(6086u32) }, |
4185 | 6 | 6090u32..=6092u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4186 | 0 | 6096u32 => unsafe { core::mem::transmute::<u32, Op>(6096u32) }, |
4187 | 6 | 6116u32..=6117u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4188 | 6 | 6142u32..=6143u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4189 | 0 | 6145u32 => unsafe { core::mem::transmute::<u32, Op>(6145u32) }, |
4190 | 0 | 6221u32 => unsafe { core::mem::transmute::<u32, Op>(6221u32) }, |
4191 | 6 | 6231u32..=6235u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4192 | 0 | 6237u32 => unsafe { core::mem::transmute::<u32, Op>(6237u32) }, |
4193 | 6 | 6401u32..=6408u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4194 | 6 | 6428u32..=6429u32 => unsafe { core::mem::transmute::<u32, Op>(n) }, |
4195 | 7 | _ => return None, |
4196 | | }) |
4197 | 300k | } |
4198 | | } |
4199 | | #[allow(clippy::upper_case_acronyms)] |
4200 | | #[allow(non_upper_case_globals)] |
4201 | | impl Op { |
4202 | | pub const SDotKHR: Op = Op::SDot; |
4203 | | pub const UDotKHR: Op = Op::UDot; |
4204 | | pub const SUDotKHR: Op = Op::SUDot; |
4205 | | pub const SDotAccSatKHR: Op = Op::SDotAccSat; |
4206 | | pub const UDotAccSatKHR: Op = Op::UDotAccSat; |
4207 | | pub const SUDotAccSatKHR: Op = Op::SUDotAccSat; |
4208 | | pub const ReportIntersectionNV: Op = Op::ReportIntersectionKHR; |
4209 | | pub const TypeAccelerationStructureNV: Op = Op::TypeAccelerationStructureKHR; |
4210 | | pub const DemoteToHelperInvocationEXT: Op = Op::DemoteToHelperInvocation; |
4211 | | pub const DecorateStringGOOGLE: Op = Op::DecorateString; |
4212 | | pub const MemberDecorateStringGOOGLE: Op = Op::MemberDecorateString; |
4213 | | } |
4214 | | #[doc = "[GLSL.std.450](https://www.khronos.org/registry/spir-v/specs/unified1/GLSL.std.450.html) extended instruction opcode"] |
4215 | | #[repr(u32)] |
4216 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
4217 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
4218 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
4219 | | #[allow(clippy::upper_case_acronyms)] |
4220 | | pub enum GLOp { |
4221 | | Round = 1u32, |
4222 | | RoundEven = 2u32, |
4223 | | Trunc = 3u32, |
4224 | | FAbs = 4u32, |
4225 | | SAbs = 5u32, |
4226 | | FSign = 6u32, |
4227 | | SSign = 7u32, |
4228 | | Floor = 8u32, |
4229 | | Ceil = 9u32, |
4230 | | Fract = 10u32, |
4231 | | Radians = 11u32, |
4232 | | Degrees = 12u32, |
4233 | | Sin = 13u32, |
4234 | | Cos = 14u32, |
4235 | | Tan = 15u32, |
4236 | | Asin = 16u32, |
4237 | | Acos = 17u32, |
4238 | | Atan = 18u32, |
4239 | | Sinh = 19u32, |
4240 | | Cosh = 20u32, |
4241 | | Tanh = 21u32, |
4242 | | Asinh = 22u32, |
4243 | | Acosh = 23u32, |
4244 | | Atanh = 24u32, |
4245 | | Atan2 = 25u32, |
4246 | | Pow = 26u32, |
4247 | | Exp = 27u32, |
4248 | | Log = 28u32, |
4249 | | Exp2 = 29u32, |
4250 | | Log2 = 30u32, |
4251 | | Sqrt = 31u32, |
4252 | | InverseSqrt = 32u32, |
4253 | | Determinant = 33u32, |
4254 | | MatrixInverse = 34u32, |
4255 | | Modf = 35u32, |
4256 | | ModfStruct = 36u32, |
4257 | | FMin = 37u32, |
4258 | | UMin = 38u32, |
4259 | | SMin = 39u32, |
4260 | | FMax = 40u32, |
4261 | | UMax = 41u32, |
4262 | | SMax = 42u32, |
4263 | | FClamp = 43u32, |
4264 | | UClamp = 44u32, |
4265 | | SClamp = 45u32, |
4266 | | FMix = 46u32, |
4267 | | IMix = 47u32, |
4268 | | Step = 48u32, |
4269 | | SmoothStep = 49u32, |
4270 | | Fma = 50u32, |
4271 | | Frexp = 51u32, |
4272 | | FrexpStruct = 52u32, |
4273 | | Ldexp = 53u32, |
4274 | | PackSnorm4x8 = 54u32, |
4275 | | PackUnorm4x8 = 55u32, |
4276 | | PackSnorm2x16 = 56u32, |
4277 | | PackUnorm2x16 = 57u32, |
4278 | | PackHalf2x16 = 58u32, |
4279 | | PackDouble2x32 = 59u32, |
4280 | | UnpackSnorm2x16 = 60u32, |
4281 | | UnpackUnorm2x16 = 61u32, |
4282 | | UnpackHalf2x16 = 62u32, |
4283 | | UnpackSnorm4x8 = 63u32, |
4284 | | UnpackUnorm4x8 = 64u32, |
4285 | | UnpackDouble2x32 = 65u32, |
4286 | | Length = 66u32, |
4287 | | Distance = 67u32, |
4288 | | Cross = 68u32, |
4289 | | Normalize = 69u32, |
4290 | | FaceForward = 70u32, |
4291 | | Reflect = 71u32, |
4292 | | Refract = 72u32, |
4293 | | FindILsb = 73u32, |
4294 | | FindSMsb = 74u32, |
4295 | | FindUMsb = 75u32, |
4296 | | InterpolateAtCentroid = 76u32, |
4297 | | InterpolateAtSample = 77u32, |
4298 | | InterpolateAtOffset = 78u32, |
4299 | | NMin = 79u32, |
4300 | | NMax = 80u32, |
4301 | | NClamp = 81u32, |
4302 | | } |
4303 | | impl GLOp { |
4304 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
4305 | 0 | Some(match n { |
4306 | 0 | 1u32..=81u32 => unsafe { core::mem::transmute::<u32, GLOp>(n) }, |
4307 | 0 | _ => return None, |
4308 | | }) |
4309 | 0 | } |
4310 | | } |
4311 | | #[doc = "[OpenCL.std.100](https://www.khronos.org/registry/spir-v/specs/unified1/OpenCL.ExtendedInstructionSet.100.html) extended instruction opcode"] |
4312 | | #[repr(u32)] |
4313 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
4314 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
4315 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
4316 | | #[allow(clippy::upper_case_acronyms)] |
4317 | | pub enum CLOp { |
4318 | | acos = 0u32, |
4319 | | acosh = 1u32, |
4320 | | acospi = 2u32, |
4321 | | asin = 3u32, |
4322 | | asinh = 4u32, |
4323 | | asinpi = 5u32, |
4324 | | atan = 6u32, |
4325 | | atan2 = 7u32, |
4326 | | atanh = 8u32, |
4327 | | atanpi = 9u32, |
4328 | | atan2pi = 10u32, |
4329 | | cbrt = 11u32, |
4330 | | ceil = 12u32, |
4331 | | copysign = 13u32, |
4332 | | cos = 14u32, |
4333 | | cosh = 15u32, |
4334 | | cospi = 16u32, |
4335 | | erfc = 17u32, |
4336 | | erf = 18u32, |
4337 | | exp = 19u32, |
4338 | | exp2 = 20u32, |
4339 | | exp10 = 21u32, |
4340 | | expm1 = 22u32, |
4341 | | fabs = 23u32, |
4342 | | fdim = 24u32, |
4343 | | floor = 25u32, |
4344 | | fma = 26u32, |
4345 | | fmax = 27u32, |
4346 | | fmin = 28u32, |
4347 | | fmod = 29u32, |
4348 | | fract = 30u32, |
4349 | | frexp = 31u32, |
4350 | | hypot = 32u32, |
4351 | | ilogb = 33u32, |
4352 | | ldexp = 34u32, |
4353 | | lgamma = 35u32, |
4354 | | lgamma_r = 36u32, |
4355 | | log = 37u32, |
4356 | | log2 = 38u32, |
4357 | | log10 = 39u32, |
4358 | | log1p = 40u32, |
4359 | | logb = 41u32, |
4360 | | mad = 42u32, |
4361 | | maxmag = 43u32, |
4362 | | minmag = 44u32, |
4363 | | modf = 45u32, |
4364 | | nan = 46u32, |
4365 | | nextafter = 47u32, |
4366 | | pow = 48u32, |
4367 | | pown = 49u32, |
4368 | | powr = 50u32, |
4369 | | remainder = 51u32, |
4370 | | remquo = 52u32, |
4371 | | rint = 53u32, |
4372 | | rootn = 54u32, |
4373 | | round = 55u32, |
4374 | | rsqrt = 56u32, |
4375 | | sin = 57u32, |
4376 | | sincos = 58u32, |
4377 | | sinh = 59u32, |
4378 | | sinpi = 60u32, |
4379 | | sqrt = 61u32, |
4380 | | tan = 62u32, |
4381 | | tanh = 63u32, |
4382 | | tanpi = 64u32, |
4383 | | tgamma = 65u32, |
4384 | | trunc = 66u32, |
4385 | | half_cos = 67u32, |
4386 | | half_divide = 68u32, |
4387 | | half_exp = 69u32, |
4388 | | half_exp2 = 70u32, |
4389 | | half_exp10 = 71u32, |
4390 | | half_log = 72u32, |
4391 | | half_log2 = 73u32, |
4392 | | half_log10 = 74u32, |
4393 | | half_powr = 75u32, |
4394 | | half_recip = 76u32, |
4395 | | half_rsqrt = 77u32, |
4396 | | half_sin = 78u32, |
4397 | | half_sqrt = 79u32, |
4398 | | half_tan = 80u32, |
4399 | | native_cos = 81u32, |
4400 | | native_divide = 82u32, |
4401 | | native_exp = 83u32, |
4402 | | native_exp2 = 84u32, |
4403 | | native_exp10 = 85u32, |
4404 | | native_log = 86u32, |
4405 | | native_log2 = 87u32, |
4406 | | native_log10 = 88u32, |
4407 | | native_powr = 89u32, |
4408 | | native_recip = 90u32, |
4409 | | native_rsqrt = 91u32, |
4410 | | native_sin = 92u32, |
4411 | | native_sqrt = 93u32, |
4412 | | native_tan = 94u32, |
4413 | | fclamp = 95u32, |
4414 | | degrees = 96u32, |
4415 | | fmax_common = 97u32, |
4416 | | fmin_common = 98u32, |
4417 | | mix = 99u32, |
4418 | | radians = 100u32, |
4419 | | step = 101u32, |
4420 | | smoothstep = 102u32, |
4421 | | sign = 103u32, |
4422 | | cross = 104u32, |
4423 | | distance = 105u32, |
4424 | | length = 106u32, |
4425 | | normalize = 107u32, |
4426 | | fast_distance = 108u32, |
4427 | | fast_length = 109u32, |
4428 | | fast_normalize = 110u32, |
4429 | | s_abs = 141u32, |
4430 | | s_abs_diff = 142u32, |
4431 | | s_add_sat = 143u32, |
4432 | | u_add_sat = 144u32, |
4433 | | s_hadd = 145u32, |
4434 | | u_hadd = 146u32, |
4435 | | s_rhadd = 147u32, |
4436 | | u_rhadd = 148u32, |
4437 | | s_clamp = 149u32, |
4438 | | u_clamp = 150u32, |
4439 | | clz = 151u32, |
4440 | | ctz = 152u32, |
4441 | | s_mad_hi = 153u32, |
4442 | | u_mad_sat = 154u32, |
4443 | | s_mad_sat = 155u32, |
4444 | | s_max = 156u32, |
4445 | | u_max = 157u32, |
4446 | | s_min = 158u32, |
4447 | | u_min = 159u32, |
4448 | | s_mul_hi = 160u32, |
4449 | | rotate = 161u32, |
4450 | | s_sub_sat = 162u32, |
4451 | | u_sub_sat = 163u32, |
4452 | | u_upsample = 164u32, |
4453 | | s_upsample = 165u32, |
4454 | | popcount = 166u32, |
4455 | | s_mad24 = 167u32, |
4456 | | u_mad24 = 168u32, |
4457 | | s_mul24 = 169u32, |
4458 | | u_mul24 = 170u32, |
4459 | | vloadn = 171u32, |
4460 | | vstoren = 172u32, |
4461 | | vload_half = 173u32, |
4462 | | vload_halfn = 174u32, |
4463 | | vstore_half = 175u32, |
4464 | | vstore_half_r = 176u32, |
4465 | | vstore_halfn = 177u32, |
4466 | | vstore_halfn_r = 178u32, |
4467 | | vloada_halfn = 179u32, |
4468 | | vstorea_halfn = 180u32, |
4469 | | vstorea_halfn_r = 181u32, |
4470 | | shuffle = 182u32, |
4471 | | shuffle2 = 183u32, |
4472 | | printf = 184u32, |
4473 | | prefetch = 185u32, |
4474 | | bitselect = 186u32, |
4475 | | select = 187u32, |
4476 | | u_abs = 201u32, |
4477 | | u_abs_diff = 202u32, |
4478 | | u_mul_hi = 203u32, |
4479 | | u_mad_hi = 204u32, |
4480 | | } |
4481 | | impl CLOp { |
4482 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
4483 | 0 | Some(match n { |
4484 | 0 | 0u32..=110u32 => unsafe { core::mem::transmute::<u32, CLOp>(n) }, |
4485 | 0 | 141u32..=187u32 => unsafe { core::mem::transmute::<u32, CLOp>(n) }, |
4486 | 0 | 201u32..=204u32 => unsafe { core::mem::transmute::<u32, CLOp>(n) }, |
4487 | 0 | _ => return None, |
4488 | | }) |
4489 | 0 | } |
4490 | | } |
4491 | | #[doc = "[NonSemantic.DebugPrintF](https://github.com/KhronosGroup/Vulkan-ValidationLayers/blob/master/docs/debug_printf.md) extended instruction opcode"] |
4492 | | #[repr(u32)] |
4493 | | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] |
4494 | | #[cfg_attr(feature = "serialize", derive(serde::Serialize))] |
4495 | | #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] |
4496 | | #[allow(clippy::upper_case_acronyms)] |
4497 | | pub enum DebugPrintFOp { |
4498 | | DebugPrintf = 1u32, |
4499 | | } |
4500 | | impl DebugPrintFOp { |
4501 | 0 | pub fn from_u32(n: u32) -> Option<Self> { |
4502 | 0 | Some(match n { |
4503 | 0 | 1u32 => unsafe { core::mem::transmute::<u32, DebugPrintFOp>(1u32) }, |
4504 | 0 | _ => return None, |
4505 | | }) |
4506 | 0 | } |
4507 | | } |