// 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)]
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),
    SaturatedToLargestFloat8NormalConversionEXT,
    NoSignedWrap,
    NoUnsignedWrap,
    WeightTextureQCOM,
    BlockMatchTextureQCOM,
    BlockMatchSamplerQCOM,
    ExplicitInterpAMD,
    NodeSharesPayloadLimitsWithAMDX(spirv::Word),
    NodeMaxPayloadsAMDX(spirv::Word),
    TrackFinishWritingAMDX,
    PayloadNodeNameAMDX(spirv::Word),
    PayloadNodeBaseIndexAMDX(spirv::Word),
    PayloadNodeSparseArrayAMDX,
    PayloadNodeArraySizeAMDX(spirv::Word),
    PayloadDispatchIndirectAMDX,
    ArrayStrideIdEXT(spirv::Word),
    OffsetIdEXT(spirv::Word),
    OverrideCoverageNV,
    PassthroughNV,
    ViewportRelativeNV,
    SecondaryViewportRelativeNV(u32),
    PerPrimitiveEXT,
    PerViewNV,
    PerTaskNV,
    PerVertexKHR,
    NonUniform,
    RestrictPointer,
    AliasedPointer,
    MemberOffsetNV(u32),
    HitObjectShaderRecordBufferNV,
    HitObjectShaderRecordBufferEXT,
    BankNV(u32),
    BindlessSamplerNV,
    BindlessImageNV,
    BoundSamplerNV,
    BoundImageNV,
    SIMTCallINTEL(u32),
    ReferencedIndirectlyINTEL,
    ClobberINTEL(String),
    SideEffectsINTEL,
    VectorComputeVariableINTEL,
    FuncParamIOKindINTEL(u32),
    VectorComputeFunctionINTEL,
    StackCallINTEL,
    GlobalVariableOffsetINTEL(u32),
    CounterBuffer(spirv::Word),
    UserSemantic(String),
    UserTypeGOOGLE(String),
    FunctionRoundingModeINTEL(u32, spirv::FPRoundingMode),
    FunctionDenormModeINTEL(u32, spirv::FPDenormMode),
    RegisterALTERA,
    MemoryALTERA(String),
    NumbanksALTERA(u32),
    BankwidthALTERA(u32),
    MaxPrivateCopiesALTERA(u32),
    SinglepumpALTERA,
    DoublepumpALTERA,
    MaxReplicatesALTERA(u32),
    SimpleDualPortALTERA,
    MergeALTERA(String, String),
    BankBitsALTERA(Vec<u32>),
    ForcePow2DepthALTERA(u32),
    StridesizeALTERA(u32),
    WordsizeALTERA(u32),
    TrueDualPortALTERA,
    BurstCoalesceALTERA,
    CacheSizeALTERA(u32),
    DontStaticallyCoalesceALTERA,
    PrefetchALTERA(u32),
    StallEnableALTERA,
    FuseLoopsInFunctionALTERA,
    MathOpDSPModeALTERA(u32, u32),
    AliasScopeINTEL(spirv::Word),
    NoAliasINTEL(spirv::Word),
    InitiationIntervalALTERA(u32),
    MaxConcurrencyALTERA(u32),
    PipelineEnableALTERA(u32),
    BufferLocationALTERA(u32),
    IOPipeStorageALTERA(u32),
    FunctionFloatingPointModeINTEL(u32, spirv::FPOperationMode),
    SingleElementVectorINTEL,
    VectorComputeCallableFunctionINTEL,
    MediaBlockIOINTEL,
    StallFreeALTERA,
    FPMaxErrorDecorationINTEL(u32),
    LatencyControlLabelALTERA(u32),
    LatencyControlConstraintALTERA(u32, u32, u32),
    ConduitKernelArgumentALTERA,
    RegisterMapKernelArgumentALTERA,
    MMHostInterfaceAddressWidthALTERA(u32),
    MMHostInterfaceDataWidthALTERA(u32),
    MMHostInterfaceLatencyALTERA(u32),
    MMHostInterfaceReadWriteModeALTERA(spirv::AccessQualifier),
    MMHostInterfaceMaxBurstALTERA(u32),
    MMHostInterfaceWaitRequestALTERA(u32),
    StableKernelArgumentALTERA,
    HostAccessINTEL(spirv::HostAccessQualifier, String),
    InitModeALTERA(spirv::InitializationModeQualifier),
    ImplementInRegisterMapALTERA(u32),
    ConditionalINTEL(spirv::Word),
    CacheControlLoadINTEL(u32, spirv::LoadCacheControl),
    CacheControlStoreINTEL(u32, spirv::StoreCacheControl),
}
