{"Vertex",
ExecutionModelVertex,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"TessellationControl",
ExecutionModelTessellationControl,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityTessellation,
+ SPV_CAPABILITY_AS_MASK(CapabilityTessellation),
{SPV_OPERAND_TYPE_NONE}},
{"TessellationEvaluation",
ExecutionModelTessellationEvaluation,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityTessellation,
+ SPV_CAPABILITY_AS_MASK(CapabilityTessellation),
{SPV_OPERAND_TYPE_NONE}},
{"Geometry",
ExecutionModelGeometry,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityGeometry,
+ SPV_CAPABILITY_AS_MASK(CapabilityGeometry),
{SPV_OPERAND_TYPE_NONE}},
{"Fragment",
ExecutionModelFragment,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"GLCompute",
ExecutionModelGLCompute,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"Kernel",
ExecutionModelKernel,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
};
{"Physical32",
AddressingModelPhysical32,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityAddresses,
+ SPV_CAPABILITY_AS_MASK(CapabilityAddresses),
{SPV_OPERAND_TYPE_NONE}},
{"Physical64",
AddressingModelPhysical64,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityAddresses,
+ SPV_CAPABILITY_AS_MASK(CapabilityAddresses),
{SPV_OPERAND_TYPE_NONE}},
};
{"Simple",
MemoryModelSimple,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"GLSL450",
MemoryModelGLSL450,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"OpenCL",
MemoryModelOpenCL,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
};
{"LocalSizeHint",
ExecutionModeLocalSizeHint,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_LITERAL_NUMBER, SPV_OPERAND_TYPE_LITERAL_NUMBER,
SPV_OPERAND_TYPE_LITERAL_NUMBER, SPV_OPERAND_TYPE_NONE}},
{ExecMode0(InputPoints, Geometry)},
{"InputTriangles",
ExecutionModeInputTriangles,
SPV_OPCODE_FLAGS_CAPABILITIES,
- // TODO(dneto): Capabilities are defined as sequential numbers instead of
- // bit masks. They cannot be meaningfully combined with a bitwise OR.
- CapabilityGeometry | CapabilityTessellation,
+ SPV_CAPABILITY_AS_MASK(CapabilityGeometry) |
+ SPV_CAPABILITY_AS_MASK(CapabilityTessellation),
{SPV_OPERAND_TYPE_NONE}},
{ExecMode0(InputTrianglesAdjacency, Geometry)},
{ExecMode0(InputQuads, Tessellation)},
{"OutputVertices",
ExecutionModeOutputVertices,
SPV_OPCODE_FLAGS_CAPABILITIES,
- // TODO(dneto): Capabilities are defined as sequential numbers instead of
- // bit masks. They cannot be meaningfully combined with a bitwise OR.
- CapabilityGeometry | CapabilityTessellation,
+ SPV_CAPABILITY_AS_MASK(CapabilityGeometry) |
+ SPV_CAPABILITY_AS_MASK(CapabilityTessellation),
{SPV_OPERAND_TYPE_LITERAL_NUMBER, SPV_OPERAND_TYPE_NONE}},
{ExecMode0(OutputPoints, Geometry)},
{ExecMode0(OutputLineStrip, Geometry)},
{"Input",
StorageClassInput,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"Uniform",
StorageClassUniform,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"Output",
StorageClassOutput,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"WorkgroupLocal",
StorageClassWorkgroupLocal,
{"PrivateGlobal",
StorageClassPrivateGlobal,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"Function",
StorageClassFunction,
{"Generic",
StorageClassGeneric,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"PushConstant",
StorageClassPushConstant,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"AtomicCounter",
StorageClassAtomicCounter,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"Image",
StorageClassImage,
{"Cube",
DimCube,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"Rect",
DimRect,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"Buffer", DimBuffer, SPV_OPCODE_FLAGS_NONE, 0, {SPV_OPERAND_TYPE_NONE}},
{"InputTarget",
DimInputTarget,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityInputTarget,
+ SPV_CAPABILITY_AS_MASK(CapabilityInputTarget),
{SPV_OPERAND_TYPE_NONE}},
};
{"None",
SamplerAddressingModeNone,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"ClampToEdge",
SamplerAddressingModeClampToEdge,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"Clamp",
SamplerAddressingModeClamp,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"Repeat",
SamplerAddressingModeRepeat,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"RepeatMirrored",
SamplerAddressingModeRepeatMirrored,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
};
{"Nearest",
SamplerFilterModeNearest,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"Linear",
SamplerFilterModeLinear,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
};
// In Rev31, all the cases depend on the Shader capability.
// TODO(dneto): In Rev32, many of these depend on the AdvancedFormats
// capability instead.
-#define CASE(NAME) \
- { \
- #NAME, ImageFormat##NAME, SPV_OPCODE_FLAGS_CAPABILITIES, CapabilityShader, \
- { \
- SPV_OPERAND_TYPE_NONE \
- } \
+#define CASE(NAME) \
+ { \
+ #NAME, ImageFormat##NAME, SPV_OPCODE_FLAGS_CAPABILITIES, \
+ SPV_CAPABILITY_AS_MASK(CapabilityShader), { \
+ SPV_OPERAND_TYPE_NONE \
+ } \
}
// clang-format off
CASE(Unknown),
#define ID SPV_OPERAND_TYPE_ID
#define NONE SPV_OPERAND_TYPE_NONE
{"None", spv::ImageOperandsMaskNone, SPV_OPCODE_FLAGS_NONE, 0, {NONE}},
- {CASE_CAP(Bias, CapabilityShader), {ID, NONE}},
+ {CASE_CAP(Bias, SPV_CAPABILITY_AS_MASK(CapabilityShader)), {ID, NONE}},
{CASE(Lod), {ID, NONE}},
{CASE(Grad), {ID, ID, NONE}},
{CASE(ConstOffset), {ID, NONE}},
- {CASE_CAP(Offset, CapabilityImageGatherExtended), {ID, NONE}},
+ {CASE_CAP(Offset, SPV_CAPABILITY_AS_MASK(CapabilityImageGatherExtended)),
+ {ID, NONE}},
{CASE(ConstOffsets), {ID, NONE}},
{CASE(Sample), {ID, NONE}},
- {CASE_CAP(MinLod, CapabilityMinLod), {ID, NONE}},
+ {CASE_CAP(MinLod, SPV_CAPABILITY_AS_MASK(CapabilityMinLod)), {ID, NONE}},
#undef CASE
#undef CASE_CAP
#undef ID
{"NotNaN",
FPFastMathModeNotNaNMask,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"NotInf",
FPFastMathModeNotInfMask,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"NSZ",
FPFastMathModeNSZMask,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"AllowRecip",
FPFastMathModeAllowRecipMask,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"Fast",
FPFastMathModeFastMask,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
};
{"RTE",
FPRoundingModeRTE,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"RTZ",
FPRoundingModeRTZ,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"RTP",
FPRoundingModeRTP,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"RTN",
FPRoundingModeRTN,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
};
{"Export",
LinkageTypeExport,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityLinkage,
+ SPV_CAPABILITY_AS_MASK(CapabilityLinkage),
{SPV_OPERAND_TYPE_NONE}},
{"Import",
LinkageTypeImport,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityLinkage,
+ SPV_CAPABILITY_AS_MASK(CapabilityLinkage),
{SPV_OPERAND_TYPE_NONE}},
};
{"ReadOnly",
AccessQualifierReadOnly,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"WriteOnly",
AccessQualifierWriteOnly,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"ReadWrite",
AccessQualifierReadWrite,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
};
{"Zext",
FunctionParameterAttributeZext,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"Sext",
FunctionParameterAttributeSext,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"ByVal",
FunctionParameterAttributeByVal,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"Sret",
FunctionParameterAttributeSret,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"NoAlias",
FunctionParameterAttributeNoAlias,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"NoCapture",
FunctionParameterAttributeNoCapture,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"NoWrite",
FunctionParameterAttributeNoWrite,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"NoReadWrite",
FunctionParameterAttributeNoReadWrite,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
};
{"RelaxedPrecision",
DecorationRelaxedPrecision,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{
"SpecId",
DecorationSpecId,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_LITERAL_NUMBER},
},
{"Block",
DecorationBlock,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"BufferBlock",
DecorationBufferBlock,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"RowMajor",
DecorationRowMajor,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityMatrix,
+ SPV_CAPABILITY_AS_MASK(CapabilityMatrix),
{SPV_OPERAND_TYPE_NONE}},
{"ColMajor",
DecorationColMajor,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityMatrix,
+ SPV_CAPABILITY_AS_MASK(CapabilityMatrix),
{SPV_OPERAND_TYPE_NONE}},
{"ArrayStride",
DecorationArrayStride,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_LITERAL_NUMBER, SPV_OPERAND_TYPE_NONE}},
{"MatrixStride",
DecorationMatrixStride,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_LITERAL_NUMBER, SPV_OPERAND_TYPE_NONE}},
{"GLSLShared",
DecorationGLSLShared,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"GLSLPacked",
DecorationGLSLPacked,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"CPacked",
DecorationCPacked,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"BuiltIn",
DecorationBuiltIn,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_BUILT_IN, SPV_OPERAND_TYPE_NONE}},
{"Smooth",
DecorationSmooth,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"NoPerspective",
DecorationNoPerspective,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"Flat",
DecorationFlat,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"Patch",
DecorationPatch,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityTessellation,
+ SPV_CAPABILITY_AS_MASK(CapabilityTessellation),
{SPV_OPERAND_TYPE_NONE}},
{"Centroid",
DecorationCentroid,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"Sample",
DecorationSample,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"Invariant",
DecorationInvariant,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"Restrict",
DecorationRestrict,
{"Constant",
DecorationConstant,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"Coherent",
DecorationCoherent,
{"Uniform",
DecorationUniform,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"SaturatedConversion",
DecorationSaturatedConversion,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"Stream",
DecorationStream,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityGeometry,
+ SPV_CAPABILITY_AS_MASK(CapabilityGeometry),
{SPV_OPERAND_TYPE_LITERAL_NUMBER, SPV_OPERAND_TYPE_NONE}},
{"Location",
DecorationLocation,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_LITERAL_NUMBER, SPV_OPERAND_TYPE_NONE}},
{"Component",
DecorationComponent,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_LITERAL_NUMBER, SPV_OPERAND_TYPE_NONE}},
{"Index",
DecorationIndex,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_LITERAL_NUMBER, SPV_OPERAND_TYPE_NONE}},
{"Binding",
DecorationBinding,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_LITERAL_NUMBER, SPV_OPERAND_TYPE_NONE}},
{"DescriptorSet",
DecorationDescriptorSet,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_LITERAL_NUMBER, SPV_OPERAND_TYPE_NONE}},
{"Offset",
DecorationOffset,
{"XfbBuffer",
DecorationXfbBuffer,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_LITERAL_NUMBER, SPV_OPERAND_TYPE_NONE}},
{"XfbStride",
DecorationXfbStride,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_LITERAL_NUMBER, SPV_OPERAND_TYPE_NONE}},
{"FuncParamAttr",
DecorationFuncParamAttr,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_FUNCTION_PARAMETER_ATTRIBUTE, SPV_OPERAND_TYPE_NONE}},
{"FPRoundingMode",
DecorationFPRoundingMode,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_FP_ROUNDING_MODE, SPV_OPERAND_TYPE_NONE}},
{"FPFastMathMode",
DecorationFPFastMathMode,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_FP_FAST_MATH_MODE, SPV_OPERAND_TYPE_NONE}},
{"LinkageAttributes",
DecorationLinkageAttributes,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityLinkage,
+ SPV_CAPABILITY_AS_MASK(CapabilityLinkage),
{SPV_OPERAND_TYPE_LITERAL_STRING, SPV_OPERAND_TYPE_LINKAGE_TYPE,
SPV_OPERAND_TYPE_NONE}},
{"NoContraction",
DecorationNoContraction,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"InputTargetIndex",
DecorationInputTargetIndex,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader, // TODO(dneto): Should this be CapabilityInputTarget?
+ SPV_CAPABILITY_AS_MASK(CapabilityShader), // TODO(dneto): Should this be
+ // CapabilityInputTarget?
{SPV_OPERAND_TYPE_NONE}}, // TODO(dneto): Should this have a literal
// number argument?
{"Alignment",
DecorationAlignment,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_LITERAL_NUMBER, SPV_OPERAND_TYPE_NONE}},
};
{"Position",
BuiltInPosition,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"PointSize",
BuiltInPointSize,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"ClipDistance",
BuiltInClipDistance,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"CullDistance",
BuiltInCullDistance,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"VertexId",
BuiltInVertexId,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"InstanceId",
BuiltInInstanceId,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"PrimitiveId",
BuiltInPrimitiveId,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityGeometry | CapabilityTessellation,
+ SPV_CAPABILITY_AS_MASK(CapabilityGeometry) |
+ SPV_CAPABILITY_AS_MASK(CapabilityTessellation),
{SPV_OPERAND_TYPE_NONE}},
{"InvocationId",
BuiltInInvocationId,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityGeometry | CapabilityTessellation,
+ SPV_CAPABILITY_AS_MASK(CapabilityGeometry) |
+ SPV_CAPABILITY_AS_MASK(CapabilityTessellation),
{SPV_OPERAND_TYPE_NONE}},
{"Layer",
BuiltInLayer,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityGeometry,
+ SPV_CAPABILITY_AS_MASK(CapabilityGeometry),
{SPV_OPERAND_TYPE_NONE}},
{"ViewportIndex",
BuiltInViewportIndex,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityGeometry,
+ SPV_CAPABILITY_AS_MASK(CapabilityGeometry),
{SPV_OPERAND_TYPE_NONE}},
{"TessLevelOuter",
BuiltInTessLevelOuter,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityTessellation,
+ SPV_CAPABILITY_AS_MASK(CapabilityTessellation),
{SPV_OPERAND_TYPE_NONE}},
{"TessLevelInner",
BuiltInTessLevelInner,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityTessellation,
+ SPV_CAPABILITY_AS_MASK(CapabilityTessellation),
{SPV_OPERAND_TYPE_NONE}},
{"TessCoord",
BuiltInTessCoord,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityTessellation,
+ SPV_CAPABILITY_AS_MASK(CapabilityTessellation),
{SPV_OPERAND_TYPE_NONE}},
{"PatchVertices",
BuiltInPatchVertices,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityTessellation,
+ SPV_CAPABILITY_AS_MASK(CapabilityTessellation),
{SPV_OPERAND_TYPE_NONE}},
{"FragCoord",
BuiltInFragCoord,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"PointCoord",
BuiltInPointCoord,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"FrontFacing",
BuiltInFrontFacing,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"SampleId",
BuiltInSampleId,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"SamplePosition",
BuiltInSamplePosition,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"SampleMask",
BuiltInSampleMask,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"FragColor",
BuiltInFragColor,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"FragDepth",
BuiltInFragDepth,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"HelperInvocation",
BuiltInHelperInvocation,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"NumWorkgroups",
BuiltInNumWorkgroups,
{"LocalInvocationIndex",
BuiltInLocalInvocationIndex,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"WorkDim",
BuiltInWorkDim,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"GlobalSize",
BuiltInGlobalSize,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"EnqueuedWorkgroupSize",
BuiltInEnqueuedWorkgroupSize,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"GlobalOffset",
BuiltInGlobalOffset,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"GlobalLinearId",
BuiltInGlobalLinearId,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"WorkgroupLinearId",
BuiltInWorkgroupLinearId,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"SubgroupSize",
BuiltInSubgroupSize,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"SubgroupMaxSize",
BuiltInSubgroupMaxSize,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"NumSubgroups",
BuiltInNumSubgroups,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"NumEnqueuedSubgroups",
BuiltInNumEnqueuedSubgroups,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"SubgroupId",
BuiltInSubgroupId,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"SubgroupLocalInvocationId",
BuiltInSubgroupLocalInvocationId,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"VertexIndex",
BuiltInVertexIndex,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"InstanceIndex",
BuiltInInstanceIndex,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
};
{"UniformMemory",
MemorySemanticsUniformMemoryMask,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{"SubgroupMemory",
MemorySemanticsSubgroupMemoryMask,
{"AtomicCounterMemory",
MemorySemanticsAtomicCounterMemoryMask,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityShader,
+ SPV_CAPABILITY_AS_MASK(CapabilityShader),
{SPV_OPERAND_TYPE_NONE}},
{
"ImageMemory",
{"Reduce",
GroupOperationReduce,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"InclusiveScan",
GroupOperationInclusiveScan,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"ExclusiveScan",
GroupOperationExclusiveScan,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
};
{"NoWait",
KernelEnqueueFlagsNoWait,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"WaitKernel",
KernelEnqueueFlagsWaitKernel,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
{"WaitWorkGroup",
KernelEnqueueFlagsWaitWorkGroup,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
};
{"CmdExecTime",
KernelProfilingInfoCmdExecTimeMask,
SPV_OPCODE_FLAGS_CAPABILITIES,
- CapabilityKernel,
+ SPV_CAPABILITY_AS_MASK(CapabilityKernel),
{SPV_OPERAND_TYPE_NONE}},
};