// AUTOMATICALLY GENERATED from the SPIR-V JSON grammar:
// external/spirv.core.grammar.json.
// DO NOT MODIFY!
pub type Word = u32;
pub const MAGIC_NUMBER: u32 =
0 x07230203;
pub const MAJOR_VERSION: u8 =
1 u8;
pub const MINOR_VERSION: u8 =
6 u8;
pub const REVISION: u8 =
4 u8;
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 ; } }
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 ; } }
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 ; } }
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_ALTERA = 65536u32 ; const MAX_CONCURRENCY_ALTERA = 131072u32 ; const DEPENDENCY_ARRAY_ALTERA = 262144u32 ; const PIPELINE_ENABLE_ALTERA = 524288u32 ; const LOOP_COALESCE_ALTERA = 1048576u32 ; const MAX_INTERLEAVING_ALTERA = 2097152u32 ; const SPECULATED_ITERATIONS_ALTERA = 4194304u32 ; const NO_FUSION_ALTERA = 8388608u32 ; const LOOP_COUNT_ALTERA = 16777216u32 ; const MAX_REINVOCATION_DELAY_ALTERA = 33554432u32 ; } }
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 ; } }
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 ; } }
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 ; } }
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 ; } }
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 ; } }
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 ; } }
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 ; } }
#[ doc =
"SPIR-V operand kind: [SourceLanguage](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_source_language_a_source_language) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum SourceLanguage {
Unknown =
0 u32,
ESSL =
1 u32,
GLSL =
2 u32,
OpenCL_C =
3 u32,
OpenCL_CPP =
4 u32,
HLSL =
5 u32,
CPP_for_OpenCL =
6 u32,
SYCL =
7 u32,
HERO_C =
8 u32,
NZSL =
9 u32,
WGSL =
10 u32,
Slang =
11 u32,
Zig =
12 u32,
Rust =
13 u32,
}
impl SourceLanguage {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
13 u32 =>
unsafe { core::mem::transmute::<u32, SourceLanguage>(n) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl SourceLanguage {}
impl core::str::FromStr
for SourceLanguage {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"Unknown" =>
Self ::Unknown,
"ESSL" =>
Self ::ESSL,
"GLSL" =>
Self ::GLSL,
"OpenCL_C" =>
Self ::OpenCL_C,
"OpenCL_CPP" =>
Self ::OpenCL_CPP,
"HLSL" =>
Self ::HLSL,
"CPP_for_OpenCL" =>
Self ::CPP_for_OpenCL,
"SYCL" =>
Self ::SYCL,
"HERO_C" =>
Self ::HERO_C,
"NZSL" =>
Self ::NZSL,
"WGSL" =>
Self ::WGSL,
"Slang" =>
Self ::Slang,
"Zig" =>
Self ::Zig,
"Rust" =>
Self ::Rust,
_ =>
return Err(()),
})
}
}
#[ doc =
"SPIR-V operand kind: [ExecutionModel](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_execution_model_a_execution_model) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum ExecutionModel {
Vertex =
0 u32,
TessellationControl =
1 u32,
TessellationEvaluation =
2 u32,
Geometry =
3 u32,
Fragment =
4 u32,
GLCompute =
5 u32,
Kernel =
6 u32,
TaskNV =
5267 u32,
MeshNV =
5268 u32,
RayGenerationKHR =
5313 u32,
IntersectionKHR =
5314 u32,
AnyHitKHR =
5315 u32,
ClosestHitKHR =
5316 u32,
MissKHR =
5317 u32,
CallableKHR =
5318 u32,
TaskEXT =
5364 u32,
MeshEXT =
5365 u32,
}
impl ExecutionModel {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
6 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionModel>(n) },
5267 u32..=
5268 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionModel>(n) },
5313 u32..=
5318 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionModel>(n) },
5364 u32..=
5365 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionModel>(n) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl ExecutionModel {
pub const RayGenerationNV:
Self =
Self ::RayGenerationKHR;
pub const IntersectionNV:
Self =
Self ::IntersectionKHR;
pub const AnyHitNV:
Self =
Self ::AnyHitKHR;
pub const ClosestHitNV:
Self =
Self ::ClosestHitKHR;
pub const MissNV:
Self =
Self ::MissKHR;
pub const CallableNV:
Self =
Self ::CallableKHR;
}
impl core::str::FromStr
for ExecutionModel {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"Vertex" =>
Self ::Vertex,
"TessellationControl" =>
Self ::TessellationControl,
"TessellationEvaluation" =>
Self ::TessellationEvaluation,
"Geometry" =>
Self ::Geometry,
"Fragment" =>
Self ::Fragment,
"GLCompute" =>
Self ::GLCompute,
"Kernel" =>
Self ::Kernel,
"TaskNV" =>
Self ::TaskNV,
"MeshNV" =>
Self ::MeshNV,
"RayGenerationKHR" =>
Self ::RayGenerationKHR,
"RayGenerationNV" =>
Self ::RayGenerationKHR,
"IntersectionKHR" =>
Self ::IntersectionKHR,
"IntersectionNV" =>
Self ::IntersectionKHR,
"AnyHitKHR" =>
Self ::AnyHitKHR,
"AnyHitNV" =>
Self ::AnyHitKHR,
"ClosestHitKHR" =>
Self ::ClosestHitKHR,
"ClosestHitNV" =>
Self ::ClosestHitKHR,
"MissKHR" =>
Self ::MissKHR,
"MissNV" =>
Self ::MissKHR,
"CallableKHR" =>
Self ::CallableKHR,
"CallableNV" =>
Self ::CallableKHR,
"TaskEXT" =>
Self ::TaskEXT,
"MeshEXT" =>
Self ::MeshEXT,
_ =>
return Err(()),
})
}
}
#[ doc =
"SPIR-V operand kind: [AddressingModel](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_addressing_model_a_addressing_model) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum AddressingModel {
Logical =
0 u32,
Physical32 =
1 u32,
Physical64 =
2 u32,
PhysicalStorageBuffer64 =
5348 u32,
}
impl AddressingModel {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
2 u32 =>
unsafe { core::mem::transmute::<u32, AddressingModel>(n) },
5348 u32 =>
unsafe { core::mem::transmute::<u32, AddressingModel>(
5348 u32) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl AddressingModel {
pub const PhysicalStorageBuffer64EXT:
Self =
Self ::PhysicalStorageBuffer64;
}
impl core::str::FromStr
for AddressingModel {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"Logical" =>
Self ::Logical,
"Physical32" =>
Self ::Physical32,
"Physical64" =>
Self ::Physical64,
"PhysicalStorageBuffer64" =>
Self ::PhysicalStorageBuffer64,
"PhysicalStorageBuffer64EXT" =>
Self ::PhysicalStorageBuffer64,
_ =>
return Err(()),
})
}
}
#[ doc =
"SPIR-V operand kind: [MemoryModel](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_memory_model_a_memory_model) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum MemoryModel {
Simple =
0 u32,
GLSL450 =
1 u32,
OpenCL =
2 u32,
Vulkan =
3 u32,
}
impl MemoryModel {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
3 u32 =>
unsafe { core::mem::transmute::<u32, MemoryModel>(n) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl MemoryModel {
pub const VulkanKHR:
Self =
Self ::Vulkan;
}
impl core::str::FromStr
for MemoryModel {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"Simple" =>
Self ::Simple,
"GLSL450" =>
Self ::GLSL450,
"OpenCL" =>
Self ::OpenCL,
"Vulkan" =>
Self ::Vulkan,
"VulkanKHR" =>
Self ::Vulkan,
_ =>
return Err(()),
})
}
}
#[ doc =
"SPIR-V operand kind: [ExecutionMode](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_execution_mode_a_execution_mode) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum ExecutionMode {
Invocations =
0 u32,
SpacingEqual =
1 u32,
SpacingFractionalEven =
2 u32,
SpacingFractionalOdd =
3 u32,
VertexOrderCw =
4 u32,
VertexOrderCcw =
5 u32,
PixelCenterInteger =
6 u32,
OriginUpperLeft =
7 u32,
OriginLowerLeft =
8 u32,
EarlyFragmentTests =
9 u32,
PointMode =
10 u32,
Xfb =
11 u32,
DepthReplacing =
12 u32,
DepthGreater =
14 u32,
DepthLess =
15 u32,
DepthUnchanged =
16 u32,
LocalSize =
17 u32,
LocalSizeHint =
18 u32,
InputPoints =
19 u32,
InputLines =
20 u32,
InputLinesAdjacency =
21 u32,
Triangles =
22 u32,
InputTrianglesAdjacency =
23 u32,
Quads =
24 u32,
Isolines =
25 u32,
OutputVertices =
26 u32,
OutputPoints =
27 u32,
OutputLineStrip =
28 u32,
OutputTriangleStrip =
29 u32,
VecTypeHint =
30 u32,
ContractionOff =
31 u32,
Initializer =
33 u32,
Finalizer =
34 u32,
SubgroupSize =
35 u32,
SubgroupsPerWorkgroup =
36 u32,
SubgroupsPerWorkgroupId =
37 u32,
LocalSizeId =
38 u32,
LocalSizeHintId =
39 u32,
NonCoherentColorAttachmentReadEXT =
4169 u32,
NonCoherentDepthAttachmentReadEXT =
4170 u32,
NonCoherentStencilAttachmentReadEXT =
4171 u32,
SubgroupUniformControlFlowKHR =
4421 u32,
PostDepthCoverage =
4446 u32,
DenormPreserve =
4459 u32,
DenormFlushToZero =
4460 u32,
SignedZeroInfNanPreserve =
4461 u32,
RoundingModeRTE =
4462 u32,
RoundingModeRTZ =
4463 u32,
NonCoherentTileAttachmentReadQCOM =
4489 u32,
TileShadingRateQCOM =
4490 u32,
EarlyAndLateFragmentTestsAMD =
5017 u32,
StencilRefReplacingEXT =
5027 u32,
CoalescingAMDX =
5069 u32,
IsApiEntryAMDX =
5070 u32,
MaxNodeRecursionAMDX =
5071 u32,
StaticNumWorkgroupsAMDX =
5072 u32,
ShaderIndexAMDX =
5073 u32,
MaxNumWorkgroupsAMDX =
5077 u32,
StencilRefUnchangedFrontAMD =
5079 u32,
StencilRefGreaterFrontAMD =
5080 u32,
StencilRefLessFrontAMD =
5081 u32,
StencilRefUnchangedBackAMD =
5082 u32,
StencilRefGreaterBackAMD =
5083 u32,
StencilRefLessBackAMD =
5084 u32,
QuadDerivativesKHR =
5088 u32,
RequireFullQuadsKHR =
5089 u32,
SharesInputWithAMDX =
5102 u32,
OutputLinesEXT =
5269 u32,
OutputPrimitivesEXT =
5270 u32,
DerivativeGroupQuadsKHR =
5289 u32,
DerivativeGroupLinearKHR =
5290 u32,
OutputTrianglesEXT =
5298 u32,
PixelInterlockOrderedEXT =
5366 u32,
PixelInterlockUnorderedEXT =
5367 u32,
SampleInterlockOrderedEXT =
5368 u32,
SampleInterlockUnorderedEXT =
5369 u32,
ShadingRateInterlockOrderedEXT =
5370 u32,
ShadingRateInterlockUnorderedEXT =
5371 u32,
Shader64BitIndexingEXT =
5427 u32,
SharedLocalMemorySizeINTEL =
5618 u32,
RoundingModeRTPINTEL =
5620 u32,
RoundingModeRTNINTEL =
5621 u32,
FloatingPointModeALTINTEL =
5622 u32,
FloatingPointModeIEEEINTEL =
5623 u32,
MaxWorkgroupSizeINTEL =
5893 u32,
MaxWorkDimINTEL =
5894 u32,
NoGlobalOffsetINTEL =
5895 u32,
NumSIMDWorkitemsINTEL =
5896 u32,
SchedulerTargetFmaxMhzINTEL =
5903 u32,
MaximallyReconvergesKHR =
6023 u32,
FPFastMathDefault =
6028 u32,
StreamingInterfaceINTEL =
6154 u32,
RegisterMapInterfaceINTEL =
6160 u32,
NamedBarrierCountINTEL =
6417 u32,
MaximumRegistersINTEL =
6461 u32,
MaximumRegistersIdINTEL =
6462 u32,
NamedMaximumRegistersINTEL =
6463 u32,
}
impl ExecutionMode {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
12 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(n) },
14 u32..=
31 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(n) },
33 u32..=
39 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(n) },
4169 u32..=
4171 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(n) },
4421 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(
4421 u32) },
4446 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(
4446 u32) },
4459 u32..=
4463 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(n) },
4489 u32..=
4490 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(n) },
5017 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(
5017 u32) },
5027 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(
5027 u32) },
5069 u32..=
5073 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(n) },
5077 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(
5077 u32) },
5079 u32..=
5084 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(n) },
5088 u32..=
5089 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(n) },
5102 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(
5102 u32) },
5269 u32..=
5270 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(n) },
5289 u32..=
5290 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(n) },
5298 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(
5298 u32) },
5366 u32..=
5371 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(n) },
5427 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(
5427 u32) },
5618 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(
5618 u32) },
5620 u32..=
5623 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(n) },
5893 u32..=
5896 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(n) },
5903 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(
5903 u32) },
6023 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(
6023 u32) },
6028 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(
6028 u32) },
6154 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(
6154 u32) },
6160 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(
6160 u32) },
6417 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(
6417 u32) },
6461 u32..=
6463 u32 =>
unsafe { core::mem::transmute::<u32, ExecutionMode>(n) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl ExecutionMode {
pub const OutputLinesNV:
Self =
Self ::OutputLinesEXT;
pub const OutputPrimitivesNV:
Self =
Self ::OutputPrimitivesEXT;
pub const DerivativeGroupQuadsNV:
Self =
Self ::DerivativeGroupQuadsKHR;
pub const DerivativeGroupLinearNV:
Self =
Self ::DerivativeGroupLinearKHR;
pub const OutputTrianglesNV:
Self =
Self ::OutputTrianglesEXT;
}
impl core::str::FromStr
for ExecutionMode {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"Invocations" =>
Self ::Invocations,
"SpacingEqual" =>
Self ::SpacingEqual,
"SpacingFractionalEven" =>
Self ::SpacingFractionalEven,
"SpacingFractionalOdd" =>
Self ::SpacingFractionalOdd,
"VertexOrderCw" =>
Self ::VertexOrderCw,
"VertexOrderCcw" =>
Self ::VertexOrderCcw,
"PixelCenterInteger" =>
Self ::PixelCenterInteger,
"OriginUpperLeft" =>
Self ::OriginUpperLeft,
"OriginLowerLeft" =>
Self ::OriginLowerLeft,
"EarlyFragmentTests" =>
Self ::EarlyFragmentTests,
"PointMode" =>
Self ::PointMode,
"Xfb" =>
Self ::Xfb,
"DepthReplacing" =>
Self ::DepthReplacing,
"DepthGreater" =>
Self ::DepthGreater,
"DepthLess" =>
Self ::DepthLess,
"DepthUnchanged" =>
Self ::DepthUnchanged,
"LocalSize" =>
Self ::LocalSize,
"LocalSizeHint" =>
Self ::LocalSizeHint,
"InputPoints" =>
Self ::InputPoints,
"InputLines" =>
Self ::InputLines,
"InputLinesAdjacency" =>
Self ::InputLinesAdjacency,
"Triangles" =>
Self ::Triangles,
"InputTrianglesAdjacency" =>
Self ::InputTrianglesAdjacency,
"Quads" =>
Self ::Quads,
"Isolines" =>
Self ::Isolines,
"OutputVertices" =>
Self ::OutputVertices,
"OutputPoints" =>
Self ::OutputPoints,
"OutputLineStrip" =>
Self ::OutputLineStrip,
"OutputTriangleStrip" =>
Self ::OutputTriangleStrip,
"VecTypeHint" =>
Self ::VecTypeHint,
"ContractionOff" =>
Self ::ContractionOff,
"Initializer" =>
Self ::Initializer,
"Finalizer" =>
Self ::Finalizer,
"SubgroupSize" =>
Self ::SubgroupSize,
"SubgroupsPerWorkgroup" =>
Self ::SubgroupsPerWorkgroup,
"SubgroupsPerWorkgroupId" =>
Self ::SubgroupsPerWorkgroupId,
"LocalSizeId" =>
Self ::LocalSizeId,
"LocalSizeHintId" =>
Self ::LocalSizeHintId,
"NonCoherentColorAttachmentReadEXT" =>
Self ::NonCoherentColorAttachmentReadEXT,
"NonCoherentDepthAttachmentReadEXT" =>
Self ::NonCoherentDepthAttachmentReadEXT,
"NonCoherentStencilAttachmentReadEXT" =>
Self ::NonCoherentStencilAttachmentReadEXT,
"SubgroupUniformControlFlowKHR" =>
Self ::SubgroupUniformControlFlowKHR,
"PostDepthCoverage" =>
Self ::PostDepthCoverage,
"DenormPreserve" =>
Self ::DenormPreserve,
"DenormFlushToZero" =>
Self ::DenormFlushToZero,
"SignedZeroInfNanPreserve" =>
Self ::SignedZeroInfNanPreserve,
"RoundingModeRTE" =>
Self ::RoundingModeRTE,
"RoundingModeRTZ" =>
Self ::RoundingModeRTZ,
"NonCoherentTileAttachmentReadQCOM" =>
Self ::NonCoherentTileAttachmentReadQCOM,
"TileShadingRateQCOM" =>
Self ::TileShadingRateQCOM,
"EarlyAndLateFragmentTestsAMD" =>
Self ::EarlyAndLateFragmentTestsAMD,
"StencilRefReplacingEXT" =>
Self ::StencilRefReplacingEXT,
"CoalescingAMDX" =>
Self ::CoalescingAMDX,
"IsApiEntryAMDX" =>
Self ::IsApiEntryAMDX,
"MaxNodeRecursionAMDX" =>
Self ::MaxNodeRecursionAMDX,
"StaticNumWorkgroupsAMDX" =>
Self ::StaticNumWorkgroupsAMDX,
"ShaderIndexAMDX" =>
Self ::ShaderIndexAMDX,
"MaxNumWorkgroupsAMDX" =>
Self ::MaxNumWorkgroupsAMDX,
"StencilRefUnchangedFrontAMD" =>
Self ::StencilRefUnchangedFrontAMD,
"StencilRefGreaterFrontAMD" =>
Self ::StencilRefGreaterFrontAMD,
"StencilRefLessFrontAMD" =>
Self ::StencilRefLessFrontAMD,
"StencilRefUnchangedBackAMD" =>
Self ::StencilRefUnchangedBackAMD,
"StencilRefGreaterBackAMD" =>
Self ::StencilRefGreaterBackAMD,
"StencilRefLessBackAMD" =>
Self ::StencilRefLessBackAMD,
"QuadDerivativesKHR" =>
Self ::QuadDerivativesKHR,
"RequireFullQuadsKHR" =>
Self ::RequireFullQuadsKHR,
"SharesInputWithAMDX" =>
Self ::SharesInputWithAMDX,
"OutputLinesEXT" =>
Self ::OutputLinesEXT,
"OutputLinesNV" =>
Self ::OutputLinesEXT,
"OutputPrimitivesEXT" =>
Self ::OutputPrimitivesEXT,
"OutputPrimitivesNV" =>
Self ::OutputPrimitivesEXT,
"DerivativeGroupQuadsKHR" =>
Self ::DerivativeGroupQuadsKHR,
"DerivativeGroupQuadsNV" =>
Self ::DerivativeGroupQuadsKHR,
"DerivativeGroupLinearKHR" =>
Self ::DerivativeGroupLinearKHR,
"DerivativeGroupLinearNV" =>
Self ::DerivativeGroupLinearKHR,
"OutputTrianglesEXT" =>
Self ::OutputTrianglesEXT,
"OutputTrianglesNV" =>
Self ::OutputTrianglesEXT,
"PixelInterlockOrderedEXT" =>
Self ::PixelInterlockOrderedEXT,
"PixelInterlockUnorderedEXT" =>
Self ::PixelInterlockUnorderedEXT,
"SampleInterlockOrderedEXT" =>
Self ::SampleInterlockOrderedEXT,
"SampleInterlockUnorderedEXT" =>
Self ::SampleInterlockUnorderedEXT,
"ShadingRateInterlockOrderedEXT" =>
Self ::ShadingRateInterlockOrderedEXT,
"ShadingRateInterlockUnorderedEXT" =>
Self ::ShadingRateInterlockUnorderedEXT,
"Shader64BitIndexingEXT" =>
Self ::Shader64BitIndexingEXT,
"SharedLocalMemorySizeINTEL" =>
Self ::SharedLocalMemorySizeINTEL,
"RoundingModeRTPINTEL" =>
Self ::RoundingModeRTPINTEL,
"RoundingModeRTNINTEL" =>
Self ::RoundingModeRTNINTEL,
"FloatingPointModeALTINTEL" =>
Self ::FloatingPointModeALTINTEL,
"FloatingPointModeIEEEINTEL" =>
Self ::FloatingPointModeIEEEINTEL,
"MaxWorkgroupSizeINTEL" =>
Self ::MaxWorkgroupSizeINTEL,
"MaxWorkDimINTEL" =>
Self ::MaxWorkDimINTEL,
"NoGlobalOffsetINTEL" =>
Self ::NoGlobalOffsetINTEL,
"NumSIMDWorkitemsINTEL" =>
Self ::NumSIMDWorkitemsINTEL,
"SchedulerTargetFmaxMhzINTEL" =>
Self ::SchedulerTargetFmaxMhzINTEL,
"MaximallyReconvergesKHR" =>
Self ::MaximallyReconvergesKHR,
"FPFastMathDefault" =>
Self ::FPFastMathDefault,
"StreamingInterfaceINTEL" =>
Self ::StreamingInterfaceINTEL,
"RegisterMapInterfaceINTEL" =>
Self ::RegisterMapInterfaceINTEL,
"NamedBarrierCountINTEL" =>
Self ::NamedBarrierCountINTEL,
"MaximumRegistersINTEL" =>
Self ::MaximumRegistersINTEL,
"MaximumRegistersIdINTEL" =>
Self ::MaximumRegistersIdINTEL,
"NamedMaximumRegistersINTEL" =>
Self ::NamedMaximumRegistersINTEL,
_ =>
return Err(()),
})
}
}
#[ doc =
"SPIR-V operand kind: [StorageClass](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_storage_class_a_storage_class) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum StorageClass {
UniformConstant =
0 u32,
Input =
1 u32,
Uniform =
2 u32,
Output =
3 u32,
Workgroup =
4 u32,
CrossWorkgroup =
5 u32,
Private =
6 u32,
Function =
7 u32,
Generic =
8 u32,
PushConstant =
9 u32,
AtomicCounter =
10 u32,
Image =
11 u32,
StorageBuffer =
12 u32,
TileImageEXT =
4172 u32,
TileAttachmentQCOM =
4491 u32,
NodePayloadAMDX =
5068 u32,
CallableDataKHR =
5328 u32,
IncomingCallableDataKHR =
5329 u32,
RayPayloadKHR =
5338 u32,
HitAttributeKHR =
5339 u32,
IncomingRayPayloadKHR =
5342 u32,
ShaderRecordBufferKHR =
5343 u32,
PhysicalStorageBuffer =
5349 u32,
HitObjectAttributeNV =
5385 u32,
TaskPayloadWorkgroupEXT =
5402 u32,
HitObjectAttributeEXT =
5411 u32,
CodeSectionINTEL =
5605 u32,
DeviceOnlyALTERA =
5936 u32,
HostOnlyALTERA =
5937 u32,
}
impl StorageClass {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
12 u32 =>
unsafe { core::mem::transmute::<u32, StorageClass>(n) },
4172 u32 =>
unsafe { core::mem::transmute::<u32, StorageClass>(
4172 u32) },
4491 u32 =>
unsafe { core::mem::transmute::<u32, StorageClass>(
4491 u32) },
5068 u32 =>
unsafe { core::mem::transmute::<u32, StorageClass>(
5068 u32) },
5328 u32..=
5329 u32 =>
unsafe { core::mem::transmute::<u32, StorageClass>(n) },
5338 u32..=
5339 u32 =>
unsafe { core::mem::transmute::<u32, StorageClass>(n) },
5342 u32..=
5343 u32 =>
unsafe { core::mem::transmute::<u32, StorageClass>(n) },
5349 u32 =>
unsafe { core::mem::transmute::<u32, StorageClass>(
5349 u32) },
5385 u32 =>
unsafe { core::mem::transmute::<u32, StorageClass>(
5385 u32) },
5402 u32 =>
unsafe { core::mem::transmute::<u32, StorageClass>(
5402 u32) },
5411 u32 =>
unsafe { core::mem::transmute::<u32, StorageClass>(
5411 u32) },
5605 u32 =>
unsafe { core::mem::transmute::<u32, StorageClass>(
5605 u32) },
5936 u32..=
5937 u32 =>
unsafe { core::mem::transmute::<u32, StorageClass>(n) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl StorageClass {
pub const CallableDataNV:
Self =
Self ::CallableDataKHR;
pub const IncomingCallableDataNV:
Self =
Self ::IncomingCallableDataKHR;
pub const RayPayloadNV:
Self =
Self ::RayPayloadKHR;
pub const HitAttributeNV:
Self =
Self ::HitAttributeKHR;
pub const IncomingRayPayloadNV:
Self =
Self ::IncomingRayPayloadKHR;
pub const ShaderRecordBufferNV:
Self =
Self ::ShaderRecordBufferKHR;
pub const PhysicalStorageBufferEXT:
Self =
Self ::PhysicalStorageBuffer;
pub const DeviceOnlyINTEL:
Self =
Self ::DeviceOnlyALTERA;
pub const HostOnlyINTEL:
Self =
Self ::HostOnlyALTERA;
}
impl core::str::FromStr
for StorageClass {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"UniformConstant" =>
Self ::UniformConstant,
"Input" =>
Self ::Input,
"Uniform" =>
Self ::Uniform,
"Output" =>
Self ::Output,
"Workgroup" =>
Self ::Workgroup,
"CrossWorkgroup" =>
Self ::CrossWorkgroup,
"Private" =>
Self ::Private,
"Function" =>
Self ::Function,
"Generic" =>
Self ::Generic,
"PushConstant" =>
Self ::PushConstant,
"AtomicCounter" =>
Self ::AtomicCounter,
"Image" =>
Self ::Image,
"StorageBuffer" =>
Self ::StorageBuffer,
"TileImageEXT" =>
Self ::TileImageEXT,
"TileAttachmentQCOM" =>
Self ::TileAttachmentQCOM,
"NodePayloadAMDX" =>
Self ::NodePayloadAMDX,
"CallableDataKHR" =>
Self ::CallableDataKHR,
"CallableDataNV" =>
Self ::CallableDataKHR,
"IncomingCallableDataKHR" =>
Self ::IncomingCallableDataKHR,
"IncomingCallableDataNV" =>
Self ::IncomingCallableDataKHR,
"RayPayloadKHR" =>
Self ::RayPayloadKHR,
"RayPayloadNV" =>
Self ::RayPayloadKHR,
"HitAttributeKHR" =>
Self ::HitAttributeKHR,
"HitAttributeNV" =>
Self ::HitAttributeKHR,
"IncomingRayPayloadKHR" =>
Self ::IncomingRayPayloadKHR,
"IncomingRayPayloadNV" =>
Self ::IncomingRayPayloadKHR,
"ShaderRecordBufferKHR" =>
Self ::ShaderRecordBufferKHR,
"ShaderRecordBufferNV" =>
Self ::ShaderRecordBufferKHR,
"PhysicalStorageBuffer" =>
Self ::PhysicalStorageBuffer,
"PhysicalStorageBufferEXT" =>
Self ::PhysicalStorageBuffer,
"HitObjectAttributeNV" =>
Self ::HitObjectAttributeNV,
"TaskPayloadWorkgroupEXT" =>
Self ::TaskPayloadWorkgroupEXT,
"HitObjectAttributeEXT" =>
Self ::HitObjectAttributeEXT,
"CodeSectionINTEL" =>
Self ::CodeSectionINTEL,
"DeviceOnlyALTERA" =>
Self ::DeviceOnlyALTERA,
"DeviceOnlyINTEL" =>
Self ::DeviceOnlyALTERA,
"HostOnlyALTERA" =>
Self ::HostOnlyALTERA,
"HostOnlyINTEL" =>
Self ::HostOnlyALTERA,
_ =>
return Err(()),
})
}
}
#[ doc =
"SPIR-V operand kind: [Dim](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_dim_a_dim) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum Dim {
Dim1D =
0 u32,
Dim2D =
1 u32,
Dim3D =
2 u32,
DimCube =
3 u32,
DimRect =
4 u32,
DimBuffer =
5 u32,
DimSubpassData =
6 u32,
DimTileImageDataEXT =
4173 u32,
}
impl Dim {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
6 u32 =>
unsafe { core::mem::transmute::<u32, Dim>(n) },
4173 u32 =>
unsafe { core::mem::transmute::<u32, Dim>(
4173 u32) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl Dim {}
impl core::str::FromStr
for Dim {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"Dim1D" =>
Self ::Dim1D,
"Dim2D" =>
Self ::Dim2D,
"Dim3D" =>
Self ::Dim3D,
"DimCube" =>
Self ::DimCube,
"DimRect" =>
Self ::DimRect,
"DimBuffer" =>
Self ::DimBuffer,
"DimSubpassData" =>
Self ::DimSubpassData,
"DimTileImageDataEXT" =>
Self ::DimTileImageDataEXT,
_ =>
return Err(()),
})
}
}
#[ 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) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum SamplerAddressingMode {
None =
0 u32,
ClampToEdge =
1 u32,
Clamp =
2 u32,
Repeat =
3 u32,
RepeatMirrored =
4 u32,
}
impl SamplerAddressingMode {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
4 u32 =>
unsafe { core::mem::transmute::<u32, SamplerAddressingMode>(n) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl SamplerAddressingMode {}
impl core::str::FromStr
for SamplerAddressingMode {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"None" =>
Self ::None,
"ClampToEdge" =>
Self ::ClampToEdge,
"Clamp" =>
Self ::Clamp,
"Repeat" =>
Self ::Repeat,
"RepeatMirrored" =>
Self ::RepeatMirrored,
_ =>
return Err(()),
})
}
}
#[ 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) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum SamplerFilterMode {
Nearest =
0 u32,
Linear =
1 u32,
}
impl SamplerFilterMode {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
1 u32 =>
unsafe { core::mem::transmute::<u32, SamplerFilterMode>(n) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl SamplerFilterMode {}
impl core::str::FromStr
for SamplerFilterMode {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"Nearest" =>
Self ::Nearest,
"Linear" =>
Self ::Linear,
_ =>
return Err(()),
})
}
}
#[ doc =
"SPIR-V operand kind: [ImageFormat](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_image_format_a_image_format) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum ImageFormat {
Unknown =
0 u32,
Rgba32f =
1 u32,
Rgba16f =
2 u32,
R32f =
3 u32,
Rgba8 =
4 u32,
Rgba8Snorm =
5 u32,
Rg32f =
6 u32,
Rg16f =
7 u32,
R11fG11fB10f =
8 u32,
R16f =
9 u32,
Rgba16 =
10 u32,
Rgb10A2 =
11 u32,
Rg16 =
12 u32,
Rg8 =
13 u32,
R16 =
14 u32,
R8 =
15 u32,
Rgba16Snorm =
16 u32,
Rg16Snorm =
17 u32,
Rg8Snorm =
18 u32,
R16Snorm =
19 u32,
R8Snorm =
20 u32,
Rgba32i =
21 u32,
Rgba16i =
22 u32,
Rgba8i =
23 u32,
R32i =
24 u32,
Rg32i =
25 u32,
Rg16i =
26 u32,
Rg8i =
27 u32,
R16i =
28 u32,
R8i =
29 u32,
Rgba32ui =
30 u32,
Rgba16ui =
31 u32,
Rgba8ui =
32 u32,
R32ui =
33 u32,
Rgb10a2ui =
34 u32,
Rg32ui =
35 u32,
Rg16ui =
36 u32,
Rg8ui =
37 u32,
R16ui =
38 u32,
R8ui =
39 u32,
R64ui =
40 u32,
R64i =
41 u32,
}
impl ImageFormat {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
41 u32 =>
unsafe { core::mem::transmute::<u32, ImageFormat>(n) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl ImageFormat {}
impl core::str::FromStr
for ImageFormat {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"Unknown" =>
Self ::Unknown,
"Rgba32f" =>
Self ::Rgba32f,
"Rgba16f" =>
Self ::Rgba16f,
"R32f" =>
Self ::R32f,
"Rgba8" =>
Self ::Rgba8,
"Rgba8Snorm" =>
Self ::Rgba8Snorm,
"Rg32f" =>
Self ::Rg32f,
"Rg16f" =>
Self ::Rg16f,
"R11fG11fB10f" =>
Self ::R11fG11fB10f,
"R16f" =>
Self ::R16f,
"Rgba16" =>
Self ::Rgba16,
"Rgb10A2" =>
Self ::Rgb10A2,
"Rg16" =>
Self ::Rg16,
"Rg8" =>
Self ::Rg8,
"R16" =>
Self ::R16,
"R8" =>
Self ::R8,
"Rgba16Snorm" =>
Self ::Rgba16Snorm,
"Rg16Snorm" =>
Self ::Rg16Snorm,
"Rg8Snorm" =>
Self ::Rg8Snorm,
"R16Snorm" =>
Self ::R16Snorm,
"R8Snorm" =>
Self ::R8Snorm,
"Rgba32i" =>
Self ::Rgba32i,
"Rgba16i" =>
Self ::Rgba16i,
"Rgba8i" =>
Self ::Rgba8i,
"R32i" =>
Self ::R32i,
"Rg32i" =>
Self ::Rg32i,
"Rg16i" =>
Self ::Rg16i,
"Rg8i" =>
Self ::Rg8i,
"R16i" =>
Self ::R16i,
"R8i" =>
Self ::R8i,
"Rgba32ui" =>
Self ::Rgba32ui,
"Rgba16ui" =>
Self ::Rgba16ui,
"Rgba8ui" =>
Self ::Rgba8ui,
"R32ui" =>
Self ::R32ui,
"Rgb10a2ui" =>
Self ::Rgb10a2ui,
"Rg32ui" =>
Self ::Rg32ui,
"Rg16ui" =>
Self ::Rg16ui,
"Rg8ui" =>
Self ::Rg8ui,
"R16ui" =>
Self ::R16ui,
"R8ui" =>
Self ::R8ui,
"R64ui" =>
Self ::R64ui,
"R64i" =>
Self ::R64i,
_ =>
return Err(()),
})
}
}
#[ 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) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum ImageChannelOrder {
R =
0 u32,
A =
1 u32,
RG =
2 u32,
RA =
3 u32,
RGB =
4 u32,
RGBA =
5 u32,
BGRA =
6 u32,
ARGB =
7 u32,
Intensity =
8 u32,
Luminance =
9 u32,
Rx =
10 u32,
RGx =
11 u32,
RGBx =
12 u32,
Depth =
13 u32,
DepthStencil =
14 u32,
sRGB =
15 u32,
sRGBx =
16 u32,
sRGBA =
17 u32,
sBGRA =
18 u32,
ABGR =
19 u32,
}
impl ImageChannelOrder {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
19 u32 =>
unsafe { core::mem::transmute::<u32, ImageChannelOrder>(n) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl ImageChannelOrder {}
impl core::str::FromStr
for ImageChannelOrder {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"R" =>
Self ::R,
"A" =>
Self ::A,
"RG" =>
Self ::RG,
"RA" =>
Self ::RA,
"RGB" =>
Self ::RGB,
"RGBA" =>
Self ::RGBA,
"BGRA" =>
Self ::BGRA,
"ARGB" =>
Self ::ARGB,
"Intensity" =>
Self ::Intensity,
"Luminance" =>
Self ::Luminance,
"Rx" =>
Self ::Rx,
"RGx" =>
Self ::RGx,
"RGBx" =>
Self ::RGBx,
"Depth" =>
Self ::Depth,
"DepthStencil" =>
Self ::DepthStencil,
"sRGB" =>
Self ::sRGB,
"sRGBx" =>
Self ::sRGBx,
"sRGBA" =>
Self ::sRGBA,
"sBGRA" =>
Self ::sBGRA,
"ABGR" =>
Self ::ABGR,
_ =>
return Err(()),
})
}
}
#[ 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) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum ImageChannelDataType {
SnormInt8 =
0 u32,
SnormInt16 =
1 u32,
UnormInt8 =
2 u32,
UnormInt16 =
3 u32,
UnormShort565 =
4 u32,
UnormShort555 =
5 u32,
UnormInt101010 =
6 u32,
SignedInt8 =
7 u32,
SignedInt16 =
8 u32,
SignedInt32 =
9 u32,
UnsignedInt8 =
10 u32,
UnsignedInt16 =
11 u32,
UnsignedInt32 =
12 u32,
HalfFloat =
13 u32,
Float =
14 u32,
UnormInt24 =
15 u32,
UnormInt101010_2 =
16 u32,
UnormInt10X6EXT =
17 u32,
UnsignedIntRaw10EXT =
19 u32,
UnsignedIntRaw12EXT =
20 u32,
UnormInt2_101010EXT =
21 u32,
UnsignedInt10X6EXT =
22 u32,
UnsignedInt12X4EXT =
23 u32,
UnsignedInt14X2EXT =
24 u32,
UnormInt12X4EXT =
25 u32,
UnormInt14X2EXT =
26 u32,
}
impl ImageChannelDataType {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
17 u32 =>
unsafe { core::mem::transmute::<u32, ImageChannelDataType>(n) },
19 u32..=
26 u32 =>
unsafe { core::mem::transmute::<u32, ImageChannelDataType>(n) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl ImageChannelDataType {}
impl core::str::FromStr
for ImageChannelDataType {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"SnormInt8" =>
Self ::SnormInt8,
"SnormInt16" =>
Self ::SnormInt16,
"UnormInt8" =>
Self ::UnormInt8,
"UnormInt16" =>
Self ::UnormInt16,
"UnormShort565" =>
Self ::UnormShort565,
"UnormShort555" =>
Self ::UnormShort555,
"UnormInt101010" =>
Self ::UnormInt101010,
"SignedInt8" =>
Self ::SignedInt8,
"SignedInt16" =>
Self ::SignedInt16,
"SignedInt32" =>
Self ::SignedInt32,
"UnsignedInt8" =>
Self ::UnsignedInt8,
"UnsignedInt16" =>
Self ::UnsignedInt16,
"UnsignedInt32" =>
Self ::UnsignedInt32,
"HalfFloat" =>
Self ::HalfFloat,
"Float" =>
Self ::Float,
"UnormInt24" =>
Self ::UnormInt24,
"UnormInt101010_2" =>
Self ::UnormInt101010_2,
"UnormInt10X6EXT" =>
Self ::UnormInt10X6EXT,
"UnsignedIntRaw10EXT" =>
Self ::UnsignedIntRaw10EXT,
"UnsignedIntRaw12EXT" =>
Self ::UnsignedIntRaw12EXT,
"UnormInt2_101010EXT" =>
Self ::UnormInt2_101010EXT,
"UnsignedInt10X6EXT" =>
Self ::UnsignedInt10X6EXT,
"UnsignedInt12X4EXT" =>
Self ::UnsignedInt12X4EXT,
"UnsignedInt14X2EXT" =>
Self ::UnsignedInt14X2EXT,
"UnormInt12X4EXT" =>
Self ::UnormInt12X4EXT,
"UnormInt14X2EXT" =>
Self ::UnormInt14X2EXT,
_ =>
return Err(()),
})
}
}
#[ 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) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum FPRoundingMode {
RTE =
0 u32,
RTZ =
1 u32,
RTP =
2 u32,
RTN =
3 u32,
}
impl FPRoundingMode {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
3 u32 =>
unsafe { core::mem::transmute::<u32, FPRoundingMode>(n) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl FPRoundingMode {}
impl core::str::FromStr
for FPRoundingMode {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"RTE" =>
Self ::RTE,
"RTZ" =>
Self ::RTZ,
"RTP" =>
Self ::RTP,
"RTN" =>
Self ::RTN,
_ =>
return Err(()),
})
}
}
#[ 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) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum FPDenormMode {
Preserve =
0 u32,
FlushToZero =
1 u32,
}
impl FPDenormMode {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
1 u32 =>
unsafe { core::mem::transmute::<u32, FPDenormMode>(n) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl FPDenormMode {}
impl core::str::FromStr
for FPDenormMode {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"Preserve" =>
Self ::Preserve,
"FlushToZero" =>
Self ::FlushToZero,
_ =>
return Err(()),
})
}
}
#[ doc =
"SPIR-V operand kind: [QuantizationModes](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_quantization_modes_a_quantization_modes) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum QuantizationModes {
TRN =
0 u32,
TRN_ZERO =
1 u32,
RND =
2 u32,
RND_ZERO =
3 u32,
RND_INF =
4 u32,
RND_MIN_INF =
5 u32,
RND_CONV =
6 u32,
RND_CONV_ODD =
7 u32,
}
impl QuantizationModes {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
7 u32 =>
unsafe { core::mem::transmute::<u32, QuantizationModes>(n) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl QuantizationModes {}
impl core::str::FromStr
for QuantizationModes {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"TRN" =>
Self ::TRN,
"TRN_ZERO" =>
Self ::TRN_ZERO,
"RND" =>
Self ::RND,
"RND_ZERO" =>
Self ::RND_ZERO,
"RND_INF" =>
Self ::RND_INF,
"RND_MIN_INF" =>
Self ::RND_MIN_INF,
"RND_CONV" =>
Self ::RND_CONV,
"RND_CONV_ODD" =>
Self ::RND_CONV_ODD,
_ =>
return Err(()),
})
}
}
#[ 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) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum FPOperationMode {
IEEE =
0 u32,
ALT =
1 u32,
}
impl FPOperationMode {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
1 u32 =>
unsafe { core::mem::transmute::<u32, FPOperationMode>(n) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl FPOperationMode {}
impl core::str::FromStr
for FPOperationMode {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"IEEE" =>
Self ::IEEE,
"ALT" =>
Self ::ALT,
_ =>
return Err(()),
})
}
}
#[ doc =
"SPIR-V operand kind: [OverflowModes](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_overflow_modes_a_overflow_modes) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum OverflowModes {
WRAP =
0 u32,
SAT =
1 u32,
SAT_ZERO =
2 u32,
SAT_SYM =
3 u32,
}
impl OverflowModes {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
3 u32 =>
unsafe { core::mem::transmute::<u32, OverflowModes>(n) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl OverflowModes {}
impl core::str::FromStr
for OverflowModes {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"WRAP" =>
Self ::WRAP,
"SAT" =>
Self ::SAT,
"SAT_ZERO" =>
Self ::SAT_ZERO,
"SAT_SYM" =>
Self ::SAT_SYM,
_ =>
return Err(()),
})
}
}
#[ doc =
"SPIR-V operand kind: [LinkageType](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_linkage_type_a_linkage_type) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum LinkageType {
Export =
0 u32,
Import =
1 u32,
LinkOnceODR =
2 u32,
}
impl LinkageType {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
2 u32 =>
unsafe { core::mem::transmute::<u32, LinkageType>(n) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl LinkageType {}
impl core::str::FromStr
for LinkageType {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"Export" =>
Self ::Export,
"Import" =>
Self ::Import,
"LinkOnceODR" =>
Self ::LinkOnceODR,
_ =>
return Err(()),
})
}
}
#[ doc =
"SPIR-V operand kind: [AccessQualifier](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_access_qualifier_a_access_qualifier) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum AccessQualifier {
ReadOnly =
0 u32,
WriteOnly =
1 u32,
ReadWrite =
2 u32,
}
impl AccessQualifier {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
2 u32 =>
unsafe { core::mem::transmute::<u32, AccessQualifier>(n) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl AccessQualifier {}
impl core::str::FromStr
for AccessQualifier {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"ReadOnly" =>
Self ::ReadOnly,
"WriteOnly" =>
Self ::WriteOnly,
"ReadWrite" =>
Self ::ReadWrite,
_ =>
return Err(()),
})
}
}
#[ 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) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum HostAccessQualifier {
NoneINTEL =
0 u32,
ReadINTEL =
1 u32,
WriteINTEL =
2 u32,
ReadWriteINTEL =
3 u32,
}
impl HostAccessQualifier {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
3 u32 =>
unsafe { core::mem::transmute::<u32, HostAccessQualifier>(n) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl HostAccessQualifier {}
impl core::str::FromStr
for HostAccessQualifier {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"NoneINTEL" =>
Self ::NoneINTEL,
"ReadINTEL" =>
Self ::ReadINTEL,
"WriteINTEL" =>
Self ::WriteINTEL,
"ReadWriteINTEL" =>
Self ::ReadWriteINTEL,
_ =>
return Err(()),
})
}
}
#[ 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) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum FunctionParameterAttribute {
Zext =
0 u32,
Sext =
1 u32,
ByVal =
2 u32,
Sret =
3 u32,
NoAlias =
4 u32,
NoCapture =
5 u32,
NoWrite =
6 u32,
NoReadWrite =
7 u32,
RuntimeAlignedALTERA =
5940 u32,
}
impl FunctionParameterAttribute {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
7 u32 =>
unsafe { core::mem::transmute::<u32, FunctionParameterAttribute>(n) },
5940 u32 =>
unsafe { core::mem::transmute::<u32, FunctionParameterAttribute>(
5940 u32) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl FunctionParameterAttribute {
pub const RuntimeAlignedINTEL:
Self =
Self ::RuntimeAlignedALTERA;
}
impl core::str::FromStr
for FunctionParameterAttribute {
type Err = ();
fn from_str(s: &str) -> Result<
Self ,
Self ::Err> {
Ok(
match s {
"Zext" =>
Self ::Zext,
"Sext" =>
Self ::Sext,
"ByVal" =>
Self ::ByVal,
"Sret" =>
Self ::Sret,
"NoAlias" =>
Self ::NoAlias,
"NoCapture" =>
Self ::NoCapture,
"NoWrite" =>
Self ::NoWrite,
"NoReadWrite" =>
Self ::NoReadWrite,
"RuntimeAlignedALTERA" =>
Self ::RuntimeAlignedALTERA,
"RuntimeAlignedINTEL" =>
Self ::RuntimeAlignedALTERA,
_ =>
return Err(()),
})
}
}
#[ doc =
"SPIR-V operand kind: [Decoration](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_decoration_a_decoration) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature =
"serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature =
"deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum Decoration {
RelaxedPrecision =
0 u32,
SpecId =
1 u32,
Block =
2 u32,
BufferBlock =
3 u32,
RowMajor =
4 u32,
ColMajor =
5 u32,
ArrayStride =
6 u32,
MatrixStride =
7 u32,
GLSLShared =
8 u32,
GLSLPacked =
9 u32,
CPacked =
10 u32,
BuiltIn =
11 u32,
NoPerspective =
13 u32,
Flat =
14 u32,
Patch =
15 u32,
Centroid =
16 u32,
Sample =
17 u32,
Invariant =
18 u32,
Restrict =
19 u32,
Aliased =
20 u32,
Volatile =
21 u32,
Constant =
22 u32,
Coherent =
23 u32,
NonWritable =
24 u32,
NonReadable =
25 u32,
Uniform =
26 u32,
UniformId =
27 u32,
SaturatedConversion =
28 u32,
Stream =
29 u32,
Location =
30 u32,
Component =
31 u32,
Index =
32 u32,
Binding =
33 u32,
DescriptorSet =
34 u32,
Offset =
35 u32,
XfbBuffer =
36 u32,
XfbStride =
37 u32,
FuncParamAttr =
38 u32,
FPRoundingMode =
39 u32,
FPFastMathMode =
40 u32,
LinkageAttributes =
41 u32,
NoContraction =
42 u32,
InputAttachmentIndex =
43 u32,
Alignment =
44 u32,
MaxByteOffset =
45 u32,
AlignmentId =
46 u32,
MaxByteOffsetId =
47 u32,
SaturatedToLargestFloat8NormalConversionEXT =
4216 u32,
NoSignedWrap =
4469 u32,
NoUnsignedWrap =
4470 u32,
WeightTextureQCOM =
4487 u32,
BlockMatchTextureQCOM =
4488 u32,
BlockMatchSamplerQCOM =
4499 u32,
ExplicitInterpAMD =
4999 u32,
NodeSharesPayloadLimitsWithAMDX =
5019 u32,
NodeMaxPayloadsAMDX =
5020 u32,
TrackFinishWritingAMDX =
5078 u32,
PayloadNodeNameAMDX =
5091 u32,
PayloadNodeBaseIndexAMDX =
5098 u32,
PayloadNodeSparseArrayAMDX =
5099 u32,
PayloadNodeArraySizeAMDX =
5100 u32,
PayloadDispatchIndirectAMDX =
5105 u32,
ArrayStrideIdEXT =
5124 u32,
OffsetIdEXT =
5125 u32,
OverrideCoverageNV =
5248 u32,
PassthroughNV =
5250 u32,
ViewportRelativeNV =
5252 u32,
SecondaryViewportRelativeNV =
5256 u32,
PerPrimitiveEXT =
5271 u32,
PerViewNV =
5272 u32,
PerTaskNV =
5273 u32,
PerVertexKHR =
5285 u32,
NonUniform =
5300 u32,
RestrictPointer =
5355 u32,
AliasedPointer =
5356 u32,
MemberOffsetNV =
5358 u32,
HitObjectShaderRecordBufferNV =
5386 u32,
HitObjectShaderRecordBufferEXT =
5389 u32,
BankNV =
5397 u32,
BindlessSamplerNV =
5398 u32,
BindlessImageNV =
5399 u32,
BoundSamplerNV =
5400 u32,
BoundImageNV =
5401 u32,
SIMTCallINTEL =
5599 u32,
ReferencedIndirectlyINTEL =
5602 u32,
ClobberINTEL =
5607 u32,
SideEffectsINTEL =
5608 u32,
VectorComputeVariableINTEL =
5624 u32,
FuncParamIOKindINTEL =
5625 u32,
VectorComputeFunctionINTEL =
5626 u32,
StackCallINTEL =
5627 u32,
GlobalVariableOffsetINTEL =
5628 u32,
CounterBuffer =
5634 u32,
UserSemantic =
5635 u32,
UserTypeGOOGLE =
5636 u32,
FunctionRoundingModeINTEL =
5822 u32,
FunctionDenormModeINTEL =
5823 u32,
RegisterALTERA =
5825 u32,
MemoryALTERA =
5826 u32,
NumbanksALTERA =
5827 u32,
BankwidthALTERA =
5828 u32,
MaxPrivateCopiesALTERA =
5829 u32,
SinglepumpALTERA =
5830 u32,
DoublepumpALTERA =
5831 u32,
MaxReplicatesALTERA =
5832 u32,
SimpleDualPortALTERA =
5833 u32,
MergeALTERA =
5834 u32,
BankBitsALTERA =
5835 u32,
ForcePow2DepthALTERA =
5836 u32,
StridesizeALTERA =
5883 u32,
WordsizeALTERA =
5884 u32,
TrueDualPortALTERA =
5885 u32,
BurstCoalesceALTERA =
5899 u32,
CacheSizeALTERA =
5900 u32,
DontStaticallyCoalesceALTERA =
5901 u32,
PrefetchALTERA =
5902 u32,
StallEnableALTERA =
5905 u32,
FuseLoopsInFunctionALTERA =
5907 u32,
MathOpDSPModeALTERA =
5909 u32,
AliasScopeINTEL =
5914 u32,
NoAliasINTEL =
5915 u32,
InitiationIntervalALTERA =
5917 u32,
MaxConcurrencyALTERA =
5918 u32,
PipelineEnableALTERA =
5919 u32,
BufferLocationALTERA =
5921 u32,
IOPipeStorageALTERA =
5944 u32,
FunctionFloatingPointModeINTEL =
6080 u32,
SingleElementVectorINTEL =
6085 u32,
VectorComputeCallableFunctionINTEL =
6087 u32,
MediaBlockIOINTEL =
6140 u32,
StallFreeALTERA =
6151 u32,
FPMaxErrorDecorationINTEL =
6170 u32,
LatencyControlLabelALTERA =
6172 u32,
LatencyControlConstraintALTERA =
6173 u32,
ConduitKernelArgumentALTERA =
6175 u32,
RegisterMapKernelArgumentALTERA =
6176 u32,
MMHostInterfaceAddressWidthALTERA =
6177 u32,
MMHostInterfaceDataWidthALTERA =
6178 u32,
MMHostInterfaceLatencyALTERA =
6179 u32,
MMHostInterfaceReadWriteModeALTERA =
6180 u32,
MMHostInterfaceMaxBurstALTERA =
6181 u32,
MMHostInterfaceWaitRequestALTERA =
6182 u32,
StableKernelArgumentALTERA =
6183 u32,
HostAccessINTEL =
6188 u32,
InitModeALTERA =
6190 u32,
ImplementInRegisterMapALTERA =
6191 u32,
ConditionalINTEL =
6247 u32,
CacheControlLoadINTEL =
6442 u32,
CacheControlStoreINTEL =
6443 u32,
}
impl Decoration {
pub fn from_u32(n: u32) -> Option<
Self > {
Some(
match n {
0 u32..=
11 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
13 u32..=
47 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
4216 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
4216 u32) },
4469 u32..=
4470 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
4487 u32..=
4488 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
4499 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
4499 u32) },
4999 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
4999 u32) },
5019 u32..=
5020 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
5078 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
5078 u32) },
5091 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
5091 u32) },
5098 u32..=
5100 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
5105 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
5105 u32) },
5124 u32..=
5125 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
5248 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
5248 u32) },
5250 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
5250 u32) },
5252 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
5252 u32) },
5256 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
5256 u32) },
5271 u32..=
5273 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
5285 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
5285 u32) },
5300 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
5300 u32) },
5355 u32..=
5356 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
5358 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
5358 u32) },
5386 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
5386 u32) },
5389 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
5389 u32) },
5397 u32..=
5401 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
5599 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
5599 u32) },
5602 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
5602 u32) },
5607 u32..=
5608 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
5624 u32..=
5628 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
5634 u32..=
5636 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
5822 u32..=
5823 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
5825 u32..=
5836 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
5883 u32..=
5885 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
5899 u32..=
5902 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
5905 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
5905 u32) },
5907 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
5907 u32) },
5909 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
5909 u32) },
5914 u32..=
5915 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
5917 u32..=
5919 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
5921 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
5921 u32) },
5944 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
5944 u32) },
6080 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
6080 u32) },
6085 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
6085 u32) },
6087 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
6087 u32) },
6140 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
6140 u32) },
6151 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
6151 u32) },
6170 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
6170 u32) },
6172 u32..=
6173 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
6175 u32..=
6183 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
6188 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
6188 u32) },
6190 u32..=
6191 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
6247 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(
6247 u32) },
6442 u32..=
6443 u32 =>
unsafe { core::mem::transmute::<u32, Decoration>(n) },
_ =>
return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl Decoration {
pub const PerPrimitiveNV:
Self =
Self ::PerPrimitiveEXT;
pub const PerVertexNV:
Self =
Self ::PerVertexKHR;
pub const NonUniformEXT:
Self =
Self ::NonUniform;
pub const RestrictPointerEXT:
Self =
Self ::RestrictPointer;
pub const AliasedPointerEXT:
Self =
Self ::AliasedPointer;
pub const HlslCounterBufferGOOGLE:
Self =
Self ::CounterBuffer;
pub const HlslSemanticGOOGLE:
Self =
Self ::UserSemantic;
pub const RegisterINTEL:
Self =
Self ::RegisterALTERA;
pub const MemoryINTEL:
Self =
Self ::MemoryALTERA;
pub const NumbanksINTEL:
Self =
Self ::NumbanksALTERA;
pub const BankwidthINTEL:
Self =
Self ::BankwidthALTERA;
pub const MaxPrivateCopiesINTEL:
Self =
Self ::MaxPrivateCopiesALTERA;
pub const SinglepumpINTEL:
Self =
Self ::SinglepumpALTERA;
pub const DoublepumpINTEL:
Self =
Self ::DoublepumpALTERA;
pub const MaxReplicatesINTEL:
Self =
Self ::MaxReplicatesALTERA;
pub const SimpleDualPortINTEL:
Self =
Self ::SimpleDualPortALTERA;
pub const MergeINTEL:
Self =
Self ::MergeALTERA;
pub const BankBitsINTEL:
Self =
Self ::BankBitsALTERA;
pub const ForcePow2DepthINTEL:
Self =
Self ::ForcePow2DepthALTERA;
pub const StridesizeINTEL:
Self =
Self ::StridesizeALTERA;
pub const WordsizeINTEL:
Self =
Self ::WordsizeALTERA;
pub const TrueDualPortINTEL:
Self =
Self ::TrueDualPortALTERA;
pub const BurstCoalesceINTEL:
Self =
Self ::BurstCoalesceALTERA;
pub const CacheSizeINTEL:
Self =
Self ::CacheSizeALTERA;
pub const DontStaticallyCoalesceINTEL:
Self =
Self ::DontStaticallyCoalesceALTERA;
pub const PrefetchINTEL:
Self =
Self ::PrefetchALTERA;
pub const StallEnableINTEL:
Self =
Self ::StallEnableALTERA;
pub const FuseLoopsInFunctionINTEL:
Self =
Self ::FuseLoopsInFunctionALTERA;
pub const MathOpDSPModeINTEL:
Self =
Self ::MathOpDSPModeALTERA;
pub const InitiationIntervalINTEL:
Self =
Self ::InitiationIntervalALTERA;
pub const MaxConcurrencyINTEL:
Self =
Self ::MaxConcurrencyALTERA;
pub const PipelineEnableINTEL:
Self =
Self ::PipelineEnableALTERA;
pub const BufferLocationINTEL:
Self =
Self ::BufferLocationALTERA;
pub const IOPipeStorageINTEL:
Self =
Self ::IOPipeStorageALTERA;
pub const StallFreeINTEL:
Self =
Self ::StallFreeALTERA;
pub const LatencyControlLabelINTEL:
Self =
Self ::LatencyControlLabelALTERA;
pub const LatencyControlConstraintINTEL:
Self =
Self ::LatencyControlConstraintALTERA;
pub const ConduitKernelArgumentINTEL:
Self =
Self ::ConduitKernelArgumentALTERA;
pub const RegisterMapKernelArgumentINTEL:
Self =
Self ::RegisterMapKernelArgumentALTER
A;
pub const MMHostInterfaceAddressWidthINTEL: Self = Self ::MMHostInterfaceAddressWidthALTERA;
pub const MMHostInterfaceDataWidthINTEL: Self = Self ::MMHostInterfaceDataWidthALTERA;
pub const MMHostInterfaceLatencyINTEL: Self = Self ::MMHostInterfaceLatencyALTERA;
pub const MMHostInterfaceReadWriteModeINTEL: Self = Self ::MMHostInterfaceReadWriteModeALTERA;
pub const MMHostInterfaceMaxBurstINTEL: Self = Self ::MMHostInterfaceMaxBurstALTERA;
pub const MMHostInterfaceWaitRequestINTEL: Self = Self ::MMHostInterfaceWaitRequestALTERA;
pub const StableKernelArgumentINTEL: Self = Self ::StableKernelArgumentALTERA;
pub const InitModeINTEL: Self = Self ::InitModeALTERA;
pub const ImplementInRegisterMapINTEL: Self = Self ::ImplementInRegisterMapALTERA;
}
impl core::str::FromStr for Decoration {
type Err = ();
fn from_str(s: &str) -> Result<Self , Self ::Err> {
Ok(match s {
"RelaxedPrecision" => Self ::RelaxedPrecision,
"SpecId" => Self ::SpecId,
"Block" => Self ::Block,
"BufferBlock" => Self ::BufferBlock,
"RowMajor" => Self ::RowMajor,
"ColMajor" => Self ::ColMajor,
"ArrayStride" => Self ::ArrayStride,
"MatrixStride" => Self ::MatrixStride,
"GLSLShared" => Self ::GLSLShared,
"GLSLPacked" => Self ::GLSLPacked,
"CPacked" => Self ::CPacked,
"BuiltIn" => Self ::BuiltIn,
"NoPerspective" => Self ::NoPerspective,
"Flat" => Self ::Flat,
"Patch" => Self ::Patch,
"Centroid" => Self ::Centroid,
"Sample" => Self ::Sample,
"Invariant" => Self ::Invariant,
"Restrict" => Self ::Restrict,
"Aliased" => Self ::Aliased,
"Volatile" => Self ::Volatile,
"Constant" => Self ::Constant,
"Coherent" => Self ::Coherent,
"NonWritable" => Self ::NonWritable,
"NonReadable" => Self ::NonReadable,
"Uniform" => Self ::Uniform,
"UniformId" => Self ::UniformId,
"SaturatedConversion" => Self ::SaturatedConversion,
"Stream" => Self ::Stream,
"Location" => Self ::Location,
"Component" => Self ::Component,
"Index" => Self ::Index,
"Binding" => Self ::Binding,
"DescriptorSet" => Self ::DescriptorSet,
"Offset" => Self ::Offset,
"XfbBuffer" => Self ::XfbBuffer,
"XfbStride" => Self ::XfbStride,
"FuncParamAttr" => Self ::FuncParamAttr,
"FPRoundingMode" => Self ::FPRoundingMode,
"FPFastMathMode" => Self ::FPFastMathMode,
"LinkageAttributes" => Self ::LinkageAttributes,
"NoContraction" => Self ::NoContraction,
"InputAttachmentIndex" => Self ::InputAttachmentIndex,
"Alignment" => Self ::Alignment,
"MaxByteOffset" => Self ::MaxByteOffset,
"AlignmentId" => Self ::AlignmentId,
"MaxByteOffsetId" => Self ::MaxByteOffsetId,
"SaturatedToLargestFloat8NormalConversionEXT" => {
Self ::SaturatedToLargestFloat8NormalConversionEXT
}
"NoSignedWrap" => Self ::NoSignedWrap,
"NoUnsignedWrap" => Self ::NoUnsignedWrap,
"WeightTextureQCOM" => Self ::WeightTextureQCOM,
"BlockMatchTextureQCOM" => Self ::BlockMatchTextureQCOM,
"BlockMatchSamplerQCOM" => Self ::BlockMatchSamplerQCOM,
"ExplicitInterpAMD" => Self ::ExplicitInterpAMD,
"NodeSharesPayloadLimitsWithAMDX" => Self ::NodeSharesPayloadLimitsWithAMDX,
"NodeMaxPayloadsAMDX" => Self ::NodeMaxPayloadsAMDX,
"TrackFinishWritingAMDX" => Self ::TrackFinishWritingAMDX,
"PayloadNodeNameAMDX" => Self ::PayloadNodeNameAMDX,
"PayloadNodeBaseIndexAMDX" => Self ::PayloadNodeBaseIndexAMDX,
"PayloadNodeSparseArrayAMDX" => Self ::PayloadNodeSparseArrayAMDX,
"PayloadNodeArraySizeAMDX" => Self ::PayloadNodeArraySizeAMDX,
"PayloadDispatchIndirectAMDX" => Self ::PayloadDispatchIndirectAMDX,
"ArrayStrideIdEXT" => Self ::ArrayStrideIdEXT,
"OffsetIdEXT" => Self ::OffsetIdEXT,
"OverrideCoverageNV" => Self ::OverrideCoverageNV,
"PassthroughNV" => Self ::PassthroughNV,
"ViewportRelativeNV" => Self ::ViewportRelativeNV,
"SecondaryViewportRelativeNV" => Self ::SecondaryViewportRelativeNV,
"PerPrimitiveEXT" => Self ::PerPrimitiveEXT,
"PerPrimitiveNV" => Self ::PerPrimitiveEXT,
"PerViewNV" => Self ::PerViewNV,
"PerTaskNV" => Self ::PerTaskNV,
"PerVertexKHR" => Self ::PerVertexKHR,
"PerVertexNV" => Self ::PerVertexKHR,
"NonUniform" => Self ::NonUniform,
"NonUniformEXT" => Self ::NonUniform,
"RestrictPointer" => Self ::RestrictPointer,
"RestrictPointerEXT" => Self ::RestrictPointer,
"AliasedPointer" => Self ::AliasedPointer,
"AliasedPointerEXT" => Self ::AliasedPointer,
"MemberOffsetNV" => Self ::MemberOffsetNV,
"HitObjectShaderRecordBufferNV" => Self ::HitObjectShaderRecordBufferNV,
"HitObjectShaderRecordBufferEXT" => Self ::HitObjectShaderRecordBufferEXT,
"BankNV" => Self ::BankNV,
"BindlessSamplerNV" => Self ::BindlessSamplerNV,
"BindlessImageNV" => Self ::BindlessImageNV,
"BoundSamplerNV" => Self ::BoundSamplerNV,
"BoundImageNV" => Self ::BoundImageNV,
"SIMTCallINTEL" => Self ::SIMTCallINTEL,
"ReferencedIndirectlyINTEL" => Self ::ReferencedIndirectlyINTEL,
"ClobberINTEL" => Self ::ClobberINTEL,
"SideEffectsINTEL" => Self ::SideEffectsINTEL,
"VectorComputeVariableINTEL" => Self ::VectorComputeVariableINTEL,
"FuncParamIOKindINTEL" => Self ::FuncParamIOKindINTEL,
"VectorComputeFunctionINTEL" => Self ::VectorComputeFunctionINTEL,
"StackCallINTEL" => Self ::StackCallINTEL,
"GlobalVariableOffsetINTEL" => Self ::GlobalVariableOffsetINTEL,
"CounterBuffer" => Self ::CounterBuffer,
"HlslCounterBufferGOOGLE" => Self ::CounterBuffer,
"UserSemantic" => Self ::UserSemantic,
"HlslSemanticGOOGLE" => Self ::UserSemantic,
"UserTypeGOOGLE" => Self ::UserTypeGOOGLE,
"FunctionRoundingModeINTEL" => Self ::FunctionRoundingModeINTEL,
"FunctionDenormModeINTEL" => Self ::FunctionDenormModeINTEL,
"RegisterALTERA" => Self ::RegisterALTERA,
"RegisterINTEL" => Self ::RegisterALTERA,
"MemoryALTERA" => Self ::MemoryALTERA,
"MemoryINTEL" => Self ::MemoryALTERA,
"NumbanksALTERA" => Self ::NumbanksALTERA,
"NumbanksINTEL" => Self ::NumbanksALTERA,
"BankwidthALTERA" => Self ::BankwidthALTERA,
"BankwidthINTEL" => Self ::BankwidthALTERA,
"MaxPrivateCopiesALTERA" => Self ::MaxPrivateCopiesALTERA,
"MaxPrivateCopiesINTEL" => Self ::MaxPrivateCopiesALTERA,
"SinglepumpALTERA" => Self ::SinglepumpALTERA,
"SinglepumpINTEL" => Self ::SinglepumpALTERA,
"DoublepumpALTERA" => Self ::DoublepumpALTERA,
"DoublepumpINTEL" => Self ::DoublepumpALTERA,
"MaxReplicatesALTERA" => Self ::MaxReplicatesALTERA,
"MaxReplicatesINTEL" => Self ::MaxReplicatesALTERA,
"SimpleDualPortALTERA" => Self ::SimpleDualPortALTERA,
"SimpleDualPortINTEL" => Self ::SimpleDualPortALTERA,
"MergeALTERA" => Self ::MergeALTERA,
"MergeINTEL" => Self ::MergeALTERA,
"BankBitsALTERA" => Self ::BankBitsALTERA,
"BankBitsINTEL" => Self ::BankBitsALTERA,
"ForcePow2DepthALTERA" => Self ::ForcePow2DepthALTERA,
"ForcePow2DepthINTEL" => Self ::ForcePow2DepthALTERA,
"StridesizeALTERA" => Self ::StridesizeALTERA,
"StridesizeINTEL" => Self ::StridesizeALTERA,
"WordsizeALTERA" => Self ::WordsizeALTERA,
"WordsizeINTEL" => Self ::WordsizeALTERA,
"TrueDualPortALTERA" => Self ::TrueDualPortALTERA,
"TrueDualPortINTEL" => Self ::TrueDualPortALTERA,
"BurstCoalesceALTERA" => Self ::BurstCoalesceALTERA,
"BurstCoalesceINTEL" => Self ::BurstCoalesceALTERA,
"CacheSizeALTERA" => Self ::CacheSizeALTERA,
"CacheSizeINTEL" => Self ::CacheSizeALTERA,
"DontStaticallyCoalesceALTERA" => Self ::DontStaticallyCoalesceALTERA,
"DontStaticallyCoalesceINTEL" => Self ::DontStaticallyCoalesceALTERA,
"PrefetchALTERA" => Self ::PrefetchALTERA,
"PrefetchINTEL" => Self ::PrefetchALTERA,
"StallEnableALTERA" => Self ::StallEnableALTERA,
"StallEnableINTEL" => Self ::StallEnableALTERA,
"FuseLoopsInFunctionALTERA" => Self ::FuseLoopsInFunctionALTERA,
"FuseLoopsInFunctionINTEL" => Self ::FuseLoopsInFunctionALTERA,
"MathOpDSPModeALTERA" => Self ::MathOpDSPModeALTERA,
"MathOpDSPModeINTEL" => Self ::MathOpDSPModeALTERA,
"AliasScopeINTEL" => Self ::AliasScopeINTEL,
"NoAliasINTEL" => Self ::NoAliasINTEL,
"InitiationIntervalALTERA" => Self ::InitiationIntervalALTERA,
"InitiationIntervalINTEL" => Self ::InitiationIntervalALTERA,
"MaxConcurrencyALTERA" => Self ::MaxConcurrencyALTERA,
"MaxConcurrencyINTEL" => Self ::MaxConcurrencyALTERA,
"PipelineEnableALTERA" => Self ::PipelineEnableALTERA,
"PipelineEnableINTEL" => Self ::PipelineEnableALTERA,
"BufferLocationALTERA" => Self ::BufferLocationALTERA,
"BufferLocationINTEL" => Self ::BufferLocationALTERA,
"IOPipeStorageALTERA" => Self ::IOPipeStorageALTERA,
"IOPipeStorageINTEL" => Self ::IOPipeStorageALTERA,
"FunctionFloatingPointModeINTEL" => Self ::FunctionFloatingPointModeINTEL,
"SingleElementVectorINTEL" => Self ::SingleElementVectorINTEL,
"VectorComputeCallableFunctionINTEL" => Self ::VectorComputeCallableFunctionINTEL,
"MediaBlockIOINTEL" => Self ::MediaBlockIOINTEL,
"StallFreeALTERA" => Self ::StallFreeALTERA,
"StallFreeINTEL" => Self ::StallFreeALTERA,
"FPMaxErrorDecorationINTEL" => Self ::FPMaxErrorDecorationINTEL,
"LatencyControlLabelALTERA" => Self ::LatencyControlLabelALTERA,
"LatencyControlLabelINTEL" => Self ::LatencyControlLabelALTERA,
"LatencyControlConstraintALTERA" => Self ::LatencyControlConstraintALTERA,
"LatencyControlConstraintINTEL" => Self ::LatencyControlConstraintALTERA,
"ConduitKernelArgumentALTERA" => Self ::ConduitKernelArgumentALTERA,
"ConduitKernelArgumentINTEL" => Self ::ConduitKernelArgumentALTERA,
"RegisterMapKernelArgumentALTERA" => Self ::RegisterMapKernelArgumentALTERA,
"RegisterMapKernelArgumentINTEL" => Self ::RegisterMapKernelArgumentALTERA,
"MMHostInterfaceAddressWidthALTERA" => Self ::MMHostInterfaceAddressWidthALTERA,
"MMHostInterfaceAddressWidthINTEL" => Self ::MMHostInterfaceAddressWidthALTERA,
"MMHostInterfaceDataWidthALTERA" => Self ::MMHostInterfaceDataWidthALTERA,
"MMHostInterfaceDataWidthINTEL" => Self ::MMHostInterfaceDataWidthALTERA,
"MMHostInterfaceLatencyALTERA" => Self ::MMHostInterfaceLatencyALTERA,
"MMHostInterfaceLatencyINTEL" => Self ::MMHostInterfaceLatencyALTERA,
"MMHostInterfaceReadWriteModeALTERA" => Self ::MMHostInterfaceReadWriteModeALTERA,
"MMHostInterfaceReadWriteModeINTEL" => Self ::MMHostInterfaceReadWriteModeALTERA,
"MMHostInterfaceMaxBurstALTERA" => Self ::MMHostInterfaceMaxBurstALTERA,
"MMHostInterfaceMaxBurstINTEL" => Self ::MMHostInterfaceMaxBurstALTERA,
"MMHostInterfaceWaitRequestALTERA" => Self ::MMHostInterfaceWaitRequestALTERA,
"MMHostInterfaceWaitRequestINTEL" => Self ::MMHostInterfaceWaitRequestALTERA,
"StableKernelArgumentALTERA" => Self ::StableKernelArgumentALTERA,
"StableKernelArgumentINTEL" => Self ::StableKernelArgumentALTERA,
"HostAccessINTEL" => Self ::HostAccessINTEL,
"InitModeALTERA" => Self ::InitModeALTERA,
"InitModeINTEL" => Self ::InitModeALTERA,
"ImplementInRegisterMapALTERA" => Self ::ImplementInRegisterMapALTERA,
"ImplementInRegisterMapINTEL" => Self ::ImplementInRegisterMapALTERA,
"ConditionalINTEL" => Self ::ConditionalINTEL,
"CacheControlLoadINTEL" => Self ::CacheControlLoadINTEL,
"CacheControlStoreINTEL" => Self ::CacheControlStoreINTEL,
_ => return Err(()),
})
}
}
#[ doc = "SPIR-V operand kind: [BuiltIn](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_built_in_a_built_in) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum BuiltIn {
Position = 0 u32,
PointSize = 1 u32,
ClipDistance = 3 u32,
CullDistance = 4 u32,
VertexId = 5 u32,
InstanceId = 6 u32,
PrimitiveId = 7 u32,
InvocationId = 8 u32,
Layer = 9 u32,
ViewportIndex = 10 u32,
TessLevelOuter = 11 u32,
TessLevelInner = 12 u32,
TessCoord = 13 u32,
PatchVertices = 14 u32,
FragCoord = 15 u32,
PointCoord = 16 u32,
FrontFacing = 17 u32,
SampleId = 18 u32,
SamplePosition = 19 u32,
SampleMask = 20 u32,
FragDepth = 22 u32,
HelperInvocation = 23 u32,
NumWorkgroups = 24 u32,
WorkgroupSize = 25 u32,
WorkgroupId = 26 u32,
LocalInvocationId = 27 u32,
GlobalInvocationId = 28 u32,
LocalInvocationIndex = 29 u32,
WorkDim = 30 u32,
GlobalSize = 31 u32,
EnqueuedWorkgroupSize = 32 u32,
GlobalOffset = 33 u32,
GlobalLinearId = 34 u32,
SubgroupSize = 36 u32,
SubgroupMaxSize = 37 u32,
NumSubgroups = 38 u32,
NumEnqueuedSubgroups = 39 u32,
SubgroupId = 40 u32,
SubgroupLocalInvocationId = 41 u32,
VertexIndex = 42 u32,
InstanceIndex = 43 u32,
CoreIDARM = 4160 u32,
CoreCountARM = 4161 u32,
CoreMaxIDARM = 4162 u32,
WarpIDARM = 4163 u32,
WarpMaxIDARM = 4164 u32,
SubgroupEqMask = 4416 u32,
SubgroupGeMask = 4417 u32,
SubgroupGtMask = 4418 u32,
SubgroupLeMask = 4419 u32,
SubgroupLtMask = 4420 u32,
BaseVertex = 4424 u32,
BaseInstance = 4425 u32,
DrawIndex = 4426 u32,
PrimitiveShadingRateKHR = 4432 u32,
DeviceIndex = 4438 u32,
ViewIndex = 4440 u32,
ShadingRateKHR = 4444 u32,
TileOffsetQCOM = 4492 u32,
TileDimensionQCOM = 4493 u32,
TileApronSizeQCOM = 4494 u32,
BaryCoordNoPerspAMD = 4992 u32,
BaryCoordNoPerspCentroidAMD = 4993 u32,
BaryCoordNoPerspSampleAMD = 4994 u32,
BaryCoordSmoothAMD = 4995 u32,
BaryCoordSmoothCentroidAMD = 4996 u32,
BaryCoordSmoothSampleAMD = 4997 u32,
BaryCoordPullModelAMD = 4998 u32,
FragStencilRefEXT = 5014 u32,
RemainingRecursionLevelsAMDX = 5021 u32,
ShaderIndexAMDX = 5073 u32,
SamplerHeapEXT = 5122 u32,
ResourceHeapEXT = 5123 u32,
ViewportMaskNV = 5253 u32,
SecondaryPositionNV = 5257 u32,
SecondaryViewportMaskNV = 5258 u32,
PositionPerViewNV = 5261 u32,
ViewportMaskPerViewNV = 5262 u32,
FullyCoveredEXT = 5264 u32,
TaskCountNV = 5274 u32,
PrimitiveCountNV = 5275 u32,
PrimitiveIndicesNV = 5276 u32,
ClipDistancePerViewNV = 5277 u32,
CullDistancePerViewNV = 5278 u32,
LayerPerViewNV = 5279 u32,
MeshViewCountNV = 5280 u32,
MeshViewIndicesNV = 5281 u32,
BaryCoordKHR = 5286 u32,
BaryCoordNoPerspKHR = 5287 u32,
FragSizeEXT = 5292 u32,
FragInvocationCountEXT = 5293 u32,
PrimitivePointIndicesEXT = 5294 u32,
PrimitiveLineIndicesEXT = 5295 u32,
PrimitiveTriangleIndicesEXT = 5296 u32,
CullPrimitiveEXT = 5299 u32,
LaunchIdKHR = 5319 u32,
LaunchSizeKHR = 5320 u32,
WorldRayOriginKHR = 5321 u32,
WorldRayDirectionKHR = 5322 u32,
ObjectRayOriginKHR = 5323 u32,
ObjectRayDirectionKHR = 5324 u32,
RayTminKHR = 5325 u32,
RayTmaxKHR = 5326 u32,
InstanceCustomIndexKHR = 5327 u32,
ObjectToWorldKHR = 5330 u32,
WorldToObjectKHR = 5331 u32,
HitTNV = 5332 u32,
HitKindKHR = 5333 u32,
CurrentRayTimeNV = 5334 u32,
HitTriangleVertexPositionsKHR = 5335 u32,
HitMicroTriangleVertexPositionsNV = 5337 u32,
HitMicroTriangleVertexBarycentricsNV = 5344 u32,
IncomingRayFlagsKHR = 5351 u32,
RayGeometryIndexKHR = 5352 u32,
HitIsSphereNV = 5359 u32,
HitIsLSSNV = 5360 u32,
HitSpherePositionNV = 5361 u32,
WarpsPerSMNV = 5374 u32,
SMCountNV = 5375 u32,
WarpIDNV = 5376 u32,
SMIDNV = 5377 u32,
HitLSSPositionsNV = 5396 u32,
HitKindFrontFacingMicroTriangleNV = 5405 u32,
HitKindBackFacingMicroTriangleNV = 5406 u32,
HitSphereRadiusNV = 5420 u32,
HitLSSRadiiNV = 5421 u32,
ClusterIDNV = 5436 u32,
CullMaskKHR = 6021 u32,
}
impl BuiltIn {
pub fn from_u32(n: u32) -> Option<Self > {
Some(match n {
0 u32..=1 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
3 u32..=20 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
22 u32..=34 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
36 u32..=43 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
4160 u32..=4164 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
4416 u32..=4420 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
4424 u32..=4426 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
4432 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(4432 u32) },
4438 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(4438 u32) },
4440 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(4440 u32) },
4444 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(4444 u32) },
4492 u32..=4494 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
4992 u32..=4998 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
5014 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(5014 u32) },
5021 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(5021 u32) },
5073 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(5073 u32) },
5122 u32..=5123 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
5253 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(5253 u32) },
5257 u32..=5258 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
5261 u32..=5262 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
5264 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(5264 u32) },
5274 u32..=5281 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
5286 u32..=5287 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
5292 u32..=5296 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
5299 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(5299 u32) },
5319 u32..=5327 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
5330 u32..=5335 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
5337 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(5337 u32) },
5344 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(5344 u32) },
5351 u32..=5352 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
5359 u32..=5361 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
5374 u32..=5377 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
5396 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(5396 u32) },
5405 u32..=5406 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
5420 u32..=5421 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(n) },
5436 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(5436 u32) },
6021 u32 => unsafe { core::mem::transmute::<u32, BuiltIn>(6021 u32) },
_ => return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl BuiltIn {
pub const SubgroupEqMaskKHR: Self = Self ::SubgroupEqMask;
pub const SubgroupGeMaskKHR: Self = Self ::SubgroupGeMask;
pub const SubgroupGtMaskKHR: Self = Self ::SubgroupGtMask;
pub const SubgroupLeMaskKHR: Self = Self ::SubgroupLeMask;
pub const SubgroupLtMaskKHR: Self = Self ::SubgroupLtMask;
pub const BaryCoordNV: Self = Self ::BaryCoordKHR;
pub const BaryCoordNoPerspNV: Self = Self ::BaryCoordNoPerspKHR;
pub const FragmentSizeNV: Self = Self ::FragSizeEXT;
pub const InvocationsPerPixelNV: Self = Self ::FragInvocationCountEXT;
pub const LaunchIdNV: Self = Self ::LaunchIdKHR;
pub const LaunchSizeNV: Self = Self ::LaunchSizeKHR;
pub const WorldRayOriginNV: Self = Self ::WorldRayOriginKHR;
pub const WorldRayDirectionNV: Self = Self ::WorldRayDirectionKHR;
pub const ObjectRayOriginNV: Self = Self ::ObjectRayOriginKHR;
pub const ObjectRayDirectionNV: Self = Self ::ObjectRayDirectionKHR;
pub const RayTminNV: Self = Self ::RayTminKHR;
pub const RayTmaxNV: Self = Self ::RayTmaxKHR;
pub const InstanceCustomIndexNV: Self = Self ::InstanceCustomIndexKHR;
pub const ObjectToWorldNV: Self = Self ::ObjectToWorldKHR;
pub const WorldToObjectNV: Self = Self ::WorldToObjectKHR;
pub const HitKindNV: Self = Self ::HitKindKHR;
pub const IncomingRayFlagsNV: Self = Self ::IncomingRayFlagsKHR;
}
impl core::str::FromStr for BuiltIn {
type Err = ();
fn from_str(s: &str) -> Result<Self , Self ::Err> {
Ok(match s {
"Position" => Self ::Position,
"PointSize" => Self ::PointSize,
"ClipDistance" => Self ::ClipDistance,
"CullDistance" => Self ::CullDistance,
"VertexId" => Self ::VertexId,
"InstanceId" => Self ::InstanceId,
"PrimitiveId" => Self ::PrimitiveId,
"InvocationId" => Self ::InvocationId,
"Layer" => Self ::Layer,
"ViewportIndex" => Self ::ViewportIndex,
"TessLevelOuter" => Self ::TessLevelOuter,
"TessLevelInner" => Self ::TessLevelInner,
"TessCoord" => Self ::TessCoord,
"PatchVertices" => Self ::PatchVertices,
"FragCoord" => Self ::FragCoord,
"PointCoord" => Self ::PointCoord,
"FrontFacing" => Self ::FrontFacing,
"SampleId" => Self ::SampleId,
"SamplePosition" => Self ::SamplePosition,
"SampleMask" => Self ::SampleMask,
"FragDepth" => Self ::FragDepth,
"HelperInvocation" => Self ::HelperInvocation,
"NumWorkgroups" => Self ::NumWorkgroups,
"WorkgroupSize" => Self ::WorkgroupSize,
"WorkgroupId" => Self ::WorkgroupId,
"LocalInvocationId" => Self ::LocalInvocationId,
"GlobalInvocationId" => Self ::GlobalInvocationId,
"LocalInvocationIndex" => Self ::LocalInvocationIndex,
"WorkDim" => Self ::WorkDim,
"GlobalSize" => Self ::GlobalSize,
"EnqueuedWorkgroupSize" => Self ::EnqueuedWorkgroupSize,
"GlobalOffset" => Self ::GlobalOffset,
"GlobalLinearId" => Self ::GlobalLinearId,
"SubgroupSize" => Self ::SubgroupSize,
"SubgroupMaxSize" => Self ::SubgroupMaxSize,
"NumSubgroups" => Self ::NumSubgroups,
"NumEnqueuedSubgroups" => Self ::NumEnqueuedSubgroups,
"SubgroupId" => Self ::SubgroupId,
"SubgroupLocalInvocationId" => Self ::SubgroupLocalInvocationId,
"VertexIndex" => Self ::VertexIndex,
"InstanceIndex" => Self ::InstanceIndex,
"CoreIDARM" => Self ::CoreIDARM,
"CoreCountARM" => Self ::CoreCountARM,
"CoreMaxIDARM" => Self ::CoreMaxIDARM,
"WarpIDARM" => Self ::WarpIDARM,
"WarpMaxIDARM" => Self ::WarpMaxIDARM,
"SubgroupEqMask" => Self ::SubgroupEqMask,
"SubgroupEqMaskKHR" => Self ::SubgroupEqMask,
"SubgroupGeMask" => Self ::SubgroupGeMask,
"SubgroupGeMaskKHR" => Self ::SubgroupGeMask,
"SubgroupGtMask" => Self ::SubgroupGtMask,
"SubgroupGtMaskKHR" => Self ::SubgroupGtMask,
"SubgroupLeMask" => Self ::SubgroupLeMask,
"SubgroupLeMaskKHR" => Self ::SubgroupLeMask,
"SubgroupLtMask" => Self ::SubgroupLtMask,
"SubgroupLtMaskKHR" => Self ::SubgroupLtMask,
"BaseVertex" => Self ::BaseVertex,
"BaseInstance" => Self ::BaseInstance,
"DrawIndex" => Self ::DrawIndex,
"PrimitiveShadingRateKHR" => Self ::PrimitiveShadingRateKHR,
"DeviceIndex" => Self ::DeviceIndex,
"ViewIndex" => Self ::ViewIndex,
"ShadingRateKHR" => Self ::ShadingRateKHR,
"TileOffsetQCOM" => Self ::TileOffsetQCOM,
"TileDimensionQCOM" => Self ::TileDimensionQCOM,
"TileApronSizeQCOM" => Self ::TileApronSizeQCOM,
"BaryCoordNoPerspAMD" => Self ::BaryCoordNoPerspAMD,
"BaryCoordNoPerspCentroidAMD" => Self ::BaryCoordNoPerspCentroidAMD,
"BaryCoordNoPerspSampleAMD" => Self ::BaryCoordNoPerspSampleAMD,
"BaryCoordSmoothAMD" => Self ::BaryCoordSmoothAMD,
"BaryCoordSmoothCentroidAMD" => Self ::BaryCoordSmoothCentroidAMD,
"BaryCoordSmoothSampleAMD" => Self ::BaryCoordSmoothSampleAMD,
"BaryCoordPullModelAMD" => Self ::BaryCoordPullModelAMD,
"FragStencilRefEXT" => Self ::FragStencilRefEXT,
"RemainingRecursionLevelsAMDX" => Self ::RemainingRecursionLevelsAMDX,
"ShaderIndexAMDX" => Self ::ShaderIndexAMDX,
"SamplerHeapEXT" => Self ::SamplerHeapEXT,
"ResourceHeapEXT" => Self ::ResourceHeapEXT,
"ViewportMaskNV" => Self ::ViewportMaskNV,
"SecondaryPositionNV" => Self ::SecondaryPositionNV,
"SecondaryViewportMaskNV" => Self ::SecondaryViewportMaskNV,
"PositionPerViewNV" => Self ::PositionPerViewNV,
"ViewportMaskPerViewNV" => Self ::ViewportMaskPerViewNV,
"FullyCoveredEXT" => Self ::FullyCoveredEXT,
"TaskCountNV" => Self ::TaskCountNV,
"PrimitiveCountNV" => Self ::PrimitiveCountNV,
"PrimitiveIndicesNV" => Self ::PrimitiveIndicesNV,
"ClipDistancePerViewNV" => Self ::ClipDistancePerViewNV,
"CullDistancePerViewNV" => Self ::CullDistancePerViewNV,
"LayerPerViewNV" => Self ::LayerPerViewNV,
"MeshViewCountNV" => Self ::MeshViewCountNV,
"MeshViewIndicesNV" => Self ::MeshViewIndicesNV,
"BaryCoordKHR" => Self ::BaryCoordKHR,
"BaryCoordNV" => Self ::BaryCoordKHR,
"BaryCoordNoPerspKHR" => Self ::BaryCoordNoPerspKHR,
"BaryCoordNoPerspNV" => Self ::BaryCoordNoPerspKHR,
"FragSizeEXT" => Self ::FragSizeEXT,
"FragmentSizeNV" => Self ::FragSizeEXT,
"FragInvocationCountEXT" => Self ::FragInvocationCountEXT,
"InvocationsPerPixelNV" => Self ::FragInvocationCountEXT,
"PrimitivePointIndicesEXT" => Self ::PrimitivePointIndicesEXT,
"PrimitiveLineIndicesEXT" => Self ::PrimitiveLineIndicesEXT,
"PrimitiveTriangleIndicesEXT" => Self ::PrimitiveTriangleIndicesEXT,
"CullPrimitiveEXT" => Self ::CullPrimitiveEXT,
"LaunchIdKHR" => Self ::LaunchIdKHR,
"LaunchIdNV" => Self ::LaunchIdKHR,
"LaunchSizeKHR" => Self ::LaunchSizeKHR,
"LaunchSizeNV" => Self ::LaunchSizeKHR,
"WorldRayOriginKHR" => Self ::WorldRayOriginKHR,
"WorldRayOriginNV" => Self ::WorldRayOriginKHR,
"WorldRayDirectionKHR" => Self ::WorldRayDirectionKHR,
"WorldRayDirectionNV" => Self ::WorldRayDirectionKHR,
"ObjectRayOriginKHR" => Self ::ObjectRayOriginKHR,
"ObjectRayOriginNV" => Self ::ObjectRayOriginKHR,
"ObjectRayDirectionKHR" => Self ::ObjectRayDirectionKHR,
"ObjectRayDirectionNV" => Self ::ObjectRayDirectionKHR,
"RayTminKHR" => Self ::RayTminKHR,
"RayTminNV" => Self ::RayTminKHR,
"RayTmaxKHR" => Self ::RayTmaxKHR,
"RayTmaxNV" => Self ::RayTmaxKHR,
"InstanceCustomIndexKHR" => Self ::InstanceCustomIndexKHR,
"InstanceCustomIndexNV" => Self ::InstanceCustomIndexKHR,
"ObjectToWorldKHR" => Self ::ObjectToWorldKHR,
"ObjectToWorldNV" => Self ::ObjectToWorldKHR,
"WorldToObjectKHR" => Self ::WorldToObjectKHR,
"WorldToObjectNV" => Self ::WorldToObjectKHR,
"HitTNV" => Self ::HitTNV,
"HitKindKHR" => Self ::HitKindKHR,
"HitKindNV" => Self ::HitKindKHR,
"CurrentRayTimeNV" => Self ::CurrentRayTimeNV,
"HitTriangleVertexPositionsKHR" => Self ::HitTriangleVertexPositionsKHR,
"HitMicroTriangleVertexPositionsNV" => Self ::HitMicroTriangleVertexPositionsNV,
"HitMicroTriangleVertexBarycentricsNV" => Self ::HitMicroTriangleVertexBarycentricsNV,
"IncomingRayFlagsKHR" => Self ::IncomingRayFlagsKHR,
"IncomingRayFlagsNV" => Self ::IncomingRayFlagsKHR,
"RayGeometryIndexKHR" => Self ::RayGeometryIndexKHR,
"HitIsSphereNV" => Self ::HitIsSphereNV,
"HitIsLSSNV" => Self ::HitIsLSSNV,
"HitSpherePositionNV" => Self ::HitSpherePositionNV,
"WarpsPerSMNV" => Self ::WarpsPerSMNV,
"SMCountNV" => Self ::SMCountNV,
"WarpIDNV" => Self ::WarpIDNV,
"SMIDNV" => Self ::SMIDNV,
"HitLSSPositionsNV" => Self ::HitLSSPositionsNV,
"HitKindFrontFacingMicroTriangleNV" => Self ::HitKindFrontFacingMicroTriangleNV,
"HitKindBackFacingMicroTriangleNV" => Self ::HitKindBackFacingMicroTriangleNV,
"HitSphereRadiusNV" => Self ::HitSphereRadiusNV,
"HitLSSRadiiNV" => Self ::HitLSSRadiiNV,
"ClusterIDNV" => Self ::ClusterIDNV,
"CullMaskKHR" => Self ::CullMaskKHR,
_ => return Err(()),
})
}
}
#[ doc = "SPIR-V operand kind: [Scope](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_scope_a_scope) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum Scope {
CrossDevice = 0 u32,
Device = 1 u32,
Workgroup = 2 u32,
Subgroup = 3 u32,
Invocation = 4 u32,
QueueFamily = 5 u32,
ShaderCallKHR = 6 u32,
}
impl Scope {
pub fn from_u32(n: u32) -> Option<Self > {
Some(match n {
0 u32..=6 u32 => unsafe { core::mem::transmute::<u32, Scope>(n) },
_ => return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl Scope {
pub const QueueFamilyKHR: Self = Self ::QueueFamily;
}
impl core::str::FromStr for Scope {
type Err = ();
fn from_str(s: &str) -> Result<Self , Self ::Err> {
Ok(match s {
"CrossDevice" => Self ::CrossDevice,
"Device" => Self ::Device,
"Workgroup" => Self ::Workgroup,
"Subgroup" => Self ::Subgroup,
"Invocation" => Self ::Invocation,
"QueueFamily" => Self ::QueueFamily,
"QueueFamilyKHR" => Self ::QueueFamily,
"ShaderCallKHR" => Self ::ShaderCallKHR,
_ => return Err(()),
})
}
}
#[ doc = "SPIR-V operand kind: [GroupOperation](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_group_operation_a_group_operation) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum GroupOperation {
Reduce = 0 u32,
InclusiveScan = 1 u32,
ExclusiveScan = 2 u32,
ClusteredReduce = 3 u32,
PartitionedReduceEXT = 6 u32,
PartitionedInclusiveScanEXT = 7 u32,
PartitionedExclusiveScanEXT = 8 u32,
}
impl GroupOperation {
pub fn from_u32(n: u32) -> Option<Self > {
Some(match n {
0 u32..=3 u32 => unsafe { core::mem::transmute::<u32, GroupOperation>(n) },
6 u32..=8 u32 => unsafe { core::mem::transmute::<u32, GroupOperation>(n) },
_ => return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl GroupOperation {
pub const PartitionedReduceNV: Self = Self ::PartitionedReduceEXT;
pub const PartitionedInclusiveScanNV: Self = Self ::PartitionedInclusiveScanEXT;
pub const PartitionedExclusiveScanNV: Self = Self ::PartitionedExclusiveScanEXT;
}
impl core::str::FromStr for GroupOperation {
type Err = ();
fn from_str(s: &str) -> Result<Self , Self ::Err> {
Ok(match s {
"Reduce" => Self ::Reduce,
"InclusiveScan" => Self ::InclusiveScan,
"ExclusiveScan" => Self ::ExclusiveScan,
"ClusteredReduce" => Self ::ClusteredReduce,
"PartitionedReduceEXT" => Self ::PartitionedReduceEXT,
"PartitionedReduceNV" => Self ::PartitionedReduceEXT,
"PartitionedInclusiveScanEXT" => Self ::PartitionedInclusiveScanEXT,
"PartitionedInclusiveScanNV" => Self ::PartitionedInclusiveScanEXT,
"PartitionedExclusiveScanEXT" => Self ::PartitionedExclusiveScanEXT,
"PartitionedExclusiveScanNV" => Self ::PartitionedExclusiveScanEXT,
_ => return Err(()),
})
}
}
#[ 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) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum KernelEnqueueFlags {
NoWait = 0 u32,
WaitKernel = 1 u32,
WaitWorkGroup = 2 u32,
}
impl KernelEnqueueFlags {
pub fn from_u32(n: u32) -> Option<Self > {
Some(match n {
0 u32..=2 u32 => unsafe { core::mem::transmute::<u32, KernelEnqueueFlags>(n) },
_ => return None,
})
}
}
#[ allow(non_upper_case_globals)]
impl KernelEnqueueFlags {}
impl core::str::FromStr for KernelEnqueueFlags {
type Err = ();
fn from_str(s: &str) -> Result<Self , Self ::Err> {
Ok(match s {
"NoWait" => Self ::NoWait,
"WaitKernel" => Self ::WaitKernel,
"WaitWorkGroup" => Self ::WaitWorkGroup,
_ => return Err(()),
})
}
}
#[ doc = "SPIR-V operand kind: [Capability](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_capability_a_capability) "]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum Capability {
Matrix = 0 u32,
Shader = 1 u32,
Geometry = 2 u32,
Tessellation = 3 u32,
Addresses = 4 u32,
Linkage = 5 u32,
Kernel = 6 u32,
Vector16 = 7 u32,
Float16Buffer = 8 u32,
Float16 = 9 u32,
Float64 = 10 u32,
Int64 = 11 u32,
Int64Atomics = 12 u32,
ImageBasic = 13 u32,
ImageReadWrite = 14 u32,
ImageMipmap = 15 u32,
Pipes = 17 u32,
Groups = 18 u32,
DeviceEnqueue = 19 u32,
LiteralSampler = 20 u32,
AtomicStorage = 21 u32,
Int16 = 22 u32,
TessellationPointSize = 23 u32,
GeometryPointSize = 24 u32,
ImageGatherExtended = 25 u32,
StorageImageMultisample = 27 u32,
UniformBufferArrayDynamicIndexing = 28 u32,
SampledImageArrayDynamicIndexing = 29 u32,
StorageBufferArrayDynamicIndexing = 30 u32,
StorageImageArrayDynamicIndexing = 31 u32,
ClipDistance = 32 u32,
CullDistance = 33 u32,
ImageCubeArray = 34 u32,
SampleRateShading = 35 u32,
ImageRect = 36 u32,
SampledRect = 37 u32,
GenericPointer = 38 u32,
Int8 = 39 u32,
InputAttachment = 40 u32,
SparseResidency = 41 u32,
MinLod = 42 u32,
Sampled1D = 43 u32,
Image1D = 44 u32,
SampledCubeArray = 45 u32,
SampledBuffer = 46 u32,
ImageBuffer = 47 u32,
ImageMSArray = 48 u32,
StorageImageExtendedFormats = 49 u32,
ImageQuery = 50 u32,
DerivativeControl = 51 u32,
InterpolationFunction = 52 u32,
TransformFeedback = 53 u32,
GeometryStreams = 54 u32,
StorageImageReadWithoutFormat = 55 u32,
StorageImageWriteWithoutFormat = 56 u32,
MultiViewport = 57 u32,
SubgroupDispatch = 58 u32,
NamedBarrier = 59 u32,
PipeStorage = 60 u32,
GroupNonUniform = 61 u32,
GroupNonUniformVote = 62 u32,
GroupNonUniformArithmetic = 63 u32,
GroupNonUniformBallot = 64 u32,
GroupNonUniformShuffle = 65 u32,
GroupNonUniformShuffleRelative = 66 u32,
GroupNonUniformClustered = 67 u32,
GroupNonUniformQuad = 68 u32,
ShaderLayer = 69 u32,
ShaderViewportIndex = 70 u32,
UniformDecoration = 71 u32,
CoreBuiltinsARM = 4165 u32,
TileImageColorReadAccessEXT = 4166 u32,
TileImageDepthReadAccessEXT = 4167 u32,
TileImageStencilReadAccessEXT = 4168 u32,
TensorsARM = 4174 u32,
StorageTensorArrayDynamicIndexingARM = 4175 u32,
StorageTensorArrayNonUniformIndexingARM = 4176 u32,
GraphARM = 4191 u32,
CooperativeMatrixLayoutsARM = 4201 u32,
Float8EXT = 4212 u32,
Float8CooperativeMatrixEXT = 4213 u32,
FragmentShadingRateKHR = 4422 u32,
SubgroupBallotKHR = 4423 u32,
DrawParameters = 4427 u32,
WorkgroupMemoryExplicitLayoutKHR = 4428 u32,
WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429 u32,
WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430 u32,
SubgroupVoteKHR = 4431 u32,
StorageBuffer16BitAccess = 4433 u32,
UniformAndStorageBuffer16BitAccess = 4434 u32,
StoragePushConstant16 = 4435 u32,
StorageInputOutput16 = 4436 u32,
DeviceGroup = 4437 u32,
MultiView = 4439 u32,
VariablePointersStorageBuffer = 4441 u32,
VariablePointers = 4442 u32,
AtomicStorageOps = 4445 u32,
SampleMaskPostDepthCoverage = 4447 u32,
StorageBuffer8BitAccess = 4448 u32,
UniformAndStorageBuffer8BitAccess = 4449 u32,
StoragePushConstant8 = 4450 u32,
DenormPreserve = 4464 u32,
DenormFlushToZero = 4465 u32,
SignedZeroInfNanPreserve = 4466 u32,
RoundingModeRTE = 4467 u32,
RoundingModeRTZ = 4468 u32,
RayQueryProvisionalKHR = 4471 u32,
RayQueryKHR = 4472 u32,
UntypedPointersKHR = 4473 u32,
RayTraversalPrimitiveCullingKHR = 4478 u32,
RayTracingKHR = 4479 u32,
TextureSampleWeightedQCOM = 4484 u32,
TextureBoxFilterQCOM = 4485 u32,
TextureBlockMatchQCOM = 4486 u32,
TileShadingQCOM = 4495 u32,
CooperativeMatrixConversionQCOM = 4496 u32,
TextureBlockMatch2QCOM = 4498 u32,
Float16ImageAMD = 5008 u32,
ImageGatherBiasLodAMD = 5009 u32,
FragmentMaskAMD = 5010 u32,
StencilExportEXT = 5013 u32,
ImageReadWriteLodAMD = 5015 u32,
Int64ImageEXT = 5016 u32,
ShaderClockKHR = 5055 u32,
ShaderEnqueueAMDX = 5067 u32,
QuadControlKHR = 5087 u32,
Int4TypeINTEL = 5112 u32,
Int4CooperativeMatrixINTEL = 5114 u32,
BFloat16TypeKHR = 5116 u32,
BFloat16DotProductKHR = 5117 u32,
BFloat16CooperativeMatrixKHR = 5118 u32,
DescriptorHeapEXT = 5128 u32,
SampleMaskOverrideCoverageNV = 5249 u32,
GeometryShaderPassthroughNV = 5251 u32,
ShaderViewportIndexLayerEXT = 5254 u32,
ShaderViewportMaskNV = 5255 u32,
ShaderStereoViewNV = 5259 u32,
PerViewAttributesNV = 5260 u32,
FragmentFullyCoveredEXT = 5265 u32,
MeshShadingNV = 5266 u32,
ImageFootprintNV = 5282 u32,
MeshShadingEXT = 5283 u32,
FragmentBarycentricKHR = 5284 u32,
ComputeDerivativeGroupQuadsKHR = 5288 u32,
FragmentDensityEXT = 5291 u32,
GroupNonUniformPartitionedEXT = 5297 u32,
ShaderNonUniform = 5301 u32,
RuntimeDescriptorArray = 5302 u32,
InputAttachmentArrayDynamicIndexing = 5303 u32,
UniformTexelBufferArrayDynamicIndexing = 5304 u32,
StorageTexelBufferArrayDynamicIndexing = 5305 u32,
UniformBufferArrayNonUniformIndexing = 5306 u32,
SampledImageArrayNonUniformIndexing = 5307 u32,
StorageBufferArrayNonUniformIndexing = 5308 u32,
StorageImageArrayNonUniformIndexing = 5309 u32,
InputAttachmentArrayNonUniformIndexing = 5310 u32,
UniformTexelBufferArrayNonUniformIndexing = 5311 u32,
StorageTexelBufferArrayNonUniformIndexing = 5312 u32,
RayTracingPositionFetchKHR = 5336 u32,
RayTracingNV = 5340 u32,
RayTracingMotionBlurNV = 5341 u32,
VulkanMemoryModel = 5345 u32,
VulkanMemoryModelDeviceScope = 5346 u32,
PhysicalStorageBufferAddresses = 5347 u32,
ComputeDerivativeGroupLinearKHR = 5350 u32,
RayTracingProvisionalKHR = 5353 u32,
CooperativeMatrixNV = 5357 u32,
FragmentShaderSampleInterlockEXT = 5363 u32,
FragmentShaderShadingRateInterlockEXT = 5372 u32,
ShaderSMBuiltinsNV = 5373 u32,
FragmentShaderPixelInterlockEXT = 5378 u32,
DemoteToHelperInvocation = 5379 u32,
DisplacementMicromapNV = 5380 u32,
RayTracingOpacityMicromapEXT = 5381 u32,
ShaderInvocationReorderNV = 5383 u32,
ShaderInvocationReorderEXT = 5388 u32,
BindlessTextureNV = 5390 u32,
RayQueryPositionFetchKHR = 5391 u32,
CooperativeVectorNV = 5394 u32,
AtomicFloat16VectorNV = 5404 u32,
RayTracingDisplacementMicromapNV = 5409 u32,
RawAccessChainsNV = 5414 u32,
RayTracingSpheresGeometryNV = 5418 u32,
RayTracingLinearSweptSpheresGeometryNV = 5419 u32,
PushConstantBanksNV = 5423 u32,
LongVectorEXT = 5425 u32,
Shader64BitIndexingEXT = 5426 u32,
CooperativeMatrixReductionsNV = 5430 u32,
CooperativeMatrixConversionsNV = 5431 u32,
CooperativeMatrixPerElementOperationsNV = 5432 u32,
CooperativeMatrixTensorAddressingNV = 5433 u32,
CooperativeMatrixBlockLoadsNV = 5434 u32,
CooperativeVectorTrainingNV = 5435 u32,
RayTracingClusterAccelerationStructureNV = 5437 u32,
TensorAddressingNV = 5439 u32,
SubgroupShuffleINTEL = 5568 u32,
SubgroupBufferBlockIOINTEL = 5569 u32,
SubgroupImageBlockIOINTEL = 5570 u32,
SubgroupImageMediaBlockIOINTEL = 5579 u32,
RoundToInfinityINTEL = 5582 u32,
FloatingPointModeINTEL = 5583 u32,
IntegerFunctions2INTEL = 5584 u32,
FunctionPointersINTEL = 5603 u32,
IndirectReferencesINTEL = 5604 u32,
AsmINTEL = 5606 u32,
AtomicFloat32MinMaxEXT = 5612 u32,
AtomicFloat64MinMaxEXT = 5613 u32,
AtomicFloat16MinMaxEXT = 5616 u32,
VectorComputeINTEL = 5617 u32,
VectorAnyINTEL = 5619 u32,
ExpectAssumeKHR = 5629 u32,
SubgroupAvcMotionEstimationINTEL = 5696 u32,
SubgroupAvcMotionEstimationIntraINTEL = 5697 u32,
SubgroupAvcMotionEstimationChromaINTEL = 5698 u32,
VariableLengthArrayINTEL = 5817 u32,
FunctionFloatControlINTEL = 5821 u32,
FPGAMemoryAttributesALTERA = 5824 u32,
FPFastMathModeINTEL = 5837 u32,
ArbitraryPrecisionIntegersALTERA = 5844 u32,
ArbitraryPrecisionFloatingPointALTERA = 5845 u32,
UnstructuredLoopControlsINTEL = 5886 u32,
FPGALoopControlsALTERA = 5888 u32,
KernelAttributesINTEL = 5892 u32,
FPGAKernelAttributesINTEL = 5897 u32,
FPGAMemoryAccessesALTERA = 5898 u32,
FPGAClusterAttributesALTERA = 5904 u32,
LoopFuseALTERA = 5906 u32,
FPGADSPControlALTERA = 5908 u32,
MemoryAccessAliasingINTEL = 5910 u32,
FPGAInvocationPipeliningAttributesALTERA = 5916 u32,
FPGABufferLocationALTERA = 5920 u32,
ArbitraryPrecisionFixedPointALTERA = 5922 u32,
USMStorageClassesALTERA = 5935 u32,
RuntimeAlignedAttributeALTERA = 5939 u32,
IOPipesALTERA = 5943 u32,
BlockingPipesALTERA = 5945 u32,
FPGARegALTERA = 5948 u32,
DotProductInputAll = 6016 u32,
DotProductInput4x8Bit = 6017 u32,
DotProductInput4x8BitPacked = 6018 u32,
DotProduct = 6019 u32,
RayCullMaskKHR = 6020 u32,
CooperativeMatrixKHR = 6022 u32,
ReplicatedCompositesEXT = 6024 u32,
BitInstructions = 6025 u32,
GroupNonUniformRotateKHR = 6026 u32,
FloatControls2 = 6029 u32,
FMAKHR = 6030 u32,
AtomicFloat32AddEXT = 6033 u32,
AtomicFloat64AddEXT = 6034 u32,
LongCompositesINTEL = 6089 u32,
OptNoneEXT = 6094 u32,
AtomicFloat16AddEXT = 6095 u32,
DebugInfoModuleINTEL = 6114 u32,
BFloat16ConversionINTEL = 6115 u32,
SplitBarrierINTEL = 6141 u32,
ArithmeticFenceEXT = 6144 u32,
FPGAClusterAttributesV2ALTERA = 6150 u32,
FPGAKernelAttributesv2INTEL = 6161 u32,
TaskSequenceALTERA = 6162 u32,
FPMaxErrorINTEL = 6169 u32,
FPGALatencyControlALTERA = 6171 u32,
FPGAArgumentInterfacesALTERA = 6174 u32,
GlobalVariableHostAccessINTEL = 6187 u32,
GlobalVariableFPGADecorationsALTERA = 6189 u32,
SubgroupBufferPrefetchINTEL = 6220 u32,
Subgroup2DBlockIOINTEL = 6228 u32,
Subgroup2DBlockTransformINTEL = 6229 u32,
Subgroup2DBlockTransposeINTEL = 6230 u32,
SubgroupMatrixMultiplyAccumulateINTEL = 6236 u32,
TernaryBitwiseFunctionINTEL = 6241 u32,
UntypedVariableLengthArrayINTEL = 6243 u32,
SpecConditionalINTEL = 6245 u32,
FunctionVariantsINTEL = 6246 u32,
GroupUniformArithmeticKHR = 6400 u32,
TensorFloat32RoundingINTEL = 6425 u32,
MaskedGatherScatterINTEL = 6427 u32,
CacheControlsINTEL = 6441 u32,
RegisterLimitsINTEL = 6460 u32,
BindlessImagesINTEL = 6528 u32,
}
impl Capability {
pub fn from_u32(n: u32) -> Option<Self > {
Some(match n {
0 u32..=15 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
17 u32..=25 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
27 u32..=71 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
4165 u32..=4168 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
4174 u32..=4176 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
4191 u32 => unsafe { core::mem::transmute::<u32, Capability>(4191 u32) },
4201 u32 => unsafe { core::mem::transmute::<u32, Capability>(4201 u32) },
4212 u32..=4213 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
4422 u32..=4423 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
4427 u32..=4431 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
4433 u32..=4437 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
4439 u32 => unsafe { core::mem::transmute::<u32, Capability>(4439 u32) },
4441 u32..=4442 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
4445 u32 => unsafe { core::mem::transmute::<u32, Capability>(4445 u32) },
4447 u32..=4450 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
4464 u32..=4468 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
4471 u32..=4473 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
4478 u32..=4479 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
4484 u32..=4486 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
4495 u32..=4496 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
4498 u32 => unsafe { core::mem::transmute::<u32, Capability>(4498 u32) },
5008 u32..=5010 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5013 u32 => unsafe { core::mem::transmute::<u32, Capability>(5013 u32) },
5015 u32..=5016 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5055 u32 => unsafe { core::mem::transmute::<u32, Capability>(5055 u32) },
5067 u32 => unsafe { core::mem::transmute::<u32, Capability>(5067 u32) },
5087 u32 => unsafe { core::mem::transmute::<u32, Capability>(5087 u32) },
5112 u32 => unsafe { core::mem::transmute::<u32, Capability>(5112 u32) },
5114 u32 => unsafe { core::mem::transmute::<u32, Capability>(5114 u32) },
5116 u32..=5118 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5128 u32 => unsafe { core::mem::transmute::<u32, Capability>(5128 u32) },
5249 u32 => unsafe { core::mem::transmute::<u32, Capability>(5249 u32) },
5251 u32 => unsafe { core::mem::transmute::<u32, Capability>(5251 u32) },
5254 u32..=5255 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5259 u32..=5260 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5265 u32..=5266 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5282 u32..=5284 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5288 u32 => unsafe { core::mem::transmute::<u32, Capability>(5288 u32) },
5291 u32 => unsafe { core::mem::transmute::<u32, Capability>(5291 u32) },
5297 u32 => unsafe { core::mem::transmute::<u32, Capability>(5297 u32) },
5301 u32..=5312 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5336 u32 => unsafe { core::mem::transmute::<u32, Capability>(5336 u32) },
5340 u32..=5341 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5345 u32..=5347 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5350 u32 => unsafe { core::mem::transmute::<u32, Capability>(5350 u32) },
5353 u32 => unsafe { core::mem::transmute::<u32, Capability>(5353 u32) },
5357 u32 => unsafe { core::mem::transmute::<u32, Capability>(5357 u32) },
5363 u32 => unsafe { core::mem::transmute::<u32, Capability>(5363 u32) },
5372 u32..=5373 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5378 u32..=5381 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5383 u32 => unsafe { core::mem::transmute::<u32, Capability>(5383 u32) },
5388 u32 => unsafe { core::mem::transmute::<u32, Capability>(5388 u32) },
5390 u32..=5391 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5394 u32 => unsafe { core::mem::transmute::<u32, Capability>(5394 u32) },
5404 u32 => unsafe { core::mem::transmute::<u32, Capability>(5404 u32) },
5409 u32 => unsafe { core::mem::transmute::<u32, Capability>(5409 u32) },
5414 u32 => unsafe { core::mem::transmute::<u32, Capability>(5414 u32) },
5418 u32..=5419 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5423 u32 => unsafe { core::mem::transmute::<u32, Capability>(5423 u32) },
5425 u32..=5426 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5430 u32..=5435 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5437 u32 => unsafe { core::mem::transmute::<u32, Capability>(5437 u32) },
5439 u32 => unsafe { core::mem::transmute::<u32, Capability>(5439 u32) },
5568 u32..=5570 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5579 u32 => unsafe { core::mem::transmute::<u32, Capability>(5579 u32) },
5582 u32..=5584 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5603 u32..=5604 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5606 u32 => unsafe { core::mem::transmute::<u32, Capability>(5606 u32) },
5612 u32..=5613 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5616 u32..=5617 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5619 u32 => unsafe { core::mem::transmute::<u32, Capability>(5619 u32) },
5629 u32 => unsafe { core::mem::transmute::<u32, Capability>(5629 u32) },
5696 u32..=5698 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5817 u32 => unsafe { core::mem::transmute::<u32, Capability>(5817 u32) },
5821 u32 => unsafe { core::mem::transmute::<u32, Capability>(5821 u32) },
5824 u32 => unsafe { core::mem::transmute::<u32, Capability>(5824 u32) },
5837 u32 => unsafe { core::mem::transmute::<u32, Capability>(5837 u32) },
5844 u32..=5845 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5886 u32 => unsafe { core::mem::transmute::<u32, Capability>(5886 u32) },
5888 u32 => unsafe { core::mem::transmute::<u32, Capability>(5888 u32) },
5892 u32 => unsafe { core::mem::transmute::<u32, Capability>(5892 u32) },
5897 u32..=5898 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
5904 u32 => unsafe { core::mem::transmute::<u32, Capability>(5904 u32) },
5906 u32 => unsafe { core::mem::transmute::<u32, Capability>(5906 u32) },
5908 u32 => unsafe { core::mem::transmute::<u32, Capability>(5908 u32) },
5910 u32 => unsafe { core::mem::transmute::<u32, Capability>(5910 u32) },
5916 u32 => unsafe { core::mem::transmute::<u32, Capability>(5916 u32) },
5920 u32 => unsafe { core::mem::transmute::<u32, Capability>(5920 u32) },
5922 u32 => unsafe { core::mem::transmute::<u32, Capability>(5922 u32) },
5935 u32 => unsafe { core::mem::transmute::<u32, Capability>(5935 u32) },
5939 u32 => unsafe { core::mem::transmute::<u32, Capability>(5939 u32) },
5943 u32 => unsafe { core::mem::transmute::<u32, Capability>(5943 u32) },
5945 u32 => unsafe { core::mem::transmute::<u32, Capability>(5945 u32) },
5948 u32 => unsafe { core::mem::transmute::<u32, Capability>(5948 u32) },
6016 u32..=6020 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
6022 u32 => unsafe { core::mem::transmute::<u32, Capability>(6022 u32) },
6024 u32..=6026 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
6029 u32..=6030 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
6033 u32..=6034 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
6089 u32 => unsafe { core::mem::transmute::<u32, Capability>(6089 u32) },
6094 u32..=6095 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
6114 u32..=6115 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
6141 u32 => unsafe { core::mem::transmute::<u32, Capability>(6141 u32) },
6144 u32 => unsafe { core::mem::transmute::<u32, Capability>(6144 u32) },
6150 u32 => unsafe { core::mem::transmute::<u32, Capability>(6150 u32) },
6161 u32..=6162 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
6169 u32 => unsafe { core::mem::transmute::<u32, Capability>(6169 u32) },
6171 u32 => unsafe { core::mem::transmute::<u32, Capability>(6171 u32) },
6174 u32 => unsafe { core::mem::transmute::<u32, Capability>(6174 u32) },
6187 u32 => unsafe { core::mem::transmute::<u32, Capability>(6187 u32) },
6189 u32 => unsafe { core::mem::transmute::<u32, Capability>(6189 u32) },
6220 u32 => unsafe { core::mem::transmute::<u32, Capability>(6220 u32) },
6228 u32..=6230 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
6236 u32 => unsafe { core::mem::transmute::<u32, Capability>(6236 u32) },
6241 u32 => unsafe { core::mem::transmute::<u32, Capability>(6241 u32) },
6243 u32 => unsafe { core::mem::transmute::<u32, Capability>(6243 u32) },
6245 u32..=6246 u32 => unsafe { core::mem::transmute::<u32, Capability>(n) },
6400 u32 => unsafe { core::mem::transmute::<u32, Capability>(6400 u32) },
6425 u32 => unsafe { core::mem::transmute::<u32, Capability>(6425 u32) },
6427 u32 => unsafe { core::mem::transmute::<u32, Capability>(6427 u32) },
6441 u32 => unsafe { core::mem::transmute::<u32, Capability>(6441 u32) },
6460 u32 => unsafe { core::mem::transmute::<u32, Capability>(6460 u32) },
6528 u32 => unsafe { core::mem::transmute::<u32, Capability>(6528 u32) },
_ => return None,
})
}
}
#[allow(non_upper_case_globals)]
impl Capability {
pub const StorageUniformBufferBlock16: Self = Self::StorageBuffer16BitAccess;
pub const StorageUniform16: Self = Self::UniformAndStorageBuffer16BitAccess;
pub const ShaderViewportIndexLayerNV: Self = Self::ShaderViewportIndexLayerEXT;
pub const FragmentBarycentricNV: Self = Self::FragmentBarycentricKHR;
pub const ComputeDerivativeGroupQuadsNV: Self = Self::ComputeDerivativeGroupQuadsKHR;
pub const ShadingRateNV: Self = Self::FragmentDensityEXT;
pub const GroupNonUniformPartitionedNV: Self = Self::GroupNonUniformPartitionedEXT;
pub const ShaderNonUniformEXT: Self = Self::ShaderNonUniform;
pub const RuntimeDescriptorArrayEXT: Self = Self::RuntimeDescriptorArray;
pub const InputAttachmentArrayDynamicIndexingEXT: Self =
Self::InputAttachmentArrayDynamicIndexing;
pub const UniformTexelBufferArrayDynamicIndexingEXT: Self =
Self::UniformTexelBufferArrayDynamicIndexing;
pub const StorageTexelBufferArrayDynamicIndexingEXT: Self =
Self::StorageTexelBufferArrayDynamicIndexing;
pub const UniformBufferArrayNonUniformIndexingEXT: Self =
Self::UniformBufferArrayNonUniformIndexing;
pub const SampledImageArrayNonUniformIndexingEXT: Self =
Self::SampledImageArrayNonUniformIndexing;
pub const StorageBufferArrayNonUniformIndexingEXT: Self =
Self::StorageBufferArrayNonUniformIndexing;
pub const StorageImageArrayNonUniformIndexingEXT: Self =
Self::StorageImageArrayNonUniformIndexing;
pub const InputAttachmentArrayNonUniformIndexingEXT: Self =
Self::InputAttachmentArrayNonUniformIndexing;
pub const UniformTexelBufferArrayNonUniformIndexingEXT: Self =
Self::UniformTexelBufferArrayNonUniformIndexing;
pub const StorageTexelBufferArrayNonUniformIndexingEXT: Self =
Self::StorageTexelBufferArrayNonUniformIndexing;
pub const VulkanMemoryModelKHR: Self = Self::VulkanMemoryModel;
pub const VulkanMemoryModelDeviceScopeKHR: Self = Self::VulkanMemoryModelDeviceScope;
pub const PhysicalStorageBufferAddressesEXT: Self = Self::PhysicalStorageBufferAddresses;
pub const ComputeDerivativeGroupLinearNV: Self = Self::ComputeDerivativeGroupLinearKHR;
pub const DemoteToHelperInvocationEXT: Self = Self::DemoteToHelperInvocation;
pub const FPGAMemoryAttributesINTEL: Self = Self::FPGAMemoryAttributesALTERA;
pub const ArbitraryPrecisionIntegersINTEL: Self = Self::ArbitraryPrecisionIntegersALTERA;
pub const ArbitraryPrecisionFloatingPointINTEL: Self =
Self::ArbitraryPrecisionFloatingPointALTERA;
pub const FPGALoopControlsINTEL: Self = Self::FPGALoopControlsALTERA;
pub const FPGAMemoryAccessesINTEL: Self = Self::FPGAMemoryAccessesALTERA;
pub const FPGAClusterAttributesINTEL: Self = Self::FPGAClusterAttributesALTERA;
pub const LoopFuseINTEL: Self = Self::LoopFuseALTERA;
pub const FPGADSPControlINTEL: Self = Self::FPGADSPControlALTERA;
pub const FPGAInvocationPipeliningAttributesINTEL: Self =
Self::FPGAInvocationPipeliningAttributesALTERA;
pub const FPGABufferLocationINTEL: Self = Self::FPGABufferLocationALTERA;
pub const ArbitraryPrecisionFixedPointINTEL: Self = Self::ArbitraryPrecisionFixedPointALTERA;
pub const USMStorageClassesINTEL: Self = Self::USMStorageClassesALTERA;
pub const RuntimeAlignedAttributeINTEL: Self = Self::RuntimeAlignedAttributeALTERA;
pub const IOPipesINTEL: Self = Self::IOPipesALTERA;
pub const BlockingPipesINTEL: Self = Self::BlockingPipesALTERA;
pub const FPGARegINTEL: Self = Self::FPGARegALTERA;
pub const DotProductInputAllKHR: Self = Self::DotProductInputAll;
pub const DotProductInput4x8BitKHR: Self = Self::DotProductInput4x8Bit;
pub const DotProductInput4x8BitPackedKHR: Self = Self::DotProductInput4x8BitPacked;
pub const DotProductKHR: Self = Self::DotProduct;
pub const OptNoneINTEL: Self = Self::OptNoneEXT;
pub const FPGAClusterAttributesV2INTEL: Self = Self::FPGAClusterAttributesV2ALTERA;
pub const TaskSequenceINTEL: Self = Self::TaskSequenceALTERA;
pub const FPGALatencyControlINTEL: Self = Self::FPGALatencyControlALTERA;
pub const FPGAArgumentInterfacesINTEL: Self = Self::FPGAArgumentInterfacesALTERA;
pub const GlobalVariableFPGADecorationsINTEL: Self = Self::GlobalVariableFPGADecorationsALTERA;
}
impl core::str::FromStr for Capability {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
Ok(match s {
"Matrix" => Self::Matrix,
"Shader" => Self::Shader,
"Geometry" => Self::Geometry,
"Tessellation" => Self::Tessellation,
"Addresses" => Self::Addresses,
"Linkage" => Self::Linkage,
"Kernel" => Self::Kernel,
"Vector16" => Self::Vector16,
"Float16Buffer" => Self::Float16Buffer,
"Float16" => Self::Float16,
"Float64" => Self::Float64,
"Int64" => Self::Int64,
"Int64Atomics" => Self::Int64Atomics,
"ImageBasic" => Self::ImageBasic,
"ImageReadWrite" => Self::ImageReadWrite,
"ImageMipmap" => Self::ImageMipmap,
"Pipes" => Self::Pipes,
"Groups" => Self::Groups,
"DeviceEnqueue" => Self::DeviceEnqueue,
"LiteralSampler" => Self::LiteralSampler,
"AtomicStorage" => Self::AtomicStorage,
"Int16" => Self::Int16,
"TessellationPointSize" => Self::TessellationPointSize,
"GeometryPointSize" => Self::GeometryPointSize,
"ImageGatherExtended" => Self::ImageGatherExtended,
"StorageImageMultisample" => Self::StorageImageMultisample,
"UniformBufferArrayDynamicIndexing" => Self::UniformBufferArrayDynamicIndexing,
"SampledImageArrayDynamicIndexing" => Self::SampledImageArrayDynamicIndexing,
"StorageBufferArrayDynamicIndexing" => Self::StorageBufferArrayDynamicIndexing,
"StorageImageArrayDynamicIndexing" => Self::StorageImageArrayDynamicIndexing,
"ClipDistance" => Self::ClipDistance,
"CullDistance" => Self::CullDistance,
"ImageCubeArray" => Self::ImageCubeArray,
"SampleRateShading" => Self::SampleRateShading,
"ImageRect" => Self::ImageRect,
"SampledRect" => Self::SampledRect,
"GenericPointer" => Self::GenericPointer,
"Int8" => Self::Int8,
"InputAttachment" => Self::InputAttachment,
"SparseResidency" => Self::SparseResidency,
"MinLod" => Self::MinLod,
"Sampled1D" => Self::Sampled1D,
"Image1D" => Self::Image1D,
"SampledCubeArray" => Self::SampledCubeArray,
"SampledBuffer" => Self::SampledBuffer,
"ImageBuffer" => Self::ImageBuffer,
"ImageMSArray" => Self::ImageMSArray,
"StorageImageExtendedFormats" => Self::StorageImageExtendedFormats,
"ImageQuery" => Self::ImageQuery,
"DerivativeControl" => Self::DerivativeControl,
"InterpolationFunction" => Self::InterpolationFunction,
"TransformFeedback" => Self::TransformFeedback,
"GeometryStreams" => Self::GeometryStreams,
"StorageImageReadWithoutFormat" => Self::StorageImageReadWithoutFormat,
"StorageImageWriteWithoutFormat" => Self::StorageImageWriteWithoutFormat,
"MultiViewport" => Self::MultiViewport,
"SubgroupDispatch" => Self::SubgroupDispatch,
"NamedBarrier" => Self::NamedBarrier,
"PipeStorage" => Self::PipeStorage,
"GroupNonUniform" => Self::GroupNonUniform,
"GroupNonUniformVote" => Self::GroupNonUniformVote,
"GroupNonUniformArithmetic" => Self::GroupNonUniformArithmetic,
"GroupNonUniformBallot" => Self::GroupNonUniformBallot,
"GroupNonUniformShuffle" => Self::GroupNonUniformShuffle,
"GroupNonUniformShuffleRelative" => Self::GroupNonUniformShuffleRelative,
"GroupNonUniformClustered" => Self::GroupNonUniformClustered,
"GroupNonUniformQuad" => Self::GroupNonUniformQuad,
"ShaderLayer" => Self::ShaderLayer,
"ShaderViewportIndex" => Self::ShaderViewportIndex,
"UniformDecoration" => Self::UniformDecoration,
"CoreBuiltinsARM" => Self::CoreBuiltinsARM,
"TileImageColorReadAccessEXT" => Self::TileImageColorReadAccessEXT,
"TileImageDepthReadAccessEXT" => Self::TileImageDepthReadAccessEXT,
"TileImageStencilReadAccessEXT" => Self::TileImageStencilReadAccessEXT,
"TensorsARM" => Self::TensorsARM,
"StorageTensorArrayDynamicIndexingARM" => Self::StorageTensorArrayDynamicIndexingARM,
"StorageTensorArrayNonUniformIndexingARM" => {
Self::StorageTensorArrayNonUniformIndexingARM
}
"GraphARM" => Self::GraphARM,
"CooperativeMatrixLayoutsARM" => Self::CooperativeMatrixLayoutsARM,
"Float8EXT" => Self::Float8EXT,
"Float8CooperativeMatrixEXT" => Self::Float8CooperativeMatrixEXT,
"FragmentShadingRateKHR" => Self::FragmentShadingRateKHR,
"SubgroupBallotKHR" => Self::SubgroupBallotKHR,
"DrawParameters" => Self::DrawParameters,
"WorkgroupMemoryExplicitLayoutKHR" => Self::WorkgroupMemoryExplicitLayoutKHR,
"WorkgroupMemoryExplicitLayout8BitAccessKHR" => {
Self::WorkgroupMemoryExplicitLayout8BitAccessKHR
}
"WorkgroupMemoryExplicitLayout16BitAccessKHR" => {
Self::WorkgroupMemoryExplicitLayout16BitAccessKHR
}
"SubgroupVoteKHR" => Self::SubgroupVoteKHR,
"StorageBuffer16BitAccess" => Self::StorageBuffer16BitAccess,
"StorageUniformBufferBlock16" => Self::StorageBuffer16BitAccess,
"UniformAndStorageBuffer16BitAccess" => Self::UniformAndStorageBuffer16BitAccess,
"StorageUniform16" => Self::UniformAndStorageBuffer16BitAccess,
"StoragePushConstant16" => Self::StoragePushConstant16,
"StorageInputOutput16" => Self::StorageInputOutput16,
"DeviceGroup" => Self::DeviceGroup,
"MultiView" => Self::MultiView,
"VariablePointersStorageBuffer" => Self::VariablePointersStorageBuffer,
"VariablePointers" => Self::VariablePointers,
"AtomicStorageOps" => Self::AtomicStorageOps,
"SampleMaskPostDepthCoverage" => Self::SampleMaskPostDepthCoverage,
"StorageBuffer8BitAccess" => Self::StorageBuffer8BitAccess,
"UniformAndStorageBuffer8BitAccess" => Self::UniformAndStorageBuffer8BitAccess,
"StoragePushConstant8" => Self::StoragePushConstant8,
"DenormPreserve" => Self::DenormPreserve,
"DenormFlushToZero" => Self::DenormFlushToZero,
"SignedZeroInfNanPreserve" => Self::SignedZeroInfNanPreserve,
"RoundingModeRTE" => Self::RoundingModeRTE,
"RoundingModeRTZ" => Self::RoundingModeRTZ,
"RayQueryProvisionalKHR" => Self::RayQueryProvisionalKHR,
"RayQueryKHR" => Self::RayQueryKHR,
"UntypedPointersKHR" => Self::UntypedPointersKHR,
"RayTraversalPrimitiveCullingKHR" => Self::RayTraversalPrimitiveCullingKHR,
"RayTracingKHR" => Self::RayTracingKHR,
"TextureSampleWeightedQCOM" => Self::TextureSampleWeightedQCOM,
"TextureBoxFilterQCOM" => Self::TextureBoxFilterQCOM,
"TextureBlockMatchQCOM" => Self::TextureBlockMatchQCOM,
"TileShadingQCOM" => Self::TileShadingQCOM,
"CooperativeMatrixConversionQCOM" => Self::CooperativeMatrixConversionQCOM,
"TextureBlockMatch2QCOM" => Self::TextureBlockMatch2QCOM,
"Float16ImageAMD" => Self::Float16ImageAMD,
"ImageGatherBiasLodAMD" => Self::ImageGatherBiasLodAMD,
"FragmentMaskAMD" => Self::FragmentMaskAMD,
"StencilExportEXT" => Self::StencilExportEXT,
"ImageReadWriteLodAMD" => Self::ImageReadWriteLodAMD,
"Int64ImageEXT" => Self::Int64ImageEXT,
"ShaderClockKHR" => Self::ShaderClockKHR,
"ShaderEnqueueAMDX" => Self::ShaderEnqueueAMDX,
"QuadControlKHR" => Self::QuadControlKHR,
"Int4TypeINTEL" => Self::Int4TypeINTEL,
"Int4CooperativeMatrixINTEL" => Self::Int4CooperativeMatrixINTEL,
"BFloat16TypeKHR" => Self::BFloat16TypeKHR,
"BFloat16DotProductKHR" => Self::BFloat16DotProductKHR,
"BFloat16CooperativeMatrixKHR" => Self::BFloat16CooperativeMatrixKHR,
"DescriptorHeapEXT" => Self::DescriptorHeapEXT,
"SampleMaskOverrideCoverageNV" => Self::SampleMaskOverrideCoverageNV,
"GeometryShaderPassthroughNV" => Self::GeometryShaderPassthroughNV,
"ShaderViewportIndexLayerEXT" => Self::ShaderViewportIndexLayerEXT,
"ShaderViewportIndexLayerNV" => Self::ShaderViewportIndexLayerEXT,
"ShaderViewportMaskNV" => Self::ShaderViewportMaskNV,
"ShaderStereoViewNV" => Self::ShaderStereoViewNV,
"PerViewAttributesNV" => Self::PerViewAttributesNV,
"FragmentFullyCoveredEXT" => Self::FragmentFullyCoveredEXT,
"MeshShadingNV" => Self::MeshShadingNV,
"ImageFootprintNV" => Self::ImageFootprintNV,
"MeshShadingEXT" => Self::MeshShadingEXT,
"FragmentBarycentricKHR" => Self::FragmentBarycentricKHR,
"FragmentBarycentricNV" => Self::FragmentBarycentricKHR,
"ComputeDerivativeGroupQuadsKHR" => Self::ComputeDerivativeGroupQuadsKHR,
"ComputeDerivativeGroupQuadsNV" => Self::ComputeDerivativeGroupQuadsKHR,
"FragmentDensityEXT" => Self::FragmentDensityEXT,
"ShadingRateNV" => Self::FragmentDensityEXT,
"GroupNonUniformPartitionedEXT" => Self::GroupNonUniformPartitionedEXT,
"GroupNonUniformPartitionedNV" => Self::GroupNonUniformPartitionedEXT,
"ShaderNonUniform" => Self::ShaderNonUniform,
"ShaderNonUniformEXT" => Self::ShaderNonUniform,
"RuntimeDescriptorArray" => Self::RuntimeDescriptorArray,
"RuntimeDescriptorArrayEXT" => Self::RuntimeDescriptorArray,
"InputAttachmentArrayDynamicIndexing" => Self::InputAttachmentArrayDynamicIndexing,
"InputAttachmentArrayDynamicIndexingEXT" => Self::InputAttachmentArrayDynamicIndexing,
"UniformTexelBufferArrayDynamicIndexing" => {
Self::UniformTexelBufferArrayDynamicIndexing
}
"UniformTexelBufferArrayDynamicIndexingEXT" => {
Self::UniformTexelBufferArrayDynamicIndexing
}
"StorageTexelBufferArrayDynamicIndexing" => {
Self::StorageTexelBufferArrayDynamicIndexing
}
"StorageTexelBufferArrayDynamicIndexingEXT" => {
Self::StorageTexelBufferArrayDynamicIndexing
}
"UniformBufferArrayNonUniformIndexing" => Self::UniformBufferArrayNonUniformIndexing,
"UniformBufferArrayNonUniformIndexingEXT" => Self::UniformBufferArrayNonUniformIndexing,
"SampledImageArrayNonUniformIndexing" => Self::SampledImageArrayNonUniformIndexing,
"SampledImageArrayNonUniformIndexingEXT" => Self::SampledImageArrayNonUniformIndexing,
"StorageBufferArrayNonUniformIndexing" => Self::StorageBufferArrayNonUniformIndexing,
"StorageBufferArrayNonUniformIndexingEXT" => Self::StorageBufferArrayNonUniformIndexing,
"StorageImageArrayNonUniformIndexing" => Self::StorageImageArrayNonUniformIndexing,
"StorageImageArrayNonUniformIndexingEXT" => Self::StorageImageArrayNonUniformIndexing,
"InputAttachmentArrayNonUniformIndexing" => {
Self::InputAttachmentArrayNonUniformIndexing
}
"InputAttachmentArrayNonUniformIndexingEXT" => {
Self::InputAttachmentArrayNonUniformIndexing
}
"UniformTexelBufferArrayNonUniformIndexing" => {
Self::UniformTexelBufferArrayNonUniformIndexing
}
"UniformTexelBufferArrayNonUniformIndexingEXT" => {
Self::UniformTexelBufferArrayNonUniformIndexing
}
"StorageTexelBufferArrayNonUniformIndexing" => {
Self::StorageTexelBufferArrayNonUniformIndexing
}
"StorageTexelBufferArrayNonUniformIndexingEXT" => {
Self::StorageTexelBufferArrayNonUniformIndexing
}
"RayTracingPositionFetchKHR" => Self::RayTracingPositionFetchKHR,
"RayTracingNV" => Self::RayTracingNV,
"RayTracingMotionBlurNV" => Self::RayTracingMotionBlurNV,
"VulkanMemoryModel" => Self::VulkanMemoryModel,
"VulkanMemoryModelKHR" => Self::VulkanMemoryModel,
"VulkanMemoryModelDeviceScope" => Self::VulkanMemoryModelDeviceScope,
"VulkanMemoryModelDeviceScopeKHR" => Self::VulkanMemoryModelDeviceScope,
"PhysicalStorageBufferAddresses" => Self::PhysicalStorageBufferAddresses,
"PhysicalStorageBufferAddressesEXT" => Self::PhysicalStorageBufferAddresses,
"ComputeDerivativeGroupLinearKHR" => Self::ComputeDerivativeGroupLinearKHR,
"ComputeDerivativeGroupLinearNV" => Self::ComputeDerivativeGroupLinearKHR,
"RayTracingProvisionalKHR" => Self::RayTracingProvisionalKHR,
"CooperativeMatrixNV" => Self::CooperativeMatrixNV,
"FragmentShaderSampleInterlockEXT" => Self::FragmentShaderSampleInterlockEXT,
"FragmentShaderShadingRateInterlockEXT" => Self::FragmentShaderShadingRateInterlockEXT,
"ShaderSMBuiltinsNV" => Self::ShaderSMBuiltinsNV,
"FragmentShaderPixelInterlockEXT" => Self::FragmentShaderPixelInterlockEXT,
"DemoteToHelperInvocation" => Self::DemoteToHelperInvocation,
"DemoteToHelperInvocationEXT" => Self::DemoteToHelperInvocation,
"DisplacementMicromapNV" => Self::DisplacementMicromapNV,
"RayTracingOpacityMicromapEXT" => Self::RayTracingOpacityMicromapEXT,
"ShaderInvocationReorderNV" => Self::ShaderInvocationReorderNV,
"ShaderInvocationReorderEXT" => Self::ShaderInvocationReorderEXT,
"BindlessTextureNV" => Self::BindlessTextureNV,
"RayQueryPositionFetchKHR" => Self::RayQueryPositionFetchKHR,
"CooperativeVectorNV" => Self::CooperativeVectorNV,
"AtomicFloat16VectorNV" => Self::AtomicFloat16VectorNV,
"RayTracingDisplacementMicromapNV" => Self::RayTracingDisplacementMicromapNV,
"RawAccessChainsNV" => Self::RawAccessChainsNV,
"RayTracingSpheresGeometryNV" => Self::RayTracingSpheresGeometryNV,
"RayTracingLinearSweptSpheresGeometryNV" => {
Self::RayTracingLinearSweptSpheresGeometryNV
}
"PushConstantBanksNV" => Self::PushConstantBanksNV,
"LongVectorEXT" => Self::LongVectorEXT,
"Shader64BitIndexingEXT" => Self::Shader64BitIndexingEXT,
"CooperativeMatrixReductionsNV" => Self::CooperativeMatrixReductionsNV,
"CooperativeMatrixConversionsNV" => Self::CooperativeMatrixConversionsNV,
"CooperativeMatrixPerElementOperationsNV" => {
Self::CooperativeMatrixPerElementOperationsNV
}
"CooperativeMatrixTensorAddressingNV" => Self::CooperativeMatrixTensorAddressingNV,
"CooperativeMatrixBlockLoadsNV" => Self::CooperativeMatrixBlockLoadsNV,
"CooperativeVectorTrainingNV" => Self::CooperativeVectorTrainingNV,
"RayTracingClusterAccelerationStructureNV" => {
Self::RayTracingClusterAccelerationStructureNV
}
"TensorAddressingNV" => Self::TensorAddressingNV,
"SubgroupShuffleINTEL" => Self::SubgroupShuffleINTEL,
"SubgroupBufferBlockIOINTEL" => Self::SubgroupBufferBlockIOINTEL,
"SubgroupImageBlockIOINTEL" => Self::SubgroupImageBlockIOINTEL,
"SubgroupImageMediaBlockIOINTEL" => Self::SubgroupImageMediaBlockIOINTEL,
"RoundToInfinityINTEL" => Self::RoundToInfinityINTEL,
"FloatingPointModeINTEL" => Self::FloatingPointModeINTEL,
"IntegerFunctions2INTEL" => Self::IntegerFunctions2INTEL,
"FunctionPointersINTEL" => Self::FunctionPointersINTEL,
"IndirectReferencesINTEL" => Self::IndirectReferencesINTEL,
"AsmINTEL" => Self::AsmINTEL,
"AtomicFloat32MinMaxEXT" => Self::AtomicFloat32MinMaxEXT,
"AtomicFloat64MinMaxEXT" => Self::AtomicFloat64MinMaxEXT,
"AtomicFloat16MinMaxEXT" => Self::AtomicFloat16MinMaxEXT,
"VectorComputeINTEL" => Self::VectorComputeINTEL,
"VectorAnyINTEL" => Self::VectorAnyINTEL,
"ExpectAssumeKHR" => Self::ExpectAssumeKHR,
"SubgroupAvcMotionEstimationINTEL" => Self::SubgroupAvcMotionEstimationINTEL,
"SubgroupAvcMotionEstimationIntraINTEL" => Self::SubgroupAvcMotionEstimationIntraINTEL,
"SubgroupAvcMotionEstimationChromaINTEL" => {
Self::SubgroupAvcMotionEstimationChromaINTEL
}
"VariableLengthArrayINTEL" => Self::VariableLengthArrayINTEL,
"FunctionFloatControlINTEL" => Self::FunctionFloatControlINTEL,
"FPGAMemoryAttributesALTERA" => Self::FPGAMemoryAttributesALTERA,
"FPGAMemoryAttributesINTEL" => Self::FPGAMemoryAttributesALTERA,
"FPFastMathModeINTEL" => Self::FPFastMathModeINTEL,
"ArbitraryPrecisionIntegersALTERA" => Self::ArbitraryPrecisionIntegersALTERA,
"ArbitraryPrecisionIntegersINTEL" => Self::ArbitraryPrecisionIntegersALTERA,
"ArbitraryPrecisionFloatingPointALTERA" => Self::ArbitraryPrecisionFloatingPointALTERA,
"ArbitraryPrecisionFloatingPointINTEL" => Self::ArbitraryPrecisionFloatingPointALTERA,
"UnstructuredLoopControlsINTEL" => Self::UnstructuredLoopControlsINTEL,
"FPGALoopControlsALTERA" => Self::FPGALoopControlsALTERA,
"FPGALoopControlsINTEL" => Self::FPGALoopControlsALTERA,
"KernelAttributesINTEL" => Self::KernelAttributesINTEL,
"FPGAKernelAttributesINTEL" => Self::FPGAKernelAttributesINTEL,
"FPGAMemoryAccessesALTERA" => Self::FPGAMemoryAccessesALTERA,
"FPGAMemoryAccessesINTEL" => Self::FPGAMemoryAccessesALTERA,
"FPGAClusterAttributesALTERA" => Self::FPGAClusterAttributesALTERA,
"FPGAClusterAttributesINTEL" => Self::FPGAClusterAttributesALTERA,
"LoopFuseALTERA" => Self::LoopFuseALTERA,
"LoopFuseINTEL" => Self::LoopFuseALTERA,
"FPGADSPControlALTERA" => Self::FPGADSPControlALTERA,
"FPGADSPControlINTEL" => Self::FPGADSPControlALTERA,
"MemoryAccessAliasingINTEL" => Self::MemoryAccessAliasingINTEL,
"FPGAInvocationPipeliningAttributesALTERA" => {
Self::FPGAInvocationPipeliningAttributesALTERA
}
"FPGAInvocationPipeliningAttributesINTEL" => {
Self::FPGAInvocationPipeliningAttributesALTERA
}
"FPGABufferLocationALTERA" => Self::FPGABufferLocationALTERA,
"FPGABufferLocationINTEL" => Self::FPGABufferLocationALTERA,
"ArbitraryPrecisionFixedPointALTERA" => Self::ArbitraryPrecisionFixedPointALTERA,
"ArbitraryPrecisionFixedPointINTEL" => Self::ArbitraryPrecisionFixedPointALTERA,
"USMStorageClassesALTERA" => Self::USMStorageClassesALTERA,
"USMStorageClassesINTEL" => Self::USMStorageClassesALTERA,
"RuntimeAlignedAttributeALTERA" => Self::RuntimeAlignedAttributeALTERA,
"RuntimeAlignedAttributeINTEL" => Self::RuntimeAlignedAttributeALTERA,
"IOPipesALTERA" => Self::IOPipesALTERA,
"IOPipesINTEL" => Self::IOPipesALTERA,
"BlockingPipesALTERA" => Self::BlockingPipesALTERA,
"BlockingPipesINTEL" => Self::BlockingPipesALTERA,
"FPGARegALTERA" => Self::FPGARegALTERA,
"FPGARegINTEL" => Self::FPGARegALTERA,
"DotProductInputAll" => Self::DotProductInputAll,
"DotProductInputAllKHR" => Self::DotProductInputAll,
"DotProductInput4x8Bit" => Self::DotProductInput4x8Bit,
"DotProductInput4x8BitKHR" => Self::DotProductInput4x8Bit,
"DotProductInput4x8BitPacked" => Self::DotProductInput4x8BitPacked,
"DotProductInput4x8BitPackedKHR" => Self::DotProductInput4x8BitPacked,
"DotProduct" => Self::DotProduct,
"DotProductKHR" => Self::DotProduct,
"RayCullMaskKHR" => Self::RayCullMaskKHR,
"CooperativeMatrixKHR" => Self::CooperativeMatrixKHR,
"ReplicatedCompositesEXT" => Self::ReplicatedCompositesEXT,
"BitInstructions" => Self::BitInstructions,
"GroupNonUniformRotateKHR" => Self::GroupNonUniformRotateKHR,
"FloatControls2" => Self::FloatControls2,
"FMAKHR" => Self::FMAKHR,
"AtomicFloat32AddEXT" => Self::AtomicFloat32AddEXT,
"AtomicFloat64AddEXT" => Self::AtomicFloat64AddEXT,
"LongCompositesINTEL" => Self::LongCompositesINTEL,
"OptNoneEXT" => Self::OptNoneEXT,
"OptNoneINTEL" => Self::OptNoneEXT,
"AtomicFloat16AddEXT" => Self::AtomicFloat16AddEXT,
"DebugInfoModuleINTEL" => Self::DebugInfoModuleINTEL,
"BFloat16ConversionINTEL" => Self::BFloat16ConversionINTEL,
"SplitBarrierINTEL" => Self::SplitBarrierINTEL,
"ArithmeticFenceEXT" => Self::ArithmeticFenceEXT,
"FPGAClusterAttributesV2ALTERA" => Self::FPGAClusterAttributesV2ALTERA,
"FPGAClusterAttributesV2INTEL" => Self::FPGAClusterAttributesV2ALTERA,
"FPGAKernelAttributesv2INTEL" => Self::FPGAKernelAttributesv2INTEL,
"TaskSequenceALTERA" => Self::TaskSequenceALTERA,
"TaskSequenceINTEL" => Self::TaskSequenceALTERA,
"FPMaxErrorINTEL" => Self::FPMaxErrorINTEL,
"FPGALatencyControlALTERA" => Self::FPGALatencyControlALTERA,
"FPGALatencyControlINTEL" => Self::FPGALatencyControlALTERA,
"FPGAArgumentInterfacesALTERA" => Self::FPGAArgumentInterfacesALTERA,
"FPGAArgumentInterfacesINTEL" => Self::FPGAArgumentInterfacesALTERA,
"GlobalVariableHostAccessINTEL" => Self::GlobalVariableHostAccessINTEL,
"GlobalVariableFPGADecorationsALTERA" => Self::GlobalVariableFPGADecorationsALTERA,
"GlobalVariableFPGADecorationsINTEL" => Self::GlobalVariableFPGADecorationsALTERA,
"SubgroupBufferPrefetchINTEL" => Self::SubgroupBufferPrefetchINTEL,
"Subgroup2DBlockIOINTEL" => Self::Subgroup2DBlockIOINTEL,
"Subgroup2DBlockTransformINTEL" => Self::Subgroup2DBlockTransformINTEL,
"Subgroup2DBlockTransposeINTEL" => Self::Subgroup2DBlockTransposeINTEL,
"SubgroupMatrixMultiplyAccumulateINTEL" => Self::SubgroupMatrixMultiplyAccumulateINTEL,
"TernaryBitwiseFunctionINTEL" => Self::TernaryBitwiseFunctionINTEL,
"UntypedVariableLengthArrayINTEL" => Self::UntypedVariableLengthArrayINTEL,
"SpecConditionalINTEL" => Self::SpecConditionalINTEL,
"FunctionVariantsINTEL" => Self::FunctionVariantsINTEL,
"GroupUniformArithmeticKHR" => Self::GroupUniformArithmeticKHR,
"TensorFloat32RoundingINTEL" => Self::TensorFloat32RoundingINTEL,
"MaskedGatherScatterINTEL" => Self::MaskedGatherScatterINTEL,
"CacheControlsINTEL" => Self::CacheControlsINTEL,
"RegisterLimitsINTEL" => Self::RegisterLimitsINTEL,
"BindlessImagesINTEL" => Self::BindlessImagesINTEL,
_ => return Err(()),
})
}
}
#[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) " ]
#[repr(u32)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[allow(clippy::upper_case_acronyms)]
pub enum RayQueryIntersection {
RayQueryCandidateIntersectionKHR = 0 u32,
RayQueryCommittedIntersectionKHR = 1 u32,
}
impl RayQueryIntersection {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32..=1 u32 => unsafe { core::mem::transmute::<u32, RayQueryIntersection>(n) },
_ => return None,
})
}
}
#[allow(non_upper_case_globals)]
impl RayQueryIntersection {}
impl core::str::FromStr for RayQueryIntersection {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
Ok(match s {
"RayQueryCandidateIntersectionKHR" => Self::RayQueryCandidateIntersectionKHR,
"RayQueryCommittedIntersectionKHR" => Self::RayQueryCommittedIntersectionKHR,
_ => return Err(()),
})
}
}
#[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) " ]
#[repr(u32)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[allow(clippy::upper_case_acronyms)]
pub enum RayQueryCommittedIntersectionType {
RayQueryCommittedIntersectionNoneKHR = 0 u32,
RayQueryCommittedIntersectionTriangleKHR = 1 u32,
RayQueryCommittedIntersectionGeneratedKHR = 2 u32,
}
impl RayQueryCommittedIntersectionType {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32..=2 u32 => unsafe {
core::mem::transmute::<u32, RayQueryCommittedIntersectionType>(n)
},
_ => return None,
})
}
}
#[allow(non_upper_case_globals)]
impl RayQueryCommittedIntersectionType {}
impl core::str::FromStr for RayQueryCommittedIntersectionType {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
Ok(match s {
"RayQueryCommittedIntersectionNoneKHR" => Self::RayQueryCommittedIntersectionNoneKHR,
"RayQueryCommittedIntersectionTriangleKHR" => {
Self::RayQueryCommittedIntersectionTriangleKHR
}
"RayQueryCommittedIntersectionGeneratedKHR" => {
Self::RayQueryCommittedIntersectionGeneratedKHR
}
_ => return Err(()),
})
}
}
#[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) " ]
#[repr(u32)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[allow(clippy::upper_case_acronyms)]
pub enum RayQueryCandidateIntersectionType {
RayQueryCandidateIntersectionTriangleKHR = 0 u32,
RayQueryCandidateIntersectionAABBKHR = 1 u32,
}
impl RayQueryCandidateIntersectionType {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32..=1 u32 => unsafe {
core::mem::transmute::<u32, RayQueryCandidateIntersectionType>(n)
},
_ => return None,
})
}
}
#[allow(non_upper_case_globals)]
impl RayQueryCandidateIntersectionType {}
impl core::str::FromStr for RayQueryCandidateIntersectionType {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
Ok(match s {
"RayQueryCandidateIntersectionTriangleKHR" => {
Self::RayQueryCandidateIntersectionTriangleKHR
}
"RayQueryCandidateIntersectionAABBKHR" => Self::RayQueryCandidateIntersectionAABBKHR,
_ => return Err(()),
})
}
}
#[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) " ]
#[repr(u32)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[allow(clippy::upper_case_acronyms)]
pub enum PackedVectorFormat {
PackedVectorFormat4x8Bit = 0 u32,
}
impl PackedVectorFormat {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32 => unsafe { core::mem::transmute::<u32, PackedVectorFormat>(0 u32) },
_ => return None,
})
}
}
#[allow(non_upper_case_globals)]
impl PackedVectorFormat {
pub const PackedVectorFormat4x8BitKHR: Self = Self::PackedVectorFormat4x8Bit;
}
impl core::str::FromStr for PackedVectorFormat {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
Ok(match s {
"PackedVectorFormat4x8Bit" => Self::PackedVectorFormat4x8Bit,
"PackedVectorFormat4x8BitKHR" => Self::PackedVectorFormat4x8Bit,
_ => return Err(()),
})
}
}
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 = 0 u32 ; const MATRIX_A_SIGNED_COMPONENTS_KHR = 1 u32 ; const MATRIX_B_SIGNED_COMPONENTS_KHR = 2 u32 ; const MATRIX_C_SIGNED_COMPONENTS_KHR = 4 u32 ; const MATRIX_RESULT_SIGNED_COMPONENTS_KHR = 8 u32 ; const SATURATING_ACCUMULATION_KHR = 16 u32 ; } }
#[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) " ]
#[repr(u32)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[allow(clippy::upper_case_acronyms)]
pub enum CooperativeMatrixLayout {
RowMajorKHR = 0 u32,
ColumnMajorKHR = 1 u32,
RowBlockedInterleavedARM = 4202 u32,
ColumnBlockedInterleavedARM = 4203 u32,
}
impl CooperativeMatrixLayout {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32..=1 u32 => unsafe { core::mem::transmute::<u32, CooperativeMatrixLayout>(n) },
4202 u32..=4203 u32 => unsafe { core::mem::transmute::<u32, CooperativeMatrixLayout>(n) },
_ => return None,
})
}
}
#[allow(non_upper_case_globals)]
impl CooperativeMatrixLayout {}
impl core::str::FromStr for CooperativeMatrixLayout {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
Ok(match s {
"RowMajorKHR" => Self::RowMajorKHR,
"ColumnMajorKHR" => Self::ColumnMajorKHR,
"RowBlockedInterleavedARM" => Self::RowBlockedInterleavedARM,
"ColumnBlockedInterleavedARM" => Self::ColumnBlockedInterleavedARM,
_ => return Err(()),
})
}
}
#[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) " ]
#[repr(u32)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[allow(clippy::upper_case_acronyms)]
pub enum CooperativeMatrixUse {
MatrixAKHR = 0 u32,
MatrixBKHR = 1 u32,
MatrixAccumulatorKHR = 2 u32,
}
impl CooperativeMatrixUse {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32..=2 u32 => unsafe { core::mem::transmute::<u32, CooperativeMatrixUse>(n) },
_ => return None,
})
}
}
#[allow(non_upper_case_globals)]
impl CooperativeMatrixUse {}
impl core::str::FromStr for CooperativeMatrixUse {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
Ok(match s {
"MatrixAKHR" => Self::MatrixAKHR,
"MatrixBKHR" => Self::MatrixBKHR,
"MatrixAccumulatorKHR" => Self::MatrixAccumulatorKHR,
_ => return Err(()),
})
}
}
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 = 1 u32 ; const COLUMN = 2 u32 ; const _2 X2 = 4 u32 ; } }
#[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) " ]
#[repr(u32)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[allow(clippy::upper_case_acronyms)]
pub enum TensorClampMode {
Undefined = 0 u32,
Constant = 1 u32,
ClampToEdge = 2 u32,
Repeat = 3 u32,
RepeatMirrored = 4 u32,
}
impl TensorClampMode {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32..=4 u32 => unsafe { core::mem::transmute::<u32, TensorClampMode>(n) },
_ => return None,
})
}
}
#[allow(non_upper_case_globals)]
impl TensorClampMode {}
impl core::str::FromStr for TensorClampMode {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
Ok(match s {
"Undefined" => Self::Undefined,
"Constant" => Self::Constant,
"ClampToEdge" => Self::ClampToEdge,
"Repeat" => Self::Repeat ,
"RepeatMirrored" => Self::RepeatMirrored,
_ => return Err(()),
})
}
}
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 = 0 u32 ; const TENSOR_VIEW = 1 u32 ; const DECODE_FUNC = 2 u32 ; } }
#[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) " ]
#[repr(u32)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[allow(clippy::upper_case_acronyms)]
pub enum InitializationModeQualifier {
InitOnDeviceReprogramALTERA = 0 u32,
InitOnDeviceResetALTERA = 1 u32,
}
impl InitializationModeQualifier {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32..=1 u32 => unsafe { core::mem::transmute::<u32, InitializationModeQualifier>(n) },
_ => return None,
})
}
}
#[allow(non_upper_case_globals)]
impl InitializationModeQualifier {
pub const InitOnDeviceReprogramINTEL: Self = Self::InitOnDeviceReprogramALTERA;
pub const InitOnDeviceResetINTEL: Self = Self::InitOnDeviceResetALTERA;
}
impl core::str::FromStr for InitializationModeQualifier {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
Ok(match s {
"InitOnDeviceReprogramALTERA" => Self::InitOnDeviceReprogramALTERA,
"InitOnDeviceReprogramINTEL" => Self::InitOnDeviceReprogramALTERA,
"InitOnDeviceResetALTERA" => Self::InitOnDeviceResetALTERA,
"InitOnDeviceResetINTEL" => Self::InitOnDeviceResetALTERA,
_ => return Err(()),
})
}
}
#[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) " ]
#[repr(u32)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[allow(clippy::upper_case_acronyms)]
pub enum LoadCacheControl {
UncachedINTEL = 0 u32,
CachedINTEL = 1 u32,
StreamingINTEL = 2 u32,
InvalidateAfterReadINTEL = 3 u32,
ConstCachedINTEL = 4 u32,
}
impl LoadCacheControl {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32..=4 u32 => unsafe { core::mem::transmute::<u32, LoadCacheControl>(n) },
_ => return None,
})
}
}
#[allow(non_upper_case_globals)]
impl LoadCacheControl {}
impl core::str::FromStr for LoadCacheControl {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
Ok(match s {
"UncachedINTEL" => Self::UncachedINTEL,
"CachedINTEL" => Self::CachedINTEL,
"StreamingINTEL" => Self::StreamingINTEL,
"InvalidateAfterReadINTEL" => Self::InvalidateAfterReadINTEL,
"ConstCachedINTEL" => Self::ConstCachedINTEL,
_ => return Err(()),
})
}
}
#[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) " ]
#[repr(u32)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[allow(clippy::upper_case_acronyms)]
pub enum StoreCacheControl {
UncachedINTEL = 0 u32,
WriteThroughINTEL = 1 u32,
WriteBackINTEL = 2 u32,
StreamingINTEL = 3 u32,
}
impl StoreCacheControl {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32..=3 u32 => unsafe { core::mem::transmute::<u32, StoreCacheControl>(n) },
_ => return None,
})
}
}
#[allow(non_upper_case_globals)]
impl StoreCacheControl {}
impl core::str::FromStr for StoreCacheControl {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
Ok(match s {
"UncachedINTEL" => Self::UncachedINTEL,
"WriteThroughINTEL" => Self::WriteThroughINTEL,
"WriteBackINTEL" => Self::WriteBackINTEL,
"StreamingINTEL" => Self::StreamingINTEL,
_ => return Err(()),
})
}
}
#[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) " ]
#[repr(u32)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[allow(clippy::upper_case_acronyms)]
pub enum NamedMaximumNumberOfRegisters {
AutoINTEL = 0 u32,
}
impl NamedMaximumNumberOfRegisters {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32 => unsafe { core::mem::transmute::<u32, NamedMaximumNumberOfRegisters>(0 u32) },
_ => return None,
})
}
}
#[allow(non_upper_case_globals)]
impl NamedMaximumNumberOfRegisters {}
impl core::str::FromStr for NamedMaximumNumberOfRegisters {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
Ok(match s {
"AutoINTEL" => Self::AutoINTEL,
_ => return Err(()),
})
}
}
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 = 0 u32 ; const MATRIX_A_SIGNED_COMPONENTS_INTEL = 1 u32 ; const MATRIX_B_SIGNED_COMPONENTS_INTEL = 2 u32 ; const MATRIX_CB_FLOAT16_INTEL = 4 u32 ; const MATRIX_RESULT_B_FLOAT16_INTEL = 8 u32 ; const MATRIX_A_PACKED_INT8_INTEL = 16 u32 ; const MATRIX_B_PACKED_INT8_INTEL = 32 u32 ; const MATRIX_A_PACKED_INT4_INTEL = 64 u32 ; const MATRIX_B_PACKED_INT4_INTEL = 128 u32 ; const MATRIX_ATF32INTEL = 256 u32 ; const MATRIX_BTF32INTEL = 512 u32 ; const MATRIX_A_PACKED_FLOAT16_INTEL = 1024 u32 ; const MATRIX_B_PACKED_FLOAT16_INTEL = 2048 u32 ; const MATRIX_A_PACKED_B_FLOAT16_INTEL = 4096 u32 ; const MATRIX_B_PACKED_B_FLOAT16_INTEL = 8192 u32 ; } }
#[doc = "SPIR-V operand kind: [FPEncoding](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_fp_encoding_a_fp_encoding) " ]
#[repr(u32)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[allow(clippy::upper_case_acronyms)]
pub enum FPEncoding {
BFloat16KHR = 0 u32,
Float8E4M3EXT = 4214 u32,
Float8E5M2EXT = 4215 u32,
}
impl FPEncoding {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32 => unsafe { core::mem::transmute::<u32, FPEncoding>(0 u32) },
4214 u32..=4215 u32 => unsafe { core::mem::transmute::<u32, FPEncoding>(n) },
_ => return None,
})
}
}
#[allow(non_upper_case_globals)]
impl FPEncoding {}
impl core::str::FromStr for FPEncoding {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
Ok(match s {
"BFloat16KHR" => Self::BFloat16KHR,
"Float8E4M3EXT" => Self::Float8E4M3EXT,
"Float8E5M2EXT" => Self::Float8E5M2EXT,
_ => return Err(()),
})
}
}
#[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) " ]
#[repr(u32)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[allow(clippy::upper_case_acronyms)]
pub enum CooperativeVectorMatrixLayout {
RowMajorNV = 0 u32,
ColumnMajorNV = 1 u32,
InferencingOptimalNV = 2 u32,
TrainingOptimalNV = 3 u32,
}
impl CooperativeVectorMatrixLayout {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32..=3 u32 => unsafe { core::mem::transmute::<u32, CooperativeVectorMatrixLayout>(n) },
_ => return None,
})
}
}
#[allow(non_upper_case_globals)]
impl CooperativeVectorMatrixLayout {}
impl core::str::FromStr for CooperativeVectorMatrixLayout {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
Ok(match s {
"RowMajorNV" => Self::RowMajorNV,
"ColumnMajorNV" => Self::ColumnMajorNV,
"InferencingOptimalNV" => Self::InferencingOptimalNV,
"TrainingOptimalNV" => Self::TrainingOptimalNV,
_ => return Err(()),
})
}
}
#[doc = "SPIR-V operand kind: [ComponentType](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_component_type_a_component_type) " ]
#[repr(u32)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[allow(clippy::upper_case_acronyms)]
pub enum ComponentType {
Float16NV = 0 u32,
Float32NV = 1 u32,
Float64NV = 2 u32,
SignedInt8NV = 3 u32,
SignedInt16NV = 4 u32,
SignedInt32NV = 5 u32,
SignedInt64NV = 6 u32,
UnsignedInt8NV = 7 u32,
UnsignedInt16NV = 8 u32,
UnsignedInt32NV = 9 u32,
UnsignedInt64NV = 10 u32,
SignedInt8PackedNV = 1000491000 u32,
UnsignedInt8PackedNV = 1000491001 u32,
FloatE4M3NV = 1000491002 u32,
FloatE5M2NV = 1000491003 u32,
}
impl ComponentType {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32..=10 u32 => unsafe { core::mem::transmute::<u32, ComponentType>(n) },
1000491000 u32..=1000491003 u32 => unsafe {
core::mem::transmute::<u32, ComponentType>(n)
},
_ => return None,
})
}
}
#[allow(non_upper_case_globals)]
impl ComponentType {}
impl core::str::FromStr for ComponentType {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
Ok(match s {
"Float16NV" => Self::Float16NV,
"Float32NV" => Self::Float32NV,
"Float64NV" => Self::Float64NV,
"SignedInt8NV" => Self::SignedInt8NV,
"SignedInt16NV" => Self::SignedInt16NV,
"SignedInt32NV" => Self::SignedInt32NV,
"SignedInt64NV" => Self::SignedInt64NV,
"UnsignedInt8NV" => Self::UnsignedInt8NV,
"UnsignedInt16NV" => Self::UnsignedInt16NV,
"UnsignedInt32NV" => Self::UnsignedInt32NV,
"UnsignedInt64NV" => Self::UnsignedInt64NV,
"SignedInt8PackedNV" => Self::SignedInt8PackedNV,
"UnsignedInt8PackedNV" => Self::UnsignedInt8PackedNV,
"FloatE4M3NV" => Self::FloatE4M3NV,
"FloatE5M2NV" => Self::FloatE5M2NV,
_ => return Err(()),
})
}
}
bitflags! { # [doc = "SPIR-V operand kind: [TensorOperands](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_tensor_operands_a_tensor_operands) " ] # [derive (Clone , Copy , Debug , PartialEq , Eq , Hash)] # [cfg_attr (feature = "serialize" , derive (serde :: Serialize))] # [cfg_attr (feature = "deserialize" , derive (serde :: Deserialize))] pub struct TensorOperands : u32 { const NONE_ARM = 0 u32 ; const NONTEMPORAL_ARM = 1 u32 ; const OUT_OF_BOUNDS_VALUE_ARM = 2 u32 ; const MAKE_ELEMENT_AVAILABLE_ARM = 4 u32 ; const MAKE_ELEMENT_VISIBLE_ARM = 8 u32 ; const NON_PRIVATE_ELEMENT_ARM = 16 u32 ; } }
#[doc = "SPIR-V [instructions](https://www.khronos.org/registry/spir-v/specs/unified1/SPIRV.html#_a_id_instructions_a_instructions) opcodes" ]
#[repr(u32)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[allow(clippy::upper_case_acronyms)]
pub enum Op {
Nop = 0 u32,
Undef = 1 u32,
SourceContinued = 2 u32,
Source = 3 u32,
SourceExtension = 4 u32,
Name = 5 u32,
MemberName = 6 u32,
String = 7 u32,
Line = 8 u32,
Extension = 10 u32,
ExtInstImport = 11 u32,
ExtInst = 12 u32,
MemoryModel = 14 u32,
EntryPoint = 15 u32,
ExecutionMode = 16 u32,
Capability = 17 u32,
TypeVoid = 19 u32,
TypeBool = 20 u32,
TypeInt = 21 u32,
TypeFloat = 22 u32,
TypeVector = 23 u32,
TypeMatrix = 24 u32,
TypeImage = 25 u32,
TypeSampler = 26 u32,
TypeSampledImage = 27 u32,
TypeArray = 28 u32,
TypeRuntimeArray = 29 u32,
TypeStruct = 30 u32,
TypeOpaque = 31 u32,
TypePointer = 32 u32,
TypeFunction = 33 u32,
TypeEvent = 34 u32,
TypeDeviceEvent = 35 u32,
TypeReserveId = 36 u32,
TypeQueue = 37 u32,
TypePipe = 38 u32,
TypeForwardPointer = 39 u32,
ConstantTrue = 41 u32,
ConstantFalse = 42 u32,
Constant = 43 u32,
ConstantComposite = 44 u32,
ConstantSampler = 45 u32,
ConstantNull = 46 u32,
SpecConstantTrue = 48 u32,
SpecConstantFalse = 49 u32,
SpecConstant = 50 u32,
SpecConstantComposite = 51 u32,
SpecConstantOp = 52 u32,
Function = 54 u32,
FunctionParameter = 55 u32,
FunctionEnd = 56 u32,
FunctionCall = 57 u32,
Variable = 59 u32,
ImageTexelPointer = 60 u32,
Load = 61 u32,
Store = 62 u32,
CopyMemory = 63 u32,
CopyMemorySized = 64 u32,
AccessChain = 65 u32,
InBoundsAccessChain = 66 u32,
PtrAccessChain = 67 u32,
ArrayLength = 68 u32,
GenericPtrMemSemantics = 69 u32,
InBoundsPtrAccessChain = 70 u32,
Decorate = 71 u32,
MemberDecorate = 72 u32,
DecorationGroup = 73 u32,
GroupDecorate = 74 u32,
GroupMemberDecorate = 75 u32,
VectorExtractDynamic = 77 u32,
VectorInsertDynamic = 78 u32,
VectorShuffle = 79 u32,
CompositeConstruct = 80 u32,
CompositeExtract = 81 u32,
CompositeInsert = 82 u32,
CopyObject = 83 u32,
Transpose = 84 u32,
SampledImage = 86 u32,
ImageSampleImplicitLod = 87 u32,
ImageSampleExplicitLod = 88 u32,
ImageSampleDrefImplicitLod = 89 u32,
ImageSampleDrefExplicitLod = 90 u32,
ImageSampleProjImplicitLod = 91 u32,
ImageSampleProjExplicitLod = 92 u32,
ImageSampleProjDrefImplicitLod = 93 u32,
ImageSampleProjDrefExplicitLod = 94 u32,
ImageFetch = 95 u32,
ImageGather = 96 u32,
ImageDrefGather = 97 u32,
ImageRead = 98 u32,
ImageWrite = 99 u32,
Image = 100 u32,
ImageQueryFormat = 101 u32,
ImageQueryOrder = 102 u32,
ImageQuerySizeLod = 103 u32,
ImageQuerySize = 104 u32,
ImageQueryLod = 105 u32,
ImageQueryLevels = 106 u32,
ImageQuerySamples = 107 u32,
ConvertFToU = 109 u32,
ConvertFToS = 110 u32,
ConvertSToF = 111 u32,
ConvertUToF = 112 u32,
UConvert = 113 u32,
SConvert = 114 u32,
FConvert = 115 u32,
QuantizeToF16 = 116 u32,
ConvertPtrToU = 117 u32,
SatConvertSToU = 118 u32,
SatConvertUToS = 119 u32,
ConvertUToPtr = 120 u32,
PtrCastToGeneric = 121 u32,
GenericCastToPtr = 122 u32,
GenericCastToPtrExplicit = 123 u32,
Bitcast = 124 u32,
SNegate = 126 u32,
FNegate = 127 u32,
IAdd = 128 u32,
FAdd = 129 u32,
ISub = 130 u32,
FSub = 131 u32,
IMul = 132 u32,
FMul = 133 u32,
UDiv = 134 u32,
SDiv = 135 u32,
FDiv = 136 u32,
UMod = 137 u32,
SRem = 138 u32,
SMod = 139 u32,
FRem = 140 u32,
FMod = 141 u32,
VectorTimesScalar = 142 u32,
MatrixTimesScalar = 143 u32,
VectorTimesMatrix = 144 u32,
MatrixTimesVector = 145 u32,
MatrixTimesMatrix = 146 u32,
OuterProduct = 147 u32,
Dot = 148 u32,
IAddCarry = 149 u32,
ISubBorrow = 150 u32,
UMulExtended = 151 u32,
SMulExtended = 152 u32,
Any = 154 u32,
All = 155 u32,
IsNan = 156 u32,
IsInf = 157 u32,
IsFinite = 158 u32,
IsNormal = 159 u32,
SignBitSet = 160 u32,
LessOrGreater = 161 u32,
Ordered = 162 u32,
Unordered = 163 u32,
LogicalEqual = 164 u32,
LogicalNotEqual = 165 u32,
LogicalOr = 166 u32,
LogicalAnd = 167 u32,
LogicalNot = 168 u32,
Select = 169 u32,
IEqual = 170 u32,
INotEqual = 171 u32,
UGreaterThan = 172 u32,
SGreaterThan = 173 u32,
UGreaterThanEqual = 174 u32,
SGreaterThanEqual = 175 u32,
ULessThan = 176 u32,
SLessThan = 177 u32,
ULessThanEqual = 178 u32,
SLessThanEqual = 179 u32,
FOrdEqual = 180 u32,
FUnordEqual = 181 u32,
FOrdNotEqual = 182 u32,
FUnordNotEqual = 183 u32,
FOrdLessThan = 184 u32,
FUnordLessThan = 185 u32,
FOrdGreaterThan = 186 u32,
FUnordGreaterThan = 187 u32,
FOrdLessThanEqual = 188 u32,
FUnordLessThanEqual = 189 u32,
FOrdGreaterThanEqual = 190 u32,
FUnordGreaterThanEqual = 191 u32,
ShiftRightLogical = 194 u32,
ShiftRightArithmetic = 195 u32,
ShiftLeftLogical = 196 u32,
BitwiseOr = 197 u32,
BitwiseXor = 198 u32,
BitwiseAnd = 199 u32,
Not = 200 u32,
BitFieldInsert = 201 u32,
BitFieldSExtract = 202 u32,
BitFieldUExtract = 203 u32,
BitReverse = 204 u32,
BitCount = 205 u32,
DPdx = 207 u32,
DPdy = 208 u32,
Fwidth = 209 u32,
DPdxFine = 210 u32,
DPdyFine = 211 u32,
FwidthFine = 212 u32,
DPdxCoarse = 213 u32,
DPdyCoarse = 214 u32,
FwidthCoarse = 215 u32,
EmitVertex = 218 u32,
EndPrimitive = 219 u32,
EmitStreamVertex = 220 u32,
EndStreamPrimitive = 221 u32,
ControlBarrier = 224 u32,
MemoryBarrier = 225 u32,
AtomicLoad = 227 u32,
AtomicStore = 228 u32,
AtomicExchange = 229 u32,
AtomicCompareExchange = 230 u32,
AtomicCompareExchangeWeak = 231 u32,
AtomicIIncrement = 232 u32,
AtomicIDecrement = 233 u32,
AtomicIAdd = 234 u32,
AtomicISub = 235 u32,
AtomicSMin = 236 u32,
AtomicUMin = 237 u32,
AtomicSMax = 238 u32,
AtomicUMax = 239 u32,
AtomicAnd = 240 u32,
AtomicOr = 241 u32,
AtomicXor = 242 u32,
Phi = 245 u32,
LoopMerge = 246 u32,
SelectionMerge = 247 u32,
Label = 248 u32,
Branch = 249 u32,
BranchConditional = 250 u32,
Switch = 251 u32,
Kill = 252 u32,
Return = 253 u32,
ReturnValue = 254 u32,
Unreachable = 255 u32,
LifetimeStart = 256 u32,
LifetimeStop = 257 u32,
GroupAsyncCopy = 259 u32,
GroupWaitEvents = 260 u32,
GroupAll = 261 u32,
GroupAny = 262 u32,
GroupBroadcast = 263 u32,
GroupIAdd = 264 u32,
GroupFAdd = 265 u32,
GroupFMin = 266 u32,
GroupUMin = 267 u32,
GroupSMin = 268 u32,
GroupFMax = 269 u32,
GroupUMax = 270 u32,
GroupSMax = 271 u32,
ReadPipe = 274 u32,
WritePipe = 275 u32,
ReservedReadPipe = 276 u32,
ReservedWritePipe = 277 u32,
ReserveReadPipePackets = 278 u32,
ReserveWritePipePackets = 279 u32,
CommitReadPipe = 280 u32,
CommitWritePipe = 281 u32,
IsValidReserveId = 282 u32,
GetNumPipePackets = 283 u32,
GetMaxPipePackets = 284 u32,
GroupReserveReadPipePackets = 285 u32,
GroupReserveWritePipePackets = 286 u32,
GroupCommitReadPipe = 287 u32,
GroupCommitWritePipe = 288 u32,
EnqueueMarker = 291 u32,
EnqueueKernel = 292 u32,
GetKernelNDrangeSubGroupCount = 293 u32,
GetKernelNDrangeMaxSubGroupSize = 294 u32,
GetKernelWorkGroupSize = 295 u32,
GetKernelPreferredWorkGroupSizeMultiple = 296 u32,
RetainEvent = 297 u32,
ReleaseEvent = 298 u32,
CreateUserEvent = 299 u32,
IsValidEvent = 300 u32,
SetUserEventStatus = 301 u32,
CaptureEventProfilingInfo = 302 u32,
GetDefaultQueue = 303 u32,
BuildNDRange = 304 u32,
ImageSparseSampleImplicitLod = 305 u32,
ImageSparseSampleExplicitLod = 306 u32,
ImageSparseSampleDrefImplicitLod = 307 u32,
ImageSparseSampleDrefExplicitLod = 308 u32,
ImageSparseSampleProjImplicitLod = 309 u32,
ImageSparseSampleProjExplicitLod = 310 u32,
ImageSparseSampleProjDrefImplicitLod = 311 u32,
ImageSparseSampleProjDrefExplicitLod = 312 u32,
ImageSparseFetch = 313 u32,
ImageSparseGather = 314 u32,
ImageSparseDrefGather = 315 u32,
ImageSparseTexelsResident = 316 u32,
NoLine = 317 u32,
AtomicFlagTestAndSet = 318 u32,
AtomicFlagClear = 319 u32,
ImageSparseRead = 320 u32,
SizeOf = 321 u32,
TypePipeStorage = 322 u32,
ConstantPipeStorage = 323 u32,
CreatePipeFromPipeStorage = 324 u32,
GetKernelLocalSizeForSubgroupCount = 325 u32,
GetKernelMaxNumSubgroups = 326 u32,
TypeNamedBarrier = 327 u32,
NamedBarrierInitialize = 328 u32,
MemoryNamedBarrier = 329 u32,
ModuleProcessed = 330 u32,
ExecutionModeId = 331 u32,
DecorateId = 332 u32,
GroupNonUniformElect = 333 u32,
GroupNonUniformAll = 334 u32,
GroupNonUniformAny = 335 u32,
GroupNonUniformAllEqual = 336 u32,
GroupNonUniformBroadcast = 337 u32,
GroupNonUniformBroadcastFirst = 338 u32,
GroupNonUniformBallot = 339 u32,
GroupNonUniformInverseBallot = 340 u32,
GroupNonUniformBallotBitExtract = 341 u32,
GroupNonUniformBallotBitCount = 342 u32,
GroupNonUniformBallotFindLSB = 343 u32,
GroupNonUniformBallotFindMSB = 344 u32,
GroupNonUniformShuffle = 345 u32,
GroupNonUniformShuffleXor = 346 u32,
GroupNonUniformShuffleUp = 347 u32,
GroupNonUniformShuffleDown = 348 u32,
GroupNonUniformIAdd = 349 u32,
GroupNonUniformFAdd = 350 u32,
GroupNonUniformIMul = 351 u32,
GroupNonUniformFMul = 352 u32,
GroupNonUniformSMin = 353 u32,
GroupNonUniformUMin = 354 u32,
GroupNonUniformFMin = 355 u32,
GroupNonUniformSMax = 356 u32,
GroupNonUniformUMax = 357 u32,
GroupNonUniformFMax = 358 u32,
GroupNonUniformBitwiseAnd = 359 u32,
GroupNonUniformBitwiseOr = 360 u32,
GroupNonUniformBitwiseXor = 361 u32,
GroupNonUniformLogicalAnd = 362 u32,
GroupNonUniformLogicalOr = 363 u32,
GroupNonUniformLogicalXor = 364 u32,
GroupNonUniformQuadBroadcast = 365 u32,
GroupNonUniformQuadSwap = 366 u32,
CopyLogical = 400 u32,
PtrEqual = 401 u32,
PtrNotEqual = 402 u32,
PtrDiff = 403 u32,
ColorAttachmentReadEXT = 4160 u32,
DepthAttachmentReadEXT = 4161 u32,
StencilAttachmentReadEXT = 4162 u32,
TypeTensorARM = 4163 u32,
TensorReadARM = 4164 u32,
TensorWriteARM = 4165 u32,
TensorQuerySizeARM = 4166 u32,
GraphConstantARM = 4181 u32,
GraphEntryPointARM = 4182 u32,
GraphARM = 4183 u32,
GraphInputARM = 4184 u32,
GraphSetOutputARM = 4185 u32,
GraphEndARM = 4186 u32,
TypeGraphARM = 4190 u32,
TerminateInvocation = 4416 u32,
TypeUntypedPointerKHR = 4417 u32,
UntypedVariableKHR = 4418 u32,
UntypedAccessChainKHR = 4419 u32,
UntypedInBoundsAccessChainKHR = 4420 u32,
SubgroupBallotKHR = 4421 u32,
SubgroupFirstInvocationKHR = 4422 u32,
UntypedPtrAccessChainKHR = 4423 u32,
UntypedInBoundsPtrAccessChainKHR = 4424 u32,
UntypedArrayLengthKHR = 4425 u32,
UntypedPrefetchKHR = 4426 u32,
FmaKHR = 4427 u32,
SubgroupAllKHR = 4428 u32,
SubgroupAnyKHR = 4429 u32,
SubgroupAllEqualKHR = 4430 u32,
GroupNonUniformRotateKHR = 4431 u32,
SubgroupReadInvocationKHR = 4432 u32,
ExtInstWithForwardRefsKHR = 4433 u32,
UntypedGroupAsyncCopyKHR = 4434 u32,
TraceRayKHR = 4445 u32,
ExecuteCallableKHR = 4446 u32,
ConvertUToAccelerationStructureKHR = 4447 u32,
IgnoreIntersectionKHR = 4448 u32,
TerminateRayKHR = 4449 u32,
SDot = 4450 u32,
UDot = 4451 u32,
SUDot = 4452 u32,
SDotAccSat = 4453 u32,
UDotAccSat = 4454 u32,
SUDotAccSat = 4455 u32,
TypeCooperativeMatrixKHR = 4456 u32,
CooperativeMatrixLoadKHR = 4457 u32,
CooperativeMatrixStoreKHR = 4458 u32,
CooperativeMatrixMulAddKHR = 4459 u32,
CooperativeMatrixLengthKHR = 4460 u32,
ConstantCompositeReplicateEXT = 4461 u32,
SpecConstantCompositeReplicateEXT = 4462 u32,
CompositeConstructReplicateEXT = 4463 u32,
TypeRayQueryKHR = 4472 u32,
RayQueryInitializeKHR = 4473 u32,
RayQueryTerminateKHR = 4474 u32,
RayQueryGenerateIntersectionKHR = 4475 u32,
RayQueryConfirmIntersectionKHR = 4476 u32,
RayQueryProceedKHR = 4477 u32,
RayQueryGetIntersectionTypeKHR = 4479 u32,
ImageSampleWeightedQCOM = 4480 u32,
ImageBoxFilterQCOM = 4481 u32,
ImageBlockMatchSSDQCOM = 4482 u32,
ImageBlockMatchSADQCOM = 4483 u32,
BitCastArrayQCOM = 4497 u32,
ImageBlockMatchWindowSSDQCOM = 4500 u32,
ImageBlockMatchWindowSADQCOM = 4501 u32,
ImageBlockMatchGatherSSDQCOM = 4502 u32,
ImageBlockMatchGatherSADQCOM = 4503 u32,
CompositeConstructCoopMatQCOM = 4540 u32,
CompositeExtractCoopMatQCOM = 4541 u32,
ExtractSubArrayQCOM = 4542 u32,
GroupIAddNonUniformAMD = 5000 u32,
GroupFAddNonUniformAMD = 5001 u32,
GroupFMinNonUniformAMD = 5002 u32,
GroupUMinNonUniformAMD = 5003 u32,
GroupSMinNonUniformAMD = 5004 u32,
GroupFMaxNonUniformAMD = 5005 u32,
GroupUMaxNonUniformAMD = 5006 u32,
GroupSMaxNonUniformAMD = 5007 u32,
FragmentMaskFetchAMD = 5011 u32,
FragmentFetchAMD = 5012 u32,
ReadClockKHR = 5056 u32,
AllocateNodePayloadsAMDX = 5074 u32,
EnqueueNodePayloadsAMDX = 5075 u32,
TypeNodePayloadArrayAMDX = 5076 u32,
FinishWritingNodePayloadAMDX = 5078 u32,
NodePayloadArrayLengthAMDX = 5090 u32,
IsNodePayloadValidAMDX = 5101 u32,
ConstantStringAMDX = 5103 u32,
SpecConstantStringAMDX = 5104 u32,
GroupNonUniformQuadAllKHR = 5110 u32,
GroupNonUniformQuadAnyKHR = 5111 u32,
TypeBufferEXT = 5115 u32,
BufferPointerEXT = 5119 u32,
UntypedImageTexelPointerEXT = 5126 u32,
MemberDecorateIdEXT = 5127 u32,
ConstantSizeOfEXT = 5129 u32,
HitObjectRecordHitMotionNV = 5249 u32,
HitObjectRecordHitWithIndexMotionNV = 5250 u32,
HitObjectRecordMissMotionNV = 5251 u32,
HitObjectGetWorldToObjectNV = 5252 u32,
HitObjectGetObjectToWorldNV = 5253 u32,
HitObjectGetObjectRayDirectionNV = 5254 u32,
HitObjectGetObjectRayOriginNV = 5255 u32,
HitObjectTraceRayMotionNV = 5256 u32,
HitObjectGetShaderRecordBufferHandleNV = 5257 u32,
HitObjectGetShaderBindingTableRecordIndexNV = 5258 u32,
HitObjectRecordEmptyNV = 5259 u32,
HitObjectTraceRayNV = 5260 u32,
HitObjectRecordHitNV = 5261 u32,
HitObjectRecordHitWithIndexNV = 5262 u32,
HitObjectRecordMissNV = 5263 u32,
HitObjectExecuteShaderNV = 5264 u32,
HitObjectGetCurrentTimeNV = 5265 u32,
HitObjectGetAttributesNV = 5266 u32,
HitObjectGetHitKindNV = 5267 u32,
HitObjectGetPrimitiveIndexNV = 5268 u32,
HitObjectGetGeometryIndexNV = 5269 u32,
HitObjectGetInstanceIdNV = 5270 u32,
HitObjectGetInstanceCustomIndexNV = 5271 u32,
HitObjectGetWorldRayDirectionNV = 5272 u32,
HitObjectGetWorldRayOriginNV = 5273 u32,
HitObjectGetRayTMaxNV = 5274 u32,
HitObjectGetRayTMinNV = 5275 u32,
HitObjectIsEmptyNV = 5276 u32,
HitObjectIsHitNV = 5277 u32,
HitObjectIsMissNV = 5278 u32,
ReorderThreadWithHitObjectNV = 5279 u32,
ReorderThreadWithHintNV = 5280 u32,
TypeHitObjectNV = 5281 u32,
ImageSampleFootprintNV = 5283 u32,
TypeVectorIdEXT = 5288 u32,
CooperativeVectorMatrixMulNV = 5289 u32,
CooperativeVectorOuterProductAccumulateNV = 5290 u32,
CooperativeVectorReduceSumAccumulateNV = 5291 u32,
CooperativeVectorMatrixMulAddNV = 5292 u32,
CooperativeMatrixConvertNV = 5293 u32,
EmitMeshTasksEXT = 5294 u32,
SetMeshOutputsEXT = 5295 u32,
GroupNonUniformPartitionEXT = 5296 u32,
WritePackedPrimitiveIndices4x8NV = 5299 u32,
FetchMicroTriangleVertexPositionNV = 5300 u32,
FetchMicroTriangleVertexBarycentricNV = 5301 u32,
CooperativeVectorLoadNV = 5302 u32,
CooperativeVectorStoreNV = 5303 u32,
HitObjectRecordFromQueryEXT = 5304 u32,
HitObjectRecordMissEXT = 5305 u32,
HitObjectRecordMissMotionEXT = 5306 u32,
HitObjectGetIntersectionTriangleVertexPositionsEXT = 5307 u32,
HitObjectGetRayFlagsEXT = 5308 u32,
HitObjectSetShaderBindingTableRecordIndexEXT = 5309 u32,
HitObjectReorderExecuteShaderEXT = 5310 u32,
HitObjectTraceReorderExecuteEXT = 5311 u32,
HitObjectTraceMotionReorderExecuteEXT = 5312 u32,
TypeHitObjectEXT = 5313 u32,
ReorderThreadWithHintEXT = 5314 u32,
ReorderThreadWithHitObjectEXT = 5315 u32,
HitObjectTraceRayEXT = 5316 u32,
HitObjectTraceRayMotionEXT = 5317 u32,
HitObjectRecordEmptyEXT = 5318 u32,
HitObjectExecuteShaderEXT = 5319 u32,
HitObjectGetCurrentTimeEXT = 5320 u32,
HitObjectGetAttributesEXT = 5321 u32,
HitObjectGetHitKindEXT = 5322 u32,
HitObjectGetPrimitiveIndexEXT = 5323 u32,
HitObjectGetGeometryIndexEXT = 5324 u32,
HitObjectGetInstanceIdEXT = 5325 u32,
HitObjectGetInstanceCustomIndexEXT = 5326 u32,
HitObjectGetObjectRayOriginEXT = 5327 u32,
HitObjectGetObjectRayDirectionEXT = 5328 u32,
HitObjectGetWorldRayDirectionEXT = 5329 u32,
HitObjectGetWorldRayOriginEXT = 5330 u32,
HitObjectGetObjectToWorldEXT = 5331 u32,
HitObjectGetWorldToObjectEXT = 5332 u32,
HitObjectGetRayTMaxEXT = 5333 u32,
ReportIntersectionKHR = 5334 u32,
IgnoreIntersectionNV = 5335 u32,
TerminateRayNV = 5336 u32,
TraceNV = 5337 u32,
TraceMotionNV = 5338 u32,
TraceRayMotionNV = 5339 u32,
RayQueryGetIntersectionTriangleVertexPositionsKHR = 5340 u32,
TypeAccelerationStructureKHR = 5341 u32,
ExecuteCallableNV = 5344 u32,
RayQueryGetIntersectionClusterIdNV = 5345 u32,
HitObjectGetClusterIdNV = 5346 u32,
HitObjectGetRayTMinEXT = 5347 u32,
HitObjectGetShaderBindingTableRecordIndexEXT = 5348 u32,
HitObjectGetShaderRecordBufferHandleEXT = 5349 u32,
HitObjectIsEmptyEXT = 5350 u32,
HitObjectIsHitEXT = 5351 u32,
HitObjectIsMissEXT = 5352 u32,
TypeCooperativeMatrixNV = 5358 u32,
CooperativeMatrixLoadNV = 5359 u32,
CooperativeMatrixStoreNV = 5360 u32,
CooperativeMatrixMulAddNV = 5361 u32,
CooperativeMatrixLengthNV = 5362 u32,
BeginInvocationInterlockEXT = 5364 u32,
EndInvocationInterlockEXT = 5365 u32,
CooperativeMatrixReduceNV = 5366 u32,
CooperativeMatrixLoadTensorNV = 5367 u32,
CooperativeMatrixStoreTensorNV = 5368 u32,
CooperativeMatrixPerElementOpNV = 5369 u32,
TypeTensorLayoutNV = 5370 u32,
TypeTensorViewNV = 5371 u32,
CreateTensorLayoutNV = 5372 u32,
TensorLayoutSetDimensionNV = 5373 u32,
TensorLayoutSetStrideNV = 5374 u32,
TensorLayoutSliceNV = 5375 u32,
TensorLayoutSetClampValueNV = 5376 u32,
CreateTensorViewNV = 5377 u32,
TensorViewSetDimensionNV = 5378 u32,
TensorViewSetStrideNV = 5379 u32,
DemoteToHelperInvocation = 5380 u32,
IsHelperInvocationEXT = 5381 u32,
TensorViewSetClipNV = 5382 u32,
TensorLayoutSetBlockSizeNV = 5384 u32,
CooperativeMatrixTransposeNV = 5390 u32,
ConvertUToImageNV = 5391 u32,
ConvertUToSamplerNV = 5392 u32,
ConvertImageToUNV = 5393 u32,
ConvertSamplerToUNV = 5394 u32,
ConvertUToSampledImageNV = 5395 u32,
ConvertSampledImageToUNV = 5396 u32,
SamplerImageAddressingModeNV = 5397 u32,
RawAccessChainNV = 5398 u32,
RayQueryGetIntersectionSpherePositionNV = 5427 u32,
RayQueryGetIntersectionSphereRadiusNV = 5428 u32,
RayQueryGetIntersectionLSSPositionsNV = 5429 u32,
RayQueryGetIntersectionLSSRadiiNV = 5430 u32,
RayQueryGetIntersectionLSSHitValueNV = 5431 u32,
HitObjectGetSpherePositionNV = 5432 u32,
HitObjectGetSphereRadiusNV = 5433 u32,
HitObjectGetLSSPositionsNV = 5434 u32,
HitObjectGetLSSRadiiNV = 5435 u32,
HitObjectIsSphereHitNV = 5436 u32,
HitObjectIsLSSHitNV = 5437 u32,
RayQueryIsSphereHitNV = 5438 u32,
RayQueryIsLSSHitNV = 5439 u32,
SubgroupShuffleINTEL = 5571 u32,
SubgroupShuffleDownINTEL = 5572 u32,
SubgroupShuffleUpINTEL = 5573 u32,
SubgroupShuffleXorINTEL = 5574 u32,
SubgroupBlockReadINTEL = 5575 u32,
SubgroupBlockWriteINTEL = 5576 u32,
SubgroupImageBlockReadINTEL = 5577 u32,
SubgroupImageBlockWriteINTEL = 5578 u32,
SubgroupImageMediaBlockReadINTEL = 5580 u32,
SubgroupImageMediaBlockWriteINTEL = 5581 u32,
UCountLeadingZerosINTEL = 5585 u32,
UCountTrailingZerosINTEL = 5586 u32,
AbsISubINTEL = 5587 u32,
AbsUSubINTEL = 5588 u32,
IAddSatINTEL = 5589 u32,
UAddSatINTEL = 5590 u32,
IAverageINTEL = 5591 u32,
UAverageINTEL = 5592 u32,
IAverageRoundedINTEL = 5593 u32,
UAverageRoundedINTEL = 5594 u32,
ISubSatINTEL = 5595 u32,
USubSatINTEL = 5596 u32,
IMul32x16INTEL = 5597 u32,
UMul32x16INTEL = 5598 u32,
ConstantFunctionPointerINTEL = 5600 u32,
FunctionPointerCallINTEL = 5601 u32,
AsmTargetINTEL = 5609 u32,
AsmINTEL = 5610 u32,
AsmCallINTEL = 5611 u32,
AtomicFMinEXT = 5614 u32,
AtomicFMaxEXT = 5615 u32,
AssumeTrueKHR = 5630 u32,
ExpectKHR = 5631 u32,
DecorateString = 5632 u32,
MemberDecorateString = 5633 u32,
VmeImageINTEL = 5699 u32,
TypeVmeImageINTEL = 5700 u32,
TypeAvcImePayloadINTEL = 5701 u32,
TypeAvcRefPayloadINTEL = 5702 u32,
TypeAvcSicPayloadINTEL = 5703 u32,
TypeAvcMcePayloadINTEL = 5704 u32,
TypeAvcMceResultINTEL = 5705 u32,
TypeAvcImeResultINTEL = 5706 u32,
TypeAvcImeResultSingleReferenceStreamoutINTEL = 5707 u32,
TypeAvcImeResultDualReferenceStreamoutINTEL = 5708 u32,
TypeAvcImeSingleReferenceStreaminINTEL = 5709 u32,
TypeAvcImeDualReferenceStreaminINTEL = 5710 u32,
TypeAvcRefResultINTEL = 5711 u32,
TypeAvcSicResultINTEL = 5712 u32,
SubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713 u32,
SubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714 u32,
SubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715 u32,
SubgroupAvcMceSetInterShapePenaltyINTEL = 5716 u32,
SubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717 u32,
SubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718 u32,
SubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719 u32,
SubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720 u32,
SubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721 u32,
SubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722 u32,
SubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723 u32,
SubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724 u32,
SubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725 u32,
SubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726 u32,
SubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727 u32,
SubgroupAvcMceSetAcOnlyHaarINTEL = 5728 u32,
SubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729 u32,
SubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730 u32,
SubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731 u32,
SubgroupAvcMceConvertToImePayloadINTEL = 5732 u32,
SubgroupAvcMceConvertToImeResultINTEL = 5733 u32,
SubgroupAvcMceConvertToRefPayloadINTEL = 5734 u32,
SubgroupAvcMceConvertToRefResultINTEL = 5735 u32,
SubgroupAvcMceConvertToSicPayloadINTEL = 5736 u32,
SubgroupAvcMceConvertToSicResultINTEL = 5737 u32,
SubgroupAvcMceGetMotionVectorsINTEL = 5738 u32,
SubgroupAvcMceGetInterDistortionsINTEL = 5739 u32,
SubgroupAvcMceGetBestInterDistortionsINTEL = 5740 u32,
SubgroupAvcMceGetInterMajorShapeINTEL = 5741 u32,
SubgroupAvcMceGetInterMinorShapeINTEL = 5742 u32,
SubgroupAvcMceGetInterDirectionsINTEL = 5743 u32,
SubgroupAvcMceGetInterMotionVectorCountINTEL = 5744 u32,
SubgroupAvcMceGetInterReferenceIdsINTEL = 5745 u32,
SubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746 u32,
SubgroupAvcImeInitializeINTEL = 5747 u32,
SubgroupAvcImeSetSingleReferenceINTEL = 5748 u32,
SubgroupAvcImeSetDualReferenceINTEL = 5749 u32,
SubgroupAvcImeRefWindowSizeINTEL = 5750 u32,
SubgroupAvcImeAdjustRefOffsetINTEL = 5751 u32,
SubgroupAvcImeConvertToMcePayloadINTEL = 5752 u32,
SubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753 u32,
SubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754 u32,
SubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755 u32,
SubgroupAvcImeSetWeightedSadINTEL = 5756 u32,
SubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757 u32,
SubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758 u32,
SubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759 u32,
SubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760 u32,
SubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761 u32,
SubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762 u32,
SubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763 u32,
SubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764 u32,
SubgroupAvcImeConvertToMceResultINTEL = 5765 u32,
SubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766 u32,
SubgroupAvcImeGetDualReferenceStreaminINTEL = 5767 u32,
SubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768 u32,
SubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769 u32,
SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770 u32,
SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771 u32,
SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772 u32,
SubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773 u32,
SubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774 u32,
SubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775 u32,
SubgroupAvcImeGetBorderReachedINTEL = 5776 u32,
SubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777 u32,
SubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778 u32,
SubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779 u32,
SubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780 u32,
SubgroupAvcFmeInitializeINTEL = 5781 u32,
SubgroupAvcBmeInitializeINTEL = 5782 u32,
SubgroupAvcRefConvertToMcePayloadINTEL = 5783 u32,
SubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784 u32,
SubgroupAvcRefSetBilinearFilterEnableINTEL = 5785 u32,
SubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786 u32,
SubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787 u32,
SubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788 u32,
SubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789 u32,
SubgroupAvcRefConvertToMceResultINTEL = 5790 u32,
SubgroupAvcSicInitializeINTEL = 5791 u32,
SubgroupAvcSicConfigureSkcINTEL = 5792 u32,
SubgroupAvcSicConfigureIpeLumaINTEL = 5793 u32,
SubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794 u32,
SubgroupAvcSicGetMotionVectorMaskINTEL = 5795 u32,
SubgroupAvcSicConvertToMcePayloadINTEL = 5796 u32,
SubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797 u32,
SubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798 u32,
SubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799 u32,
SubgroupAvcSicSetBilinearFilterEnableINTEL = 5800 u32,
SubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801 u32,
SubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802 u32,
SubgroupAvcSicEvaluateIpeINTEL = 5803 u32,
SubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804 u32,
SubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805 u32,
SubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806 u32,
SubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807 u32,
SubgroupAvcSicConvertToMceResultINTEL = 5808 u32,
SubgroupAvcSicGetIpeLumaShapeINTEL = 5809 u32,
SubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810 u32,
SubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811 u32,
SubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812 u32,
SubgroupAvcSicGetIpeChromaModeINTEL = 5813 u32,
SubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814 u32,
SubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815 u32,
SubgroupAvcSicGetInterRawSadsINTEL = 5816 u32,
VariableLengthArrayINTEL = 5818 u32,
SaveMemoryINTEL = 5819 u32,
RestoreMemoryINTEL = 5820 u32,
ArbitraryFloatSinCosPiALTERA = 5840 u32,
ArbitraryFloatCastALTERA = 5841 u32,
ArbitraryFloatCastFromIntALTERA = 5842 u32,
ArbitraryFloatCastToIntALTERA = 5843 u32,
ArbitraryFloatAddALTERA = 5846 u32,
ArbitraryFloatSubALTERA = 5847 u32,
ArbitraryFloatMulALTERA = 5848 u32,
ArbitraryFloatDivALTERA = 5849 u32,
ArbitraryFloatGTALTERA = 5850 u32,
ArbitraryFloatGEALTERA = 5851 u32,
ArbitraryFloatLTALTERA = 5852 u32,
ArbitraryFloatLEALTERA = 5853 u32,
ArbitraryFloatEQALTERA = 5854 u32,
ArbitraryFloatRecipALTERA = 5855 u32,
ArbitraryFloatRSqrtALTERA = 5856 u32,
ArbitraryFloatCbrtALTERA = 5857 u32,
ArbitraryFloatHypotALTERA = 5858 u32,
ArbitraryFloatSqrtALTERA = 5859 u32,
ArbitraryFloatLogINTEL = 5860 u32,
ArbitraryFloatLog2INTEL = 5861 u32,
ArbitraryFloatLog10INTEL = 5862 u32,
ArbitraryFloatLog1pINTEL = 5863 u32,
ArbitraryFloatExpINTEL = 5864 u32,
ArbitraryFloatExp2INTEL = 5865 u32,
ArbitraryFloatExp10INTEL = 5866 u32,
ArbitraryFloatExpm1INTEL = 5867 u32,
ArbitraryFloatSinINTEL = 5868 u32,
ArbitraryFloatCosINTEL = 5869 u32,
ArbitraryFloatSinCosINTEL = 5870 u32,
ArbitraryFloatSinPiINTEL = 5871 u32,
ArbitraryFloatCosPiINTEL = 5872 u32,
ArbitraryFloatASinINTEL = 5873 u32,
ArbitraryFloatASinPiINTEL = 5874 u32,
ArbitraryFloatACosINTEL = 5875 u32,
ArbitraryFloatACosPiINTEL = 5876 u32,
ArbitraryFloatATanINTEL = 5877 u32,
ArbitraryFloatATanPiINTEL = 5878 u32,
ArbitraryFloatATan2INTEL = 5879 u32,
ArbitraryFloatPowINTEL = 5880 u32,
ArbitraryFloatPowRINTEL = 5881 u32,
ArbitraryFloatPowNINTEL = 5882 u32,
LoopControlINTEL = 5887 u32,
AliasDomainDeclINTEL = 5911 u32,
AliasScopeDeclINTEL = 5912 u32,
AliasScopeListDeclINTEL = 5913 u32,
FixedSqrtALTERA = 5923 u32,
FixedRecipALTERA = 5924 u32,
FixedRsqrtALTERA = 5925 u32,
FixedSinALTERA = 5926 u32,
FixedCosALTERA = 5927 u32,
FixedSinCosALTERA = 5928 u32,
FixedSinPiALTERA = 5929 u32,
FixedCosPiALTERA = 5930 u32,
FixedSinCosPiALTERA = 5931 u32,
FixedLogALTERA = 5932 u32,
FixedExpALTERA = 5933 u32,
PtrCastToCrossWorkgroupALTERA = 5934 u32,
CrossWorkgroupCastToPtrALTERA = 5938 u32,
ReadPipeBlockingALTERA = 5946 u32,
WritePipeBlockingALTERA = 5947 u32,
FPGARegALTERA = 5949 u32,
RayQueryGetRayTMinKHR = 6016 u32,
RayQueryGetRayFlagsKHR = 6017 u32,
RayQueryGetIntersectionTKHR = 6018 u32,
RayQueryGetIntersectionInstanceCustomIndexKHR = 6019 u32,
RayQueryGetIntersectionInstanceIdKHR = 6020 u32,
RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021 u32,
RayQueryGetIntersectionGeometryIndexKHR = 6022 u32,
RayQueryGetIntersectionPrimitiveIndexKHR = 6023 u32,
RayQueryGetIntersectionBarycentricsKHR = 6024 u32,
RayQueryGetIntersectionFrontFaceKHR = 6025 u32,
RayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026 u32,
RayQueryGetIntersectionObjectRayDirectionKHR = 6027 u32,
RayQueryGetIntersectionObjectRayOriginKHR = 6028 u32,
RayQueryGetWorldRayDirectionKHR = 6029 u32,
RayQueryGetWorldRayOriginKHR = 6030 u32,
RayQueryGetIntersectionObjectToWorldKHR = 6031 u32,
RayQueryGetIntersectionWorldToObjectKHR = 6032 u32,
AtomicFAddEXT = 6035 u32,
TypeBufferSurfaceINTEL = 6086 u32,
TypeStructContinuedINTEL = 6090 u32,
ConstantCompositeContinuedINTEL = 6091 u32,
SpecConstantCompositeContinuedINTEL = 6092 u32,
CompositeConstructContinuedINTEL = 6096 u32,
ConvertFToBF16INTEL = 6116 u32,
ConvertBF16ToFINTEL = 6117 u32,
ControlBarrierArriveINTEL = 6142 u32,
ControlBarrierWaitINTEL = 6143 u32,
ArithmeticFenceEXT = 6145 u32,
TaskSequenceCreateALTERA = 6163 u32,
TaskSequenceAsyncALTERA = 6164 u32,
TaskSequenceGetALTERA = 6165 u32,
TaskSequenceReleaseALTERA = 6166 u32,
TypeTaskSequenceALTERA = 6199 u32,
SubgroupBlockPrefetchINTEL = 6221 u32,
Subgroup2DBlockLoadINTEL = 6231 u32,
Subgroup2DBlockLoadTransformINTEL = 6232 u32,
Subgroup2DBlockLoadTransposeINTEL = 6233 u32,
Subgroup2DBlockPrefetchINTEL = 6234 u32,
Subgroup2DBlockStoreINTEL = 6235 u32,
SubgroupMatrixMultiplyAccumulateINTEL = 6237 u32,
BitwiseFunctionINTEL = 6242 u32,
UntypedVariableLengthArrayINTEL = 6244 u32,
ConditionalExtensionINTEL = 6248 u32,
ConditionalEntryPointINTEL = 6249 u32,
ConditionalCapabilityINTEL = 6250 u32,
SpecConstantTargetINTEL = 6251 u32,
SpecConstantArchitectureINTEL = 6252 u32,
SpecConstantCapabilitiesINTEL = 6253 u32,
ConditionalCopyObjectINTEL = 6254 u32,
GroupIMulKHR = 6401 u32,
GroupFMulKHR = 6402 u32,
GroupBitwiseAndKHR = 6403 u32,
GroupBitwiseOrKHR = 6404 u32,
GroupBitwiseXorKHR = 6405 u32,
GroupLogicalAndKHR = 6406 u32,
GroupLogicalOrKHR = 6407 u32,
GroupLogicalXorKHR = 6408 u32,
RoundFToTF32INTEL = 6426 u32,
MaskedGatherINTEL = 6428 u32,
MaskedScatterINTEL = 6429 u32,
ConvertHandleToImageINTEL = 6529 u32,
ConvertHandleToSamplerINTEL = 6530 u32,
ConvertHandleToSampledImageINTEL = 6531 u32,
}
impl Op {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32..=8 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
10 u32..=12 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
14 u32..=17 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
19 u32..=39 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
41 u32..=46 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
48 u32..=52 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
54 u32..=57 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
59 u32..=75 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
77 u32..=84 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
86 u32..=107 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
109 u32..=124 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
126 u32..=152 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
154 u32..=191 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
194 u32..=205 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
207 u32..=215 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
218 u32..=221 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
224 u32..=225 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
227 u32..=242 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
245 u32..=257 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
259 u32..=271 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
274 u32..=288 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
291 u32..=366 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
400 u32..=403 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
4160 u32..=4166 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
4181 u32..=4186 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
4190 u32 => unsafe { core::mem::transmute::<u32, Op>(4190 u32) },
4416 u32..=4434 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
4445 u32..=4463 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
4472 u32..=4477 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
4479 u32..=4483 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
4497 u32 => unsafe { core::mem::transmute::<u32, Op>(4497 u32) },
4500 u32..=4503 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
4540 u32..=4542 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5000 u32..=5007 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5011 u32..=5012 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5056 u32 => unsafe { core::mem::transmute::<u32, Op>(5056 u32) },
5074 u32..=5076 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5078 u32 => unsafe { core::mem::transmute::<u32, Op>(5078 u32) },
5090 u32 => unsafe { core::mem::transmute::<u32, Op>(5090 u32) },
5101 u32 => unsafe { core::mem::transmute::<u32, Op>(5101 u32) },
5103 u32..=5104 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5110 u32..=5111 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5115 u32 => unsafe { core::mem::transmute::<u32, Op>(5115 u32) },
5119 u32 => unsafe { core::mem::transmute::<u32, Op>(5119 u32) },
5126 u32..=5127 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5129 u32 => unsafe { core::mem::transmute::<u32, Op>(5129 u32) },
5249 u32..=5281 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5283 u32 => unsafe { core::mem::transmute::<u32, Op>(5283 u32) },
5288 u32..=5296 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5299 u32..=5341 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5344 u32..=5352 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5358 u32..=5362 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5364 u32..=5382 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5384 u32 => unsafe { core::mem::transmute::<u32, Op>(5384 u32) },
5390 u32..=5398 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5427 u32..=5439 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5571 u32..=5578 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5580 u32..=5581 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5585 u32..=5598 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5600 u32..=5601 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5609 u32..=5611 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5614 u32..=5615 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5630 u32..=5633 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5699 u32..=5816 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5818 u32..=5820 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5840 u32..=5843 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5846 u32..=5882 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5887 u32 => unsafe { core::mem::transmute::<u32, Op>(5887 u32) },
5911 u32..=5913 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5923 u32..=5934 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5938 u32 => unsafe { core::mem::transmute::<u32, Op>(5938 u32) },
5946 u32..=5947 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
5949 u32 => unsafe { core::mem::transmute::<u32, Op>(5949 u32) },
6016 u32..=6032 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
6035 u32 => unsafe { core::mem::transmute::<u32, Op>(6035 u32) },
6086 u32 => unsafe { core::mem::transmute::<u32, Op>(6086 u32) },
6090 u32..=6092 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
6096 u32 => unsafe { core::mem::transmute::<u32, Op>(6096 u32) },
6116 u32..=6117 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
6142 u32..=6143 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
6145 u32 => unsafe { core::mem::transmute::<u32, Op>(6145 u32) },
6163 u32..=6166 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
6199 u32 => unsafe { core::mem::transmute::<u32, Op>(6199 u32) },
6221 u32 => unsafe { core::mem::transmute::<u32, Op>(6221 u32) },
6231 u32..=6235 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
6237 u32 => unsafe { core::mem::transmute::<u32, Op>(6237 u32) },
6242 u32 => unsafe { core::mem::transmute::<u32, Op>(6242 u32) },
6244 u32 => unsafe { core::mem::transmute::<u32, Op>(6244 u32) },
6248 u32..=6254 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
6401 u32..=6408 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
6426 u32 => unsafe { core::mem::transmute::<u32, Op>(6426 u32) },
6428 u32..=6429 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
6529 u32..=6531 u32 => unsafe { core::mem::transmute::<u32, Op>(n) },
_ => return None,
})
}
}
#[allow(clippy::upper_case_acronyms)]
#[allow(non_upper_case_globals)]
impl Op {
pub const SDotKHR: Self = Self::SDot;
pub const UDotKHR: Self = Self::UDot;
pub const SUDotKHR: Self = Self::SUDot;
pub const SDotAccSatKHR: Self = Self::SDotAccSat;
pub const UDotAccSatKHR: Self = Self::UDotAccSat;
pub const SUDotAccSatKHR: Self = Self::SUDotAccSat;
pub const TypeCooperativeVectorNV: Self = Self::TypeVectorIdEXT;
pub const GroupNonUniformPartitionNV: Self = Self::GroupNonUniformPartitionEXT;
pub const ReportIntersectionNV: Self = Self::ReportIntersectionKHR;
pub const TypeAccelerationStructureNV: Self = Self::TypeAccelerationStructureKHR;
pub const RayQueryGetClusterIdNV: Self = Self::RayQueryGetIntersectionClusterIdNV;
pub const DemoteToHelperInvocationEXT: Self = Self::DemoteToHelperInvocation;
pub const DecorateStringGOOGLE: Self = Self::DecorateString;
pub const MemberDecorateStringGOOGLE: Self = Self::MemberDecorateString;
pub const ArbitraryFloatSinCosPiINTEL: Self = Self::ArbitraryFloatSinCosPiALTERA;
pub const ArbitraryFloatCastINTEL: Self = Self::ArbitraryFloatCastALTERA;
pub const ArbitraryFloatCastFromIntINTEL: Self = Self::ArbitraryFloatCastFromIntALTERA;
pub const ArbitraryFloatCastToIntINTEL: Self = Self::ArbitraryFloatCastToIntALTERA;
pub const ArbitraryFloatAddINTEL: Self = Self::ArbitraryFloatAddALTERA;
pub const ArbitraryFloatSubINTEL: Self = Self::ArbitraryFloatSubALTERA;
pub const ArbitraryFloatMulINTEL: Self = Self::ArbitraryFloatMulALTERA;
pub const ArbitraryFloatDivINTEL: Self = Self::ArbitraryFloatDivALTERA;
pub const ArbitraryFloatGTINTEL: Self = Self::ArbitraryFloatGTALTERA;
pub const ArbitraryFloatGEINTEL: Self = Self::ArbitraryFloatGEALTERA;
pub const ArbitraryFloatLTINTEL: Self = Self::ArbitraryFloatLTALTERA;
pub const ArbitraryFloatLEINTEL: Self = Self::ArbitraryFloatLEALTERA;
pub const ArbitraryFloatEQINTEL: Self = Self::ArbitraryFloatEQALTERA;
pub const ArbitraryFloatRecipINTEL: Self = Self::ArbitraryFloatRecipALTERA;
pub const ArbitraryFloatRSqrtINTEL: Self = Self::ArbitraryFloatRSqrtALTERA;
pub const ArbitraryFloatCbrtINTEL: Self = Self::ArbitraryFloatCbrtALTERA;
pub const ArbitraryFloatHypotINTEL: Self = Self::ArbitraryFloatHypotALTERA;
pub const ArbitraryFloatSqrtINTEL: Self = Self::ArbitraryFloatSqrtALTERA;
pub const FixedSqrtINTEL: Self = Self::FixedSqrtALTERA;
pub const FixedRecipINTEL: Self = Self::FixedRecipALTERA;
pub const FixedRsqrtINTEL: Self = Self::FixedRsqrtALTERA;
pub const FixedSinINTEL: Self = Self::FixedSinALTERA;
pub const FixedCosINTEL: Self = Self::FixedCosALTERA;
pub const FixedSinCosINTEL: Self = Self::FixedSinCosALTERA;
pub const FixedSinPiINTEL: Self = Self::FixedSinPiALTERA;
pub const FixedCosPiINTEL: Self = Self::FixedCosPiALTERA;
pub const FixedSinCosPiINTEL: Self = Self::FixedSinCosPiALTERA;
pub const FixedLogINTEL: Self = Self::FixedLogALTERA;
pub const FixedExpINTEL: Self = Self::FixedExpALTERA;
pub const PtrCastToCrossWorkgroupINTEL: Self = Self::PtrCastToCrossWorkgroupALTERA;
pub const CrossWorkgroupCastToPtrINTEL: Self = Self::CrossWorkgroupCastToPtrALTERA;
pub const ReadPipeBlockingINTEL: Self = Self::ReadPipeBlockingALTERA;
pub const WritePipeBlockingINTEL: Self = Self::WritePipeBlockingALTERA;
pub const FPGARegINTEL: Self = Self::FPGARegALTERA;
pub const TaskSequenceCreateINTEL: Self = Self::TaskSequenceCreateALTERA;
pub const TaskSequenceAsyncINTEL: Self = Self::TaskSequenceAsyncALTERA;
pub const TaskSequenceGetINTEL: Self = Self::TaskSequenceGetALTERA;
pub const TaskSequenceReleaseINTEL: Self = Self::TaskSequenceReleaseALTERA;
pub const TypeTaskSequenceINTEL: Self = Self::TypeTaskSequenceALTERA;
#[doc = r" Returns [`true`] if the given opcode is a type-declaring instruction." ]
#[ doc = r"" ]
#[ doc = r" <https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#_type_declaration_instructions >"]
pub fn is_type(self) -> bool {
matches!(
self,
Self::TypeVoid
| Self::TypeBool
| Self::TypeInt
| Self::TypeFloat
| Self::TypeVector
| Self::TypeMatrix
| Self::TypeImage
| Self::TypeSampler
| Self::TypeSampledImage
| Self::TypeArray
| Self::TypeRuntimeArray
| Self::TypeStruct
| Self::TypeOpaque
| Self::TypePointer
| Self::TypeFunction
| Self::TypeEvent
| Self::TypeDeviceEvent
| Self::TypeReserveId
| Self::TypeQueue
| Self::TypePipe
| Self::TypeForwardPointer
| Self::TypePipeStorage
| Self::TypeNamedBarrier
| Self::TypeTensorARM
| Self::TypeGraphARM
| Self::TypeUntypedPointerKHR
| Self::TypeCooperativeMatrixKHR
| Self::TypeRayQueryKHR
| Self::TypeNodePayloadArrayAMDX
| Self::TypeBufferEXT
| Self::TypeHitObjectNV
| Self::TypeVectorIdEXT
| Self::TypeHitObjectEXT
| Self::TypeAccelerationStructureKHR
| Self::TypeCooperativeMatrixNV
| Self::TypeTensorLayoutNV
| Self::TypeTensorViewNV
| Self::TypeBufferSurfaceINTEL
| Self::TypeStructContinuedINTEL
)
}
#[ doc = r" Returns [`true`] if the given opcode is a constant-defining instruction." ]
#[ doc = r"" ]
#[ doc = r" <https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#_constant_creation_instructions >"]
pub fn is_constant(self) -> bool {
matches!(
self,
Self::ConstantTrue
| Self::ConstantFalse
| Self::Constant
| Self::ConstantComposite
| Self::ConstantSampler
| Self::ConstantNull
| Self::SpecConstantTrue
| Self::SpecConstantFalse
| Self::SpecConstant
| Self::SpecConstantComposite
| Self::SpecConstantOp
| Self::ConstantCompositeReplicateEXT
| Self::SpecConstantCompositeReplicateEXT
| Self::ConstantSizeOfEXT
| Self::ConstantCompositeContinuedINTEL
| Self::SpecConstantCompositeContinuedINTEL
| Self::SpecConstantTargetINTEL
| Self::SpecConstantArchitectureINTEL
| Self::SpecConstantCapabilitiesINTEL
)
}
#[ doc = r" Returns [`true`] if the given opcode is an annotation instruction." ]
#[ doc = r"" ]
#[ doc = r" <https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#Annotation >"]
pub fn is_annotation(self) -> bool {
matches!(
self,
Self::Decorate
| Self::MemberDecorate
| Self::DecorationGroup
| Self::GroupDecorate
| Self::GroupMemberDecorate
| Self::DecorateId
| Self::MemberDecorateIdEXT
| Self::DecorateString
| Self::MemberDecorateString
)
}
#[ doc = r" Returns [`true`] if the given opcode is a debug instruction." ]
#[ doc = r"" ]
#[ doc = r" <https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#_debug_instructions >"]
pub fn is_debug(self) -> bool {
matches!(
self,
Self::SourceContinued
| Self::Source
| Self::SourceExtension
| Self::Name
| Self::MemberName
| Self::String
| Self::Line
| Self::NoLine
| Self::ModuleProcessed
)
}
#[ doc = r" Returns [`true`] if the given opcode is a control-flow instruction." ]
#[ doc = r"" ]
#[ doc = r" <https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#_control_flow_instructions >"]
pub fn is_control_flow(self) -> bool {
matches!(
self,
Self::Phi
| Self::LoopMerge
| Self::SelectionMerge
| Self::Label
| Self::Branch
| Self::BranchConditional
| Self::Switch
| Self::Kill
| Self::Return
| Self::ReturnValue
| Self::Unreachable
| Self::LifetimeStart
| Self::LifetimeStop
| Self::TerminateInvocation
| Self::DemoteToHelperInvocation
)
}
}
#[ doc = "[Arm.MotionEngine.100](https://github.com/KhronosGroup/SPIRV-Headers/blob/main/include/spirv/unified1/extinst.arm.motion-engine.100.grammar.json) extended instruction opcode"]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum ArmMotionEngine100Op {
MIN_SAD = 0 u32,
MIN_SAD_COST = 1 u32,
RAW_SAD = 2 u32,
}
impl ArmMotionEngine100Op {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32..=2 u32 => unsafe { core::mem::transmute::<u32, ArmMotionEngine100Op>(n) },
_ => return None,
})
}
}
#[ doc = "[DebugInfo](https://github.com/KhronosGroup/SPIRV-Headers/blob/main/include/spirv/unified1/extinst.debuginfo.grammar.json) extended instruction opcode"]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum DebuginfoOp {
DebugInfoNone = 0 u32,
DebugCompilationUnit = 1 u32,
DebugTypeBasic = 2 u32,
DebugTypePointer = 3 u32,
DebugTypeQualifier = 4 u32,
DebugTypeArray = 5 u32,
DebugTypeVector = 6 u32,
DebugTypedef = 7 u32,
DebugTypeFunction = 8 u32,
DebugTypeEnum = 9 u32,
DebugTypeComposite = 10 u32,
DebugTypeMember = 11 u32,
DebugTypeInheritance = 12 u32,
DebugTypePtrToMember = 13 u32,
DebugTypeTemplate = 14 u32,
DebugTypeTemplateParameter = 15 u32,
DebugTypeTemplateTemplateParameter = 16 u32,
DebugTypeTemplateParameterPack = 17 u32,
DebugGlobalVariable = 18 u32,
DebugFunctionDeclaration = 19 u32,
DebugFunction = 20 u32,
DebugLexicalBlock = 21 u32,
DebugLexicalBlockDiscriminator = 22 u32,
DebugScope = 23 u32,
DebugNoScope = 24 u32,
DebugInlinedAt = 25 u32,
DebugLocalVariable = 26 u32,
DebugInlinedVariable = 27 u32,
DebugDeclare = 28 u32,
DebugValue = 29 u32,
DebugOperation = 30 u32,
DebugExpression = 31 u32,
DebugMacroDef = 32 u32,
DebugMacroUndef = 33 u32,
}
impl DebuginfoOp {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32..=33 u32 => unsafe { core::mem::transmute::<u32, DebuginfoOp>(n) },
_ => return None,
})
}
}
#[ doc = "[GLSL.std.450](https://github.com/KhronosGroup/SPIRV-Headers/blob/main/include/spirv/unified1/extinst.glsl.std.450.grammar.json) extended instruction opcode"]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum GlslStd450Op {
Round = 1 u32,
RoundEven = 2 u32,
Trunc = 3 u32,
FAbs = 4 u32,
SAbs = 5 u32,
FSign = 6 u32,
SSign = 7 u32,
Floor = 8 u32,
Ceil = 9 u32,
Fract = 10 u32,
Radians = 11 u32,
Degrees = 12 u32,
Sin = 13 u32,
Cos = 14 u32,
Tan = 15 u32,
Asin = 16 u32,
Acos = 17 u32,
Atan = 18 u32,
Sinh = 19 u32,
Cosh = 20 u32,
Tanh = 21 u32,
Asinh = 22 u32,
Acosh = 23 u32,
Atanh = 24 u32,
Atan2 = 25 u32,
Pow = 26 u32,
Exp = 27 u32,
Log = 28 u32,
Exp2 = 29 u32,
Log2 = 30 u32,
Sqrt = 31 u32,
InverseSqrt = 32 u32,
Determinant = 33 u32,
MatrixInverse = 34 u32,
Modf = 35 u32,
ModfStruct = 36 u32,
FMin = 37 u32,
UMin = 38 u32,
SMin = 39 u32,
FMax = 40 u32,
UMax = 41 u32,
SMax = 42 u32,
FClamp = 43 u32,
UClamp = 44 u32,
SClamp = 45 u32,
FMix = 46 u32,
IMix = 47 u32,
Step = 48 u32,
SmoothStep = 49 u32,
Fma = 50 u32,
Frexp = 51 u32,
FrexpStruct = 52 u32,
Ldexp = 53 u32,
PackSnorm4x8 = 54 u32,
PackUnorm4x8 = 55 u32,
PackSnorm2x16 = 56 u32,
PackUnorm2x16 = 57 u32,
PackHalf2x16 = 58 u32,
PackDouble2x32 = 59 u32,
UnpackSnorm2x16 = 60 u32,
UnpackUnorm2x16 = 61 u32,
UnpackHalf2x16 = 62 u32,
UnpackSnorm4x8 = 63 u32,
UnpackUnorm4x8 = 64 u32,
UnpackDouble2x32 = 65 u32,
Length = 66 u32,
Distance = 67 u32,
Cross = 68 u32,
Normalize = 69 u32,
FaceForward = 70 u32,
Reflect = 71 u32,
Refract = 72 u32,
FindILsb = 73 u32,
FindSMsb = 74 u32,
FindUMsb = 75 u32,
InterpolateAtCentroid = 76 u32,
InterpolateAtSample = 77 u32,
InterpolateAtOffset = 78 u32,
NMin = 79 u32,
NMax = 80 u32,
NClamp = 81 u32,
}
impl GlslStd450Op {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
1 u32..=81 u32 => unsafe { core::mem::transmute::<u32, GlslStd450Op>(n) },
_ => return None,
})
}
}
#[ doc = "[NonSemantic.ClspvReflection](https://github.com/KhronosGroup/SPIRV-Headers/blob/main/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json) extended instruction opcode"]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum NonsemanticClspvreflectionOp {
Kernel = 1 u32,
ArgumentInfo = 2 u32,
ArgumentStorageBuffer = 3 u32,
ArgumentUniform = 4 u32,
ArgumentPodStorageBuffer = 5 u32,
ArgumentPodUniform = 6 u32,
ArgumentPodPushConstant = 7 u32,
ArgumentSampledImage = 8 u32,
ArgumentStorageImage = 9 u32,
ArgumentSampler = 10 u32,
ArgumentWorkgroup = 11 u32,
SpecConstantWorkgroupSize = 12 u32,
SpecConstantGlobalOffset = 13 u32,
SpecConstantWorkDim = 14 u32,
PushConstantGlobalOffset = 15 u32,
PushConstantEnqueuedLocalSize = 16 u32,
PushConstantGlobalSize = 17 u32,
PushConstantRegionOffset = 18 u32,
PushConstantNumWorkgroups = 19 u32,
PushConstantRegionGroupOffset = 20 u32,
ConstantDataStorageBuffer = 21 u32,
ConstantDataUniform = 22 u32,
LiteralSampler = 23 u32,
PropertyRequiredWorkgroupSize = 24 u32,
SpecConstantSubgroupMaxSize = 25 u32,
ArgumentPointerPushConstant = 26 u32,
ArgumentPointerUniform = 27 u32,
ProgramScopeVariablesStorageBuffer = 28 u32,
ProgramScopeVariablePointerRelocation = 29 u32,
ImageArgumentInfoChannelOrderPushConstant = 30 u32,
ImageArgumentInfoChannelDataTypePushConstant = 31 u32,
ImageArgumentInfoChannelOrderUniform = 32 u32,
ImageArgumentInfoChannelDataTypeUniform = 33 u32,
ArgumentStorageTexelBuffer = 34 u32,
ArgumentUniformTexelBuffer = 35 u32,
ConstantDataPointerPushConstant = 36 u32,
ProgramScopeVariablePointerPushConstant = 37 u32,
PrintfInfo = 38 u32,
PrintfBufferStorageBuffer = 39 u32,
PrintfBufferPointerPushConstant = 40 u32,
NormalizedSamplerMaskPushConstant = 41 u32,
WorkgroupVariableSize = 42 u32,
}
impl NonsemanticClspvreflectionOp {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
1 u32..=42 u32 => unsafe { core::mem::transmute::<u32, NonsemanticClspvreflectionOp>(n) },
_ => return None,
})
}
}
#[ doc = "[NonSemantic.DebugBreak](https://github.com/KhronosGroup/SPIRV-Headers/blob/main/include/spirv/unified1/extinst.nonsemantic.debugbreak.grammar.json) extended instruction opcode"]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum NonsemanticDebugbreakOp {
DebugBreak = 1 u32,
}
impl NonsemanticDebugbreakOp {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
1 u32 => unsafe { core::mem::transmute::<u32, NonsemanticDebugbreakOp>(1 u32) },
_ => return None,
})
}
}
#[ doc = "[NonSemantic.DebugPrintf](https://github.com/KhronosGroup/SPIRV-Headers/blob/main/include/spirv/unified1/extinst.nonsemantic.debugprintf.grammar.json) extended instruction opcode"]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum NonsemanticDebugprintfOp {
DebugPrintf = 1 u32,
}
impl NonsemanticDebugprintfOp {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
1 u32 => unsafe { core::mem::transmute::<u32, NonsemanticDebugprintfOp>(1 u32) },
_ => return None,
})
}
}
#[ doc = "[NonSemantic.Shader.DebugInfo.100](https://github.com/KhronosGroup/SPIRV-Headers/blob/main/include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json) extended instruction opcode"]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum NonsemanticShaderDebuginfo100Op {
DebugInfoNone = 0 u32,
DebugCompilationUnit = 1 u32,
DebugTypeBasic = 2 u32,
DebugTypePointer = 3 u32,
DebugTypeQualifier = 4 u32,
DebugTypeArray = 5 u32,
DebugTypeVector = 6 u32,
DebugTypedef = 7 u32,
DebugTypeFunction = 8 u32,
DebugTypeEnum = 9 u32,
DebugTypeComposite = 10 u32,
DebugTypeMember = 11 u32,
DebugTypeInheritance = 12 u32,
DebugTypePtrToMember = 13 u32,
DebugTypeTemplate = 14 u32,
DebugTypeTemplateParameter = 15 u32,
DebugTypeTemplateTemplateParameter = 16 u32,
DebugTypeTemplateParameterPack = 17 u32,
DebugGlobalVariable = 18 u32,
DebugFunctionDeclaration = 19 u32,
DebugFunction = 20 u32,
DebugLexicalBlock = 21 u32,
DebugLexicalBlockDiscriminator = 22 u32,
DebugScope = 23 u32,
DebugNoScope = 24 u32,
DebugInlinedAt = 25 u32,
DebugLocalVariable = 26 u32,
DebugInlinedVariable = 27 u32,
DebugDeclare = 28 u32,
DebugValue = 29 u32,
DebugOperation = 30 u32,
DebugExpression = 31 u32,
DebugMacroDef = 32 u32,
DebugMacroUndef = 33 u32,
DebugImportedEntity = 34 u32,
DebugSource = 35 u32,
DebugFunctionDefinition = 101 u32,
DebugSourceContinued = 102 u32,
DebugLine = 103 u32,
DebugNoLine = 104 u32,
DebugBuildIdentifier = 105 u32,
DebugStoragePath = 106 u32,
DebugEntryPoint = 107 u32,
DebugTypeMatrix = 108 u32,
}
impl NonsemanticShaderDebuginfo100Op {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32..=35 u32 => unsafe {
core::mem::transmute::<u32, NonsemanticShaderDebuginfo100Op>(n)
},
101 u32..=108 u32 => unsafe {
core::mem::transmute::<u32, NonsemanticShaderDebuginfo100Op>(n)
},
_ => return None,
})
}
}
#[ doc = "[NonSemantic.VkspReflection](https://github.com/KhronosGroup/SPIRV-Headers/blob/main/include/spirv/unified1/extinst.nonsemantic.vkspreflection.grammar.json) extended instruction opcode"]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum NonsemanticVkspreflectionOp {
Configuration = 1 u32,
StartCounter = 2 u32,
StopCounter = 3 u32,
PushConstants = 4 u32,
SpecializationMapEntry = 5 u32,
DescriptorSetBuffer = 6 u32,
DescriptorSetImage = 7 u32,
DescriptorSetSampler = 8 u32,
}
impl NonsemanticVkspreflectionOp {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
1 u32..=8 u32 => unsafe { core::mem::transmute::<u32, NonsemanticVkspreflectionOp>(n) },
_ => return None,
})
}
}
#[ doc = "[OpenCL.DebugInfo.100](https://github.com/KhronosGroup/SPIRV-Headers/blob/main/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json) extended instruction opcode"]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum OpenclDebuginfo100Op {
DebugInfoNone = 0 u32,
DebugCompilationUnit = 1 u32,
DebugTypeBasic = 2 u32,
DebugTypePointer = 3 u32,
DebugTypeQualifier = 4 u32,
DebugTypeArray = 5 u32,
DebugTypeVector = 6 u32,
DebugTypedef = 7 u32,
DebugTypeFunction = 8 u32,
DebugTypeEnum = 9 u32,
DebugTypeComposite = 10 u32,
DebugTypeMember = 11 u32,
DebugTypeInheritance = 12 u32,
DebugTypePtrToMember = 13 u32,
DebugTypeTemplate = 14 u32,
DebugTypeTemplateParameter = 15 u32,
DebugTypeTemplateTemplateParameter = 16 u32,
DebugTypeTemplateParameterPack = 17 u32,
DebugGlobalVariable = 18 u32,
DebugFunctionDeclaration = 19 u32,
DebugFunction = 20 u32,
DebugLexicalBlock = 21 u32,
DebugLexicalBlockDiscriminator = 22 u32,
DebugScope = 23 u32,
DebugNoScope = 24 u32,
DebugInlinedAt = 25 u32,
DebugLocalVariable = 26 u32,
DebugInlinedVariable = 27 u32,
DebugDeclare = 28 u32,
DebugValue = 29 u32,
DebugOperation = 30 u32,
DebugExpression = 31 u32,
DebugMacroDef = 32 u32,
DebugMacroUndef = 33 u32,
DebugImportedEntity = 34 u32,
DebugSource = 35 u32,
DebugModuleINTEL = 36 u32,
}
impl OpenclDebuginfo100Op {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32..=36 u32 => unsafe { core::mem::transmute::<u32, OpenclDebuginfo100Op>(n) },
_ => return None,
})
}
}
#[ doc = "[OpenCL.std](https://github.com/KhronosGroup/SPIRV-Headers/blob/main/include/spirv/unified1/extinst.opencl.std.100.grammar.json) extended instruction opcode"]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum OpenclStd100Op {
acos = 0 u32,
acosh = 1 u32,
acospi = 2 u32,
asin = 3 u32,
asinh = 4 u32,
asinpi = 5 u32,
atan = 6 u32,
atan2 = 7 u32,
atanh = 8 u32,
atanpi = 9 u32,
atan2pi = 10 u32,
cbrt = 11 u32,
ceil = 12 u32,
copysign = 13 u32,
cos = 14 u32,
cosh = 15 u32,
cospi = 16 u32,
erfc = 17 u32,
erf = 18 u32,
exp = 19 u32,
exp2 = 20 u32,
exp10 = 21 u32,
expm1 = 22 u32,
fabs = 23 u32,
fdim = 24 u32,
floor = 25 u32,
fma = 26 u32,
fmax = 27 u32,
fmin = 28 u32,
fmod = 29 u32,
fract = 30 u32,
frexp = 31 u32,
hypot = 32 u32,
ilogb = 33 u32,
ldexp = 34 u32,
lgamma = 35 u32,
lgamma_r = 36 u32,
log = 37 u32,
log2 = 38 u32,
log10 = 39 u32,
log1p = 40 u32,
logb = 41 u32,
mad = 42 u32,
maxmag = 43 u32,
minmag = 44 u32,
modf = 45 u32,
nan = 46 u32,
nextafter = 47 u32,
pow = 48 u32,
pown = 49 u32,
powr = 50 u32,
remainder = 51 u32,
remquo = 52 u32,
rint = 53 u32,
rootn = 54 u32,
round = 55 u32,
rsqrt = 56 u32,
sin = 57 u32,
sincos = 58 u32,
sinh = 59 u32,
sinpi = 60 u32,
sqrt = 61 u32,
tan = 62 u32,
tanh = 63 u32,
tanpi = 64 u32,
tgamma = 65 u32,
trunc = 66 u32,
half_cos = 67 u32,
half_divide = 68 u32,
half_exp = 69 u32,
half_exp2 = 70 u32,
half_exp10 = 71 u32,
half_log = 72 u32,
half_log2 = 73 u32,
half_log10 = 74 u32,
half_powr = 75 u32,
half_recip = 76 u32,
half_rsqrt = 77 u32,
half_sin = 78 u32,
half_sqrt = 79 u32,
half_tan = 80 u32,
native_cos = 81 u32,
native_divide = 82 u32,
native_exp = 83 u32,
native_exp2 = 84 u32,
native_exp10 = 85 u32,
native_log = 86 u32,
native_log2 = 87 u32,
native_log10 = 88 u32,
native_powr = 89 u32,
native_recip = 90 u32,
native_rsqrt = 91 u32,
native_sin = 92 u32,
native_sqrt = 93 u32,
native_tan = 94 u32,
fclamp = 95 u32,
degrees = 96 u32,
fmax_common = 97 u32,
fmin_common = 98 u32,
mix = 99 u32,
radians = 100 u32,
step = 101 u32,
smoothstep = 102 u32,
sign = 103 u32,
cross = 104 u32,
distance = 105 u32,
length = 106 u32,
normalize = 107 u32,
fast_distance = 108 u32,
fast_length = 109 u32,
fast_normalize = 110 u32,
s_abs = 141 u32,
s_abs_diff = 142 u32,
s_add_sat = 143 u32,
u_add_sat = 144 u32,
s_hadd = 145 u32,
u_hadd = 146 u32,
s_rhadd = 147 u32,
u_rhadd = 148 u32,
s_clamp = 149 u32,
u_clamp = 150 u32,
clz = 151 u32,
ctz = 152 u32,
s_mad_hi = 153 u32,
u_mad_sat = 154 u32,
s_mad_sat = 155 u32,
s_max = 156 u32,
u_max = 157 u32,
s_min = 158 u32,
u_min = 159 u32,
s_mul_hi = 160 u32,
rotate = 161 u32,
s_sub_sat = 162 u32,
u_sub_sat = 163 u32,
u_upsample = 164 u32,
s_upsample = 165 u32,
popcount = 166 u32,
s_mad24 = 167 u32,
u_mad24 = 168 u32,
s_mul24 = 169 u32,
u_mul24 = 170 u32,
vloadn = 171 u32,
vstoren = 172 u32,
vload_half = 173 u32,
vload_halfn = 174 u32,
vstore_half = 175 u32,
vstore_half_r = 176 u32,
vstore_halfn = 177 u32,
vstore_halfn_r = 178 u32,
vloada_halfn = 179 u32,
vstorea_halfn = 180 u32,
vstorea_halfn_r = 181 u32,
shuffle = 182 u32,
shuffle2 = 183 u32,
printf = 184 u32,
prefetch = 185 u32,
bitselect = 186 u32,
select = 187 u32,
u_abs = 201 u32,
u_abs_diff = 202 u32,
u_mul_hi = 203 u32,
u_mad_hi = 204 u32,
}
impl OpenclStd100Op {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32..=110 u32 => unsafe { core::mem::transmute::<u32, OpenclStd100Op>(n) },
141 u32..=187 u32 => unsafe { core::mem::transmute::<u32, OpenclStd100Op>(n) },
201 u32..=204 u32 => unsafe { core::mem::transmute::<u32, OpenclStd100Op>(n) },
_ => return None,
})
}
}
#[ doc = "[SPV_AMD_gcn_shader](https://github.com/KhronosGroup/SPIRV-Headers/blob/main/include/spirv/unified1/extinst.spv-amd-gcn-shader.grammar.json) extended instruction opcode"]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum SpvAmdGcnShaderOp {
CubeFaceIndexAMD = 1 u32,
CubeFaceCoordAMD = 2 u32,
TimeAMD = 3 u32,
}
impl SpvAmdGcnShaderOp {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
1 u32..=3 u32 => unsafe { core::mem::transmute::<u32, SpvAmdGcnShaderOp>(n) },
_ => return None,
})
}
}
#[ doc = "[SPV_AMD_shader_ballot](https://github.com/KhronosGroup/SPIRV-Headers/blob/main/include/spirv/unified1/extinst.spv-amd-shader-ballot.grammar.json) extended instruction opcode"]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum SpvAmdShaderBallotOp {
SwizzleInvocationsAMD = 1 u32,
SwizzleInvocationsMaskedAMD = 2 u32,
WriteInvocationAMD = 3 u32,
MbcntAMD = 4 u32,
}
impl SpvAmdShaderBallotOp {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
1 u32..=4 u32 => unsafe { core::mem::transmute::<u32, SpvAmdShaderBallotOp>(n) },
_ => return None,
})
}
}
#[ doc = "[SPV_AMD_shader_explicit_vertex_parameter](https://github.com/KhronosGroup/SPIRV-Headers/blob/main/include/spirv/unified1/extinst.spv-amd-shader-explicit-vertex-parameter.grammar.json) extended instruction opcode"]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum SpvAmdShaderExplicitVertexParameterOp {
InterpolateAtVertexAMD = 1 u32,
}
impl SpvAmdShaderExplicitVertexParameterOp {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
1 u32 => unsafe {
core::mem::transmute::<u32, SpvAmdShaderExplicitVertexParameterOp>(1 u32)
},
_ => return None,
})
}
}
#[ doc = "[SPV_AMD_shader_trinary_minmax](https://github.com/KhronosGroup/SPIRV-Headers/blob/main/include/spirv/unified1/extinst.spv-amd-shader-trinary-minmax.grammar.json) extended instruction opcode"]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum SpvAmdShaderTrinaryMinmaxOp {
FMin3AMD = 1 u32,
UMin3AMD = 2 u32,
SMin3AMD = 3 u32,
FMax3AMD = 4 u32,
UMax3AMD = 5 u32,
SMax3AMD = 6 u32,
FMid3AMD = 7 u32,
UMid3AMD = 8 u32,
SMid3AMD = 9 u32,
}
impl SpvAmdShaderTrinaryMinmaxOp {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
1 u32..=9 u32 => unsafe { core::mem::transmute::<u32, SpvAmdShaderTrinaryMinmaxOp>(n) },
_ => return None,
})
}
}
#[ doc = "[TOSA.001000.1](https://github.com/KhronosGroup/SPIRV-Headers/blob/main/include/spirv/unified1/extinst.tosa.001000.1.grammar.json) extended instruction opcode"]
#[ repr(u32)]
#[ derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[ cfg_attr(feature = "serialize" , derive(serde::Serialize))]
#[ cfg_attr(feature = "deserialize" , derive(serde::Deserialize))]
#[ allow(clippy::upper_case_acronyms)]
pub enum Tosa0010001Op {
ARGMAX = 0 u32,
AVG_POOL2D = 1 u32,
CONV2D = 2 u32,
CONV3D = 3 u32,
DEPTHWISE_CONV2D = 4 u32,
FFT2D = 5 u32,
MATMUL = 6 u32,
MAX_POOL2D = 7 u32,
RFFT2D = 8 u32,
TRANSPOSE_CONV2D = 9 u32,
CLAMP = 10 u32,
ERF = 11 u32,
SIGMOID = 12 u32,
TANH = 13 u32,
ADD = 14 u32,
ARITHMETIC_RIGHT_SHIFT = 15 u32,
BITWISE_AND = 16 u32,
BITWISE_OR = 17 u32,
BITWISE_XOR = 18 u32,
INTDIV = 19 u32,
LOGICAL_AND = 20 u32,
LOGICAL_LEFT_SHIFT = 21 u32,
LOGICAL_RIGHT_SHIFT = 22 u32,
LOGICAL_OR = 23 u32,
LOGICAL_XOR = 24 u32,
MAXIMUM = 25 u32,
MINIMUM = 26 u32,
MUL = 27 u32,
POW = 28 u32,
SUB = 29 u32,
TABLE = 30 u32,
ABS = 31 u32,
BITWISE_NOT = 32 u32,
CEIL = 33 u32,
CLZ = 34 u32,
COS = 35 u32,
EXP = 36 u32,
FLOOR = 37 u32,
LOG = 38 u32,
LOGICAL_NOT = 39 u32,
NEGATE = 40 u32,
RECIPROCAL = 41 u32,
RSQRT = 42 u32,
SIN = 43 u32,
SELECT = 44 u32,
EQUAL = 45 u32,
GREATER = 46 u32,
GREATER_EQUAL = 47 u32,
REDUCE_ALL = 48 u32,
REDUCE_ANY = 49 u32,
REDUCE_MAX = 50 u32,
REDUCE_MIN = 51 u32,
REDUCE_PRODUCT = 52 u32,
REDUCE_SUM = 53 u32,
CONCAT = 54 u32,
PAD = 55 u32,
RESHAPE = 56 u32,
REVERSE = 57 u32,
SLICE = 58 u32,
TILE = 59 u32,
TRANSPOSE = 60 u32,
GATHER = 61 u32,
SCATTER = 62 u32,
RESIZE = 63 u32,
CAST = 64 u32,
RESCALE = 65 u32,
}
impl Tosa0010001Op {
pub fn from_u32(n: u32) -> Option<Self> {
Some(match n {
0 u32..=65 u32 => unsafe { core::mem::transmute::<u32, Tosa0010001Op>(n) },
_ => return None,
})
}
}
Messung V0.5 in Prozent C=98 H=75 G=87
¤ Dauer der Verarbeitung: 0.196 Sekunden
(vorverarbeitet am 2026-08-25)
¤
*© Formatika GbR, Deutschland