1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
// AUTOMATICALLY GENERATED from the SPIR-V JSON grammar:
//   external/spirv.core.grammar.json.
// DO NOT MODIFY!

#![allow(clippy::upper_case_acronyms)]
#[doc = r" SPIR-V decorations."]
#[derive(Clone, Debug, Eq, PartialEq, PartialOrd, Ord)]
pub enum Decoration {
    RelaxedPrecision,
    SpecId(u32),
    Block,
    BufferBlock,
    RowMajor,
    ColMajor,
    ArrayStride(u32),
    MatrixStride(u32),
    GLSLShared,
    GLSLPacked,
    CPacked,
    BuiltIn(spirv::BuiltIn),
    NoPerspective,
    Flat,
    Patch,
    Centroid,
    Sample,
    Invariant,
    Restrict,
    Aliased,
    Volatile,
    Constant,
    Coherent,
    NonWritable,
    NonReadable,
    Uniform,
    UniformId(spirv::Word),
    SaturatedConversion,
    Stream(u32),
    Location(u32),
    Component(u32),
    Index(u32),
    Binding(u32),
    DescriptorSet(u32),
    Offset(u32),
    XfbBuffer(u32),
    XfbStride(u32),
    FuncParamAttr(spirv::FunctionParameterAttribute),
    FPRoundingMode(spirv::FPRoundingMode),
    FPFastMathMode(spirv::FPFastMathMode),
    LinkageAttributes(String, spirv::LinkageType),
    NoContraction,
    InputAttachmentIndex(u32),
    Alignment(u32),
    MaxByteOffset(u32),
    AlignmentId(spirv::Word),
    MaxByteOffsetId(spirv::Word),
    NoSignedWrap,
    NoUnsignedWrap,
    ExplicitInterpAMD,
    OverrideCoverageNV,
    PassthroughNV,
    ViewportRelativeNV,
    SecondaryViewportRelativeNV(u32),
    PerPrimitiveNV,
    PerViewNV,
    PerTaskNV,
    PerVertexNV,
    NonUniform,
    NonUniformEXT,
    RestrictPointer,
    RestrictPointerEXT,
    AliasedPointer,
    AliasedPointerEXT,
    ReferencedIndirectlyINTEL,
    CounterBuffer(spirv::Word),
    HlslCounterBufferGOOGLE(spirv::Word),
    UserSemantic(String),
    HlslSemanticGOOGLE(String),
    UserTypeGOOGLE(String),
    RegisterINTEL,
    MemoryINTEL(String),
    NumbanksINTEL(u32),
    BankwidthINTEL(u32),
    MaxPrivateCopiesINTEL(u32),
    SinglepumpINTEL,
    DoublepumpINTEL,
    MaxReplicatesINTEL(u32),
    SimpleDualPortINTEL,
    MergeINTEL(String, String),
    BankBitsINTEL(Vec<u32>),
    ForcePow2DepthINTEL(u32),
}