|
|
@@ -26,8 +26,8 @@
|
|
|
// the Binary Section of the SPIR-V specification.
|
|
|
|
|
|
// Enumeration tokens for SPIR-V, in various styles:
|
|
|
-// C, C++, C++11, JSON, Lua, Python, C#, D
|
|
|
-//
|
|
|
+// C, C++, C++11, JSON, Lua, Python, C#, D, Beef
|
|
|
+//
|
|
|
// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
|
|
|
// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
|
|
|
// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
|
|
|
@@ -36,7 +36,9 @@
|
|
|
// - C# will use enum classes in the Specification class located in the "Spv" namespace,
|
|
|
// e.g.: Spv.Specification.SourceLanguage.GLSL
|
|
|
// - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
|
|
|
-//
|
|
|
+// - Beef will use enum classes in the Specification class located in the "Spv" namespace,
|
|
|
+// e.g.: Spv.Specification.SourceLanguage.GLSL
|
|
|
+//
|
|
|
// Some tokens act like mask values, which can be OR'd together,
|
|
|
// while others are mutually exclusive. The mask-like ones have
|
|
|
// "Mask" in their name, and a parallel enum that has the shift
|
|
|
@@ -49,12 +51,12 @@ namespace spv {
|
|
|
|
|
|
typedef unsigned int Id;
|
|
|
|
|
|
-#define SPV_VERSION 0x10500
|
|
|
-#define SPV_REVISION 4
|
|
|
+#define SPV_VERSION 0x10600
|
|
|
+#define SPV_REVISION 1
|
|
|
|
|
|
static const unsigned int MagicNumber = 0x07230203;
|
|
|
-static const unsigned int Version = 0x00010500;
|
|
|
-static const unsigned int Revision = 4;
|
|
|
+static const unsigned int Version = 0x00010600;
|
|
|
+static const unsigned int Revision = 1;
|
|
|
static const unsigned int OpCodeMask = 0xffff;
|
|
|
static const unsigned int WordCountShift = 16;
|
|
|
|
|
|
@@ -65,6 +67,8 @@ enum SourceLanguage {
|
|
|
SourceLanguageOpenCL_C = 3,
|
|
|
SourceLanguageOpenCL_CPP = 4,
|
|
|
SourceLanguageHLSL = 5,
|
|
|
+ SourceLanguageCPP_for_OpenCL = 6,
|
|
|
+ SourceLanguageSYCL = 7,
|
|
|
SourceLanguageMax = 0x7fffffff,
|
|
|
};
|
|
|
|
|
|
@@ -90,6 +94,8 @@ enum ExecutionModel {
|
|
|
ExecutionModelMissNV = 5317,
|
|
|
ExecutionModelCallableKHR = 5318,
|
|
|
ExecutionModelCallableNV = 5318,
|
|
|
+ ExecutionModelTaskEXT = 5364,
|
|
|
+ ExecutionModelMeshEXT = 5365,
|
|
|
ExecutionModelMax = 0x7fffffff,
|
|
|
};
|
|
|
|
|
|
@@ -150,17 +156,28 @@ enum ExecutionMode {
|
|
|
ExecutionModeSubgroupsPerWorkgroupId = 37,
|
|
|
ExecutionModeLocalSizeId = 38,
|
|
|
ExecutionModeLocalSizeHintId = 39,
|
|
|
+ ExecutionModeSubgroupUniformControlFlowKHR = 4421,
|
|
|
ExecutionModePostDepthCoverage = 4446,
|
|
|
ExecutionModeDenormPreserve = 4459,
|
|
|
ExecutionModeDenormFlushToZero = 4460,
|
|
|
ExecutionModeSignedZeroInfNanPreserve = 4461,
|
|
|
ExecutionModeRoundingModeRTE = 4462,
|
|
|
ExecutionModeRoundingModeRTZ = 4463,
|
|
|
+ ExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
|
|
|
ExecutionModeStencilRefReplacingEXT = 5027,
|
|
|
+ ExecutionModeStencilRefUnchangedFrontAMD = 5079,
|
|
|
+ ExecutionModeStencilRefGreaterFrontAMD = 5080,
|
|
|
+ ExecutionModeStencilRefLessFrontAMD = 5081,
|
|
|
+ ExecutionModeStencilRefUnchangedBackAMD = 5082,
|
|
|
+ ExecutionModeStencilRefGreaterBackAMD = 5083,
|
|
|
+ ExecutionModeStencilRefLessBackAMD = 5084,
|
|
|
+ ExecutionModeOutputLinesEXT = 5269,
|
|
|
ExecutionModeOutputLinesNV = 5269,
|
|
|
+ ExecutionModeOutputPrimitivesEXT = 5270,
|
|
|
ExecutionModeOutputPrimitivesNV = 5270,
|
|
|
ExecutionModeDerivativeGroupQuadsNV = 5289,
|
|
|
ExecutionModeDerivativeGroupLinearNV = 5290,
|
|
|
+ ExecutionModeOutputTrianglesEXT = 5298,
|
|
|
ExecutionModeOutputTrianglesNV = 5298,
|
|
|
ExecutionModePixelInterlockOrderedEXT = 5366,
|
|
|
ExecutionModePixelInterlockUnorderedEXT = 5367,
|
|
|
@@ -168,10 +185,18 @@ enum ExecutionMode {
|
|
|
ExecutionModeSampleInterlockUnorderedEXT = 5369,
|
|
|
ExecutionModeShadingRateInterlockOrderedEXT = 5370,
|
|
|
ExecutionModeShadingRateInterlockUnorderedEXT = 5371,
|
|
|
+ ExecutionModeSharedLocalMemorySizeINTEL = 5618,
|
|
|
+ ExecutionModeRoundingModeRTPINTEL = 5620,
|
|
|
+ ExecutionModeRoundingModeRTNINTEL = 5621,
|
|
|
+ ExecutionModeFloatingPointModeALTINTEL = 5622,
|
|
|
+ ExecutionModeFloatingPointModeIEEEINTEL = 5623,
|
|
|
ExecutionModeMaxWorkgroupSizeINTEL = 5893,
|
|
|
ExecutionModeMaxWorkDimINTEL = 5894,
|
|
|
ExecutionModeNoGlobalOffsetINTEL = 5895,
|
|
|
ExecutionModeNumSIMDWorkitemsINTEL = 5896,
|
|
|
+ ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
|
|
|
+ ExecutionModeStreamingInterfaceINTEL = 6154,
|
|
|
+ ExecutionModeNamedBarrierCountINTEL = 6417,
|
|
|
ExecutionModeMax = 0x7fffffff,
|
|
|
};
|
|
|
|
|
|
@@ -203,7 +228,11 @@ enum StorageClass {
|
|
|
StorageClassShaderRecordBufferNV = 5343,
|
|
|
StorageClassPhysicalStorageBuffer = 5349,
|
|
|
StorageClassPhysicalStorageBufferEXT = 5349,
|
|
|
+ StorageClassHitObjectAttributeNV = 5385,
|
|
|
+ StorageClassTaskPayloadWorkgroupEXT = 5402,
|
|
|
StorageClassCodeSectionINTEL = 5605,
|
|
|
+ StorageClassDeviceOnlyINTEL = 5936,
|
|
|
+ StorageClassHostOnlyINTEL = 5937,
|
|
|
StorageClassMax = 0x7fffffff,
|
|
|
};
|
|
|
|
|
|
@@ -343,6 +372,8 @@ enum ImageOperandsShift {
|
|
|
ImageOperandsVolatileTexelKHRShift = 11,
|
|
|
ImageOperandsSignExtendShift = 12,
|
|
|
ImageOperandsZeroExtendShift = 13,
|
|
|
+ ImageOperandsNontemporalShift = 14,
|
|
|
+ ImageOperandsOffsetsShift = 16,
|
|
|
ImageOperandsMax = 0x7fffffff,
|
|
|
};
|
|
|
|
|
|
@@ -366,6 +397,8 @@ enum ImageOperandsMask {
|
|
|
ImageOperandsVolatileTexelKHRMask = 0x00000800,
|
|
|
ImageOperandsSignExtendMask = 0x00001000,
|
|
|
ImageOperandsZeroExtendMask = 0x00002000,
|
|
|
+ ImageOperandsNontemporalMask = 0x00004000,
|
|
|
+ ImageOperandsOffsetsMask = 0x00010000,
|
|
|
};
|
|
|
|
|
|
enum FPFastMathModeShift {
|
|
|
@@ -374,6 +407,8 @@ enum FPFastMathModeShift {
|
|
|
FPFastMathModeNSZShift = 2,
|
|
|
FPFastMathModeAllowRecipShift = 3,
|
|
|
FPFastMathModeFastShift = 4,
|
|
|
+ FPFastMathModeAllowContractFastINTELShift = 16,
|
|
|
+ FPFastMathModeAllowReassocINTELShift = 17,
|
|
|
FPFastMathModeMax = 0x7fffffff,
|
|
|
};
|
|
|
|
|
|
@@ -384,6 +419,8 @@ enum FPFastMathModeMask {
|
|
|
FPFastMathModeNSZMask = 0x00000004,
|
|
|
FPFastMathModeAllowRecipMask = 0x00000008,
|
|
|
FPFastMathModeFastMask = 0x00000010,
|
|
|
+ FPFastMathModeAllowContractFastINTELMask = 0x00010000,
|
|
|
+ FPFastMathModeAllowReassocINTELMask = 0x00020000,
|
|
|
};
|
|
|
|
|
|
enum FPRoundingMode {
|
|
|
@@ -397,6 +434,7 @@ enum FPRoundingMode {
|
|
|
enum LinkageType {
|
|
|
LinkageTypeExport = 0,
|
|
|
LinkageTypeImport = 1,
|
|
|
+ LinkageTypeLinkOnceODR = 2,
|
|
|
LinkageTypeMax = 0x7fffffff,
|
|
|
};
|
|
|
|
|
|
@@ -416,6 +454,7 @@ enum FunctionParameterAttribute {
|
|
|
FunctionParameterAttributeNoCapture = 5,
|
|
|
FunctionParameterAttributeNoWrite = 6,
|
|
|
FunctionParameterAttributeNoReadWrite = 7,
|
|
|
+ FunctionParameterAttributeRuntimeAlignedINTEL = 5940,
|
|
|
FunctionParameterAttributeMax = 0x7fffffff,
|
|
|
};
|
|
|
|
|
|
@@ -474,9 +513,11 @@ enum Decoration {
|
|
|
DecorationPassthroughNV = 5250,
|
|
|
DecorationViewportRelativeNV = 5252,
|
|
|
DecorationSecondaryViewportRelativeNV = 5256,
|
|
|
+ DecorationPerPrimitiveEXT = 5271,
|
|
|
DecorationPerPrimitiveNV = 5271,
|
|
|
DecorationPerViewNV = 5272,
|
|
|
DecorationPerTaskNV = 5273,
|
|
|
+ DecorationPerVertexKHR = 5285,
|
|
|
DecorationPerVertexNV = 5285,
|
|
|
DecorationNonUniform = 5300,
|
|
|
DecorationNonUniformEXT = 5300,
|
|
|
@@ -484,12 +525,27 @@ enum Decoration {
|
|
|
DecorationRestrictPointerEXT = 5355,
|
|
|
DecorationAliasedPointer = 5356,
|
|
|
DecorationAliasedPointerEXT = 5356,
|
|
|
+ DecorationHitObjectShaderRecordBufferNV = 5386,
|
|
|
+ DecorationBindlessSamplerNV = 5398,
|
|
|
+ DecorationBindlessImageNV = 5399,
|
|
|
+ DecorationBoundSamplerNV = 5400,
|
|
|
+ DecorationBoundImageNV = 5401,
|
|
|
+ DecorationSIMTCallINTEL = 5599,
|
|
|
DecorationReferencedIndirectlyINTEL = 5602,
|
|
|
+ DecorationClobberINTEL = 5607,
|
|
|
+ DecorationSideEffectsINTEL = 5608,
|
|
|
+ DecorationVectorComputeVariableINTEL = 5624,
|
|
|
+ DecorationFuncParamIOKindINTEL = 5625,
|
|
|
+ DecorationVectorComputeFunctionINTEL = 5626,
|
|
|
+ DecorationStackCallINTEL = 5627,
|
|
|
+ DecorationGlobalVariableOffsetINTEL = 5628,
|
|
|
DecorationCounterBuffer = 5634,
|
|
|
DecorationHlslCounterBufferGOOGLE = 5634,
|
|
|
DecorationHlslSemanticGOOGLE = 5635,
|
|
|
DecorationUserSemantic = 5635,
|
|
|
DecorationUserTypeGOOGLE = 5636,
|
|
|
+ DecorationFunctionRoundingModeINTEL = 5822,
|
|
|
+ DecorationFunctionDenormModeINTEL = 5823,
|
|
|
DecorationRegisterINTEL = 5825,
|
|
|
DecorationMemoryINTEL = 5826,
|
|
|
DecorationNumbanksINTEL = 5827,
|
|
|
@@ -502,6 +558,24 @@ enum Decoration {
|
|
|
DecorationMergeINTEL = 5834,
|
|
|
DecorationBankBitsINTEL = 5835,
|
|
|
DecorationForcePow2DepthINTEL = 5836,
|
|
|
+ DecorationBurstCoalesceINTEL = 5899,
|
|
|
+ DecorationCacheSizeINTEL = 5900,
|
|
|
+ DecorationDontStaticallyCoalesceINTEL = 5901,
|
|
|
+ DecorationPrefetchINTEL = 5902,
|
|
|
+ DecorationStallEnableINTEL = 5905,
|
|
|
+ DecorationFuseLoopsInFunctionINTEL = 5907,
|
|
|
+ DecorationMathOpDSPModeINTEL = 5909,
|
|
|
+ DecorationAliasScopeINTEL = 5914,
|
|
|
+ DecorationNoAliasINTEL = 5915,
|
|
|
+ DecorationInitiationIntervalINTEL = 5917,
|
|
|
+ DecorationMaxConcurrencyINTEL = 5918,
|
|
|
+ DecorationPipelineEnableINTEL = 5919,
|
|
|
+ DecorationBufferLocationINTEL = 5921,
|
|
|
+ DecorationIOPipeStorageINTEL = 5944,
|
|
|
+ DecorationFunctionFloatingPointModeINTEL = 6080,
|
|
|
+ DecorationSingleElementVectorINTEL = 6085,
|
|
|
+ DecorationVectorComputeCallableFunctionINTEL = 6087,
|
|
|
+ DecorationMediaBlockIOINTEL = 6140,
|
|
|
DecorationMax = 0x7fffffff,
|
|
|
};
|
|
|
|
|
|
@@ -547,6 +621,11 @@ enum BuiltIn {
|
|
|
BuiltInSubgroupLocalInvocationId = 41,
|
|
|
BuiltInVertexIndex = 42,
|
|
|
BuiltInInstanceIndex = 43,
|
|
|
+ BuiltInCoreIDARM = 4160,
|
|
|
+ BuiltInCoreCountARM = 4161,
|
|
|
+ BuiltInCoreMaxIDARM = 4162,
|
|
|
+ BuiltInWarpIDARM = 4163,
|
|
|
+ BuiltInWarpMaxIDARM = 4164,
|
|
|
BuiltInSubgroupEqMask = 4416,
|
|
|
BuiltInSubgroupEqMaskKHR = 4416,
|
|
|
BuiltInSubgroupGeMask = 4417,
|
|
|
@@ -586,12 +665,18 @@ enum BuiltIn {
|
|
|
BuiltInLayerPerViewNV = 5279,
|
|
|
BuiltInMeshViewCountNV = 5280,
|
|
|
BuiltInMeshViewIndicesNV = 5281,
|
|
|
+ BuiltInBaryCoordKHR = 5286,
|
|
|
BuiltInBaryCoordNV = 5286,
|
|
|
+ BuiltInBaryCoordNoPerspKHR = 5287,
|
|
|
BuiltInBaryCoordNoPerspNV = 5287,
|
|
|
BuiltInFragSizeEXT = 5292,
|
|
|
BuiltInFragmentSizeNV = 5292,
|
|
|
BuiltInFragInvocationCountEXT = 5293,
|
|
|
BuiltInInvocationsPerPixelNV = 5293,
|
|
|
+ BuiltInPrimitivePointIndicesEXT = 5294,
|
|
|
+ BuiltInPrimitiveLineIndicesEXT = 5295,
|
|
|
+ BuiltInPrimitiveTriangleIndicesEXT = 5296,
|
|
|
+ BuiltInCullPrimitiveEXT = 5299,
|
|
|
BuiltInLaunchIdKHR = 5319,
|
|
|
BuiltInLaunchIdNV = 5319,
|
|
|
BuiltInLaunchSizeKHR = 5320,
|
|
|
@@ -614,10 +699,10 @@ enum BuiltIn {
|
|
|
BuiltInObjectToWorldNV = 5330,
|
|
|
BuiltInWorldToObjectKHR = 5331,
|
|
|
BuiltInWorldToObjectNV = 5331,
|
|
|
- BuiltInHitTKHR = 5332,
|
|
|
BuiltInHitTNV = 5332,
|
|
|
BuiltInHitKindKHR = 5333,
|
|
|
BuiltInHitKindNV = 5333,
|
|
|
+ BuiltInCurrentRayTimeNV = 5334,
|
|
|
BuiltInIncomingRayFlagsKHR = 5351,
|
|
|
BuiltInIncomingRayFlagsNV = 5351,
|
|
|
BuiltInRayGeometryIndexKHR = 5352,
|
|
|
@@ -625,6 +710,7 @@ enum BuiltIn {
|
|
|
BuiltInSMCountNV = 5375,
|
|
|
BuiltInWarpIDNV = 5376,
|
|
|
BuiltInSMIDNV = 5377,
|
|
|
+ BuiltInCullMaskKHR = 6021,
|
|
|
BuiltInMax = 0x7fffffff,
|
|
|
};
|
|
|
|
|
|
@@ -657,6 +743,9 @@ enum LoopControlShift {
|
|
|
LoopControlLoopCoalesceINTELShift = 20,
|
|
|
LoopControlMaxInterleavingINTELShift = 21,
|
|
|
LoopControlSpeculatedIterationsINTELShift = 22,
|
|
|
+ LoopControlNoFusionINTELShift = 23,
|
|
|
+ LoopControlLoopCountINTELShift = 24,
|
|
|
+ LoopControlMaxReinvocationDelayINTELShift = 25,
|
|
|
LoopControlMax = 0x7fffffff,
|
|
|
};
|
|
|
|
|
|
@@ -678,6 +767,9 @@ enum LoopControlMask {
|
|
|
LoopControlLoopCoalesceINTELMask = 0x00100000,
|
|
|
LoopControlMaxInterleavingINTELMask = 0x00200000,
|
|
|
LoopControlSpeculatedIterationsINTELMask = 0x00400000,
|
|
|
+ LoopControlNoFusionINTELMask = 0x00800000,
|
|
|
+ LoopControlLoopCountINTELMask = 0x01000000,
|
|
|
+ LoopControlMaxReinvocationDelayINTELMask = 0x02000000,
|
|
|
};
|
|
|
|
|
|
enum FunctionControlShift {
|
|
|
@@ -685,6 +777,7 @@ enum FunctionControlShift {
|
|
|
FunctionControlDontInlineShift = 1,
|
|
|
FunctionControlPureShift = 2,
|
|
|
FunctionControlConstShift = 3,
|
|
|
+ FunctionControlOptNoneINTELShift = 16,
|
|
|
FunctionControlMax = 0x7fffffff,
|
|
|
};
|
|
|
|
|
|
@@ -694,6 +787,7 @@ enum FunctionControlMask {
|
|
|
FunctionControlDontInlineMask = 0x00000002,
|
|
|
FunctionControlPureMask = 0x00000004,
|
|
|
FunctionControlConstMask = 0x00000008,
|
|
|
+ FunctionControlOptNoneINTELMask = 0x00010000,
|
|
|
};
|
|
|
|
|
|
enum MemorySemanticsShift {
|
|
|
@@ -748,6 +842,8 @@ enum MemoryAccessShift {
|
|
|
MemoryAccessMakePointerVisibleKHRShift = 4,
|
|
|
MemoryAccessNonPrivatePointerShift = 5,
|
|
|
MemoryAccessNonPrivatePointerKHRShift = 5,
|
|
|
+ MemoryAccessAliasScopeINTELMaskShift = 16,
|
|
|
+ MemoryAccessNoAliasINTELMaskShift = 17,
|
|
|
MemoryAccessMax = 0x7fffffff,
|
|
|
};
|
|
|
|
|
|
@@ -762,6 +858,8 @@ enum MemoryAccessMask {
|
|
|
MemoryAccessMakePointerVisibleKHRMask = 0x00000010,
|
|
|
MemoryAccessNonPrivatePointerMask = 0x00000020,
|
|
|
MemoryAccessNonPrivatePointerKHRMask = 0x00000020,
|
|
|
+ MemoryAccessAliasScopeINTELMaskMask = 0x00010000,
|
|
|
+ MemoryAccessNoAliasINTELMaskMask = 0x00020000,
|
|
|
};
|
|
|
|
|
|
enum Scope {
|
|
|
@@ -874,9 +972,14 @@ enum Capability {
|
|
|
CapabilityGroupNonUniformQuad = 68,
|
|
|
CapabilityShaderLayer = 69,
|
|
|
CapabilityShaderViewportIndex = 70,
|
|
|
+ CapabilityUniformDecoration = 71,
|
|
|
+ CapabilityCoreBuiltinsARM = 4165,
|
|
|
CapabilityFragmentShadingRateKHR = 4422,
|
|
|
CapabilitySubgroupBallotKHR = 4423,
|
|
|
CapabilityDrawParameters = 4427,
|
|
|
+ CapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
|
|
|
+ CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
|
|
|
+ CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
|
|
|
CapabilitySubgroupVoteKHR = 4431,
|
|
|
CapabilityStorageBuffer16BitAccess = 4433,
|
|
|
CapabilityStorageUniformBufferBlock16 = 4433,
|
|
|
@@ -899,7 +1002,9 @@ enum Capability {
|
|
|
CapabilityRoundingModeRTE = 4467,
|
|
|
CapabilityRoundingModeRTZ = 4468,
|
|
|
CapabilityRayQueryProvisionalKHR = 4471,
|
|
|
- CapabilityRayTraversalPrimitiveCullingProvisionalKHR = 4478,
|
|
|
+ CapabilityRayQueryKHR = 4472,
|
|
|
+ CapabilityRayTraversalPrimitiveCullingKHR = 4478,
|
|
|
+ CapabilityRayTracingKHR = 4479,
|
|
|
CapabilityFloat16ImageAMD = 5008,
|
|
|
CapabilityImageGatherBiasLodAMD = 5009,
|
|
|
CapabilityFragmentMaskAMD = 5010,
|
|
|
@@ -917,6 +1022,8 @@ enum Capability {
|
|
|
CapabilityFragmentFullyCoveredEXT = 5265,
|
|
|
CapabilityMeshShadingNV = 5266,
|
|
|
CapabilityImageFootprintNV = 5282,
|
|
|
+ CapabilityMeshShadingEXT = 5283,
|
|
|
+ CapabilityFragmentBarycentricKHR = 5284,
|
|
|
CapabilityFragmentBarycentricNV = 5284,
|
|
|
CapabilityComputeDerivativeGroupQuadsNV = 5288,
|
|
|
CapabilityFragmentDensityEXT = 5291,
|
|
|
@@ -947,6 +1054,7 @@ enum Capability {
|
|
|
CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
|
|
|
CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
|
|
CapabilityRayTracingNV = 5340,
|
|
|
+ CapabilityRayTracingMotionBlurNV = 5341,
|
|
|
CapabilityVulkanMemoryModel = 5345,
|
|
|
CapabilityVulkanMemoryModelKHR = 5345,
|
|
|
CapabilityVulkanMemoryModelDeviceScope = 5346,
|
|
|
@@ -960,26 +1068,72 @@ enum Capability {
|
|
|
CapabilityFragmentShaderShadingRateInterlockEXT = 5372,
|
|
|
CapabilityShaderSMBuiltinsNV = 5373,
|
|
|
CapabilityFragmentShaderPixelInterlockEXT = 5378,
|
|
|
+ CapabilityDemoteToHelperInvocation = 5379,
|
|
|
CapabilityDemoteToHelperInvocationEXT = 5379,
|
|
|
+ CapabilityRayTracingOpacityMicromapEXT = 5381,
|
|
|
+ CapabilityShaderInvocationReorderNV = 5383,
|
|
|
+ CapabilityBindlessTextureNV = 5390,
|
|
|
CapabilitySubgroupShuffleINTEL = 5568,
|
|
|
CapabilitySubgroupBufferBlockIOINTEL = 5569,
|
|
|
CapabilitySubgroupImageBlockIOINTEL = 5570,
|
|
|
CapabilitySubgroupImageMediaBlockIOINTEL = 5579,
|
|
|
+ CapabilityRoundToInfinityINTEL = 5582,
|
|
|
+ CapabilityFloatingPointModeINTEL = 5583,
|
|
|
CapabilityIntegerFunctions2INTEL = 5584,
|
|
|
CapabilityFunctionPointersINTEL = 5603,
|
|
|
CapabilityIndirectReferencesINTEL = 5604,
|
|
|
+ CapabilityAsmINTEL = 5606,
|
|
|
+ CapabilityAtomicFloat32MinMaxEXT = 5612,
|
|
|
+ CapabilityAtomicFloat64MinMaxEXT = 5613,
|
|
|
+ CapabilityAtomicFloat16MinMaxEXT = 5616,
|
|
|
+ CapabilityVectorComputeINTEL = 5617,
|
|
|
+ CapabilityVectorAnyINTEL = 5619,
|
|
|
+ CapabilityExpectAssumeKHR = 5629,
|
|
|
CapabilitySubgroupAvcMotionEstimationINTEL = 5696,
|
|
|
CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
|
|
|
CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
|
|
|
+ CapabilityVariableLengthArrayINTEL = 5817,
|
|
|
+ CapabilityFunctionFloatControlINTEL = 5821,
|
|
|
CapabilityFPGAMemoryAttributesINTEL = 5824,
|
|
|
+ CapabilityFPFastMathModeINTEL = 5837,
|
|
|
+ CapabilityArbitraryPrecisionIntegersINTEL = 5844,
|
|
|
+ CapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
|
|
|
CapabilityUnstructuredLoopControlsINTEL = 5886,
|
|
|
CapabilityFPGALoopControlsINTEL = 5888,
|
|
|
CapabilityKernelAttributesINTEL = 5892,
|
|
|
CapabilityFPGAKernelAttributesINTEL = 5897,
|
|
|
+ CapabilityFPGAMemoryAccessesINTEL = 5898,
|
|
|
+ CapabilityFPGAClusterAttributesINTEL = 5904,
|
|
|
+ CapabilityLoopFuseINTEL = 5906,
|
|
|
+ CapabilityFPGADSPControlINTEL = 5908,
|
|
|
+ CapabilityMemoryAccessAliasingINTEL = 5910,
|
|
|
+ CapabilityFPGAInvocationPipeliningAttributesINTEL = 5916,
|
|
|
+ CapabilityFPGABufferLocationINTEL = 5920,
|
|
|
+ CapabilityArbitraryPrecisionFixedPointINTEL = 5922,
|
|
|
+ CapabilityUSMStorageClassesINTEL = 5935,
|
|
|
+ CapabilityRuntimeAlignedAttributeINTEL = 5939,
|
|
|
+ CapabilityIOPipesINTEL = 5943,
|
|
|
CapabilityBlockingPipesINTEL = 5945,
|
|
|
CapabilityFPGARegINTEL = 5948,
|
|
|
+ CapabilityDotProductInputAll = 6016,
|
|
|
+ CapabilityDotProductInputAllKHR = 6016,
|
|
|
+ CapabilityDotProductInput4x8Bit = 6017,
|
|
|
+ CapabilityDotProductInput4x8BitKHR = 6017,
|
|
|
+ CapabilityDotProductInput4x8BitPacked = 6018,
|
|
|
+ CapabilityDotProductInput4x8BitPackedKHR = 6018,
|
|
|
+ CapabilityDotProduct = 6019,
|
|
|
+ CapabilityDotProductKHR = 6019,
|
|
|
+ CapabilityRayCullMaskKHR = 6020,
|
|
|
+ CapabilityBitInstructions = 6025,
|
|
|
+ CapabilityGroupNonUniformRotateKHR = 6026,
|
|
|
CapabilityAtomicFloat32AddEXT = 6033,
|
|
|
CapabilityAtomicFloat64AddEXT = 6034,
|
|
|
+ CapabilityLongConstantCompositeINTEL = 6089,
|
|
|
+ CapabilityOptNoneINTEL = 6094,
|
|
|
+ CapabilityAtomicFloat16AddEXT = 6095,
|
|
|
+ CapabilityDebugInfoModuleINTEL = 6114,
|
|
|
+ CapabilitySplitBarrierINTEL = 6141,
|
|
|
+ CapabilityGroupUniformArithmeticKHR = 6400,
|
|
|
CapabilityMax = 0x7fffffff,
|
|
|
};
|
|
|
|
|
|
@@ -994,6 +1148,7 @@ enum RayFlagsShift {
|
|
|
RayFlagsCullNoOpaqueKHRShift = 7,
|
|
|
RayFlagsSkipTrianglesKHRShift = 8,
|
|
|
RayFlagsSkipAABBsKHRShift = 9,
|
|
|
+ RayFlagsForceOpacityMicromap2StateEXTShift = 10,
|
|
|
RayFlagsMax = 0x7fffffff,
|
|
|
};
|
|
|
|
|
|
@@ -1009,6 +1164,7 @@ enum RayFlagsMask {
|
|
|
RayFlagsCullNoOpaqueKHRMask = 0x00000080,
|
|
|
RayFlagsSkipTrianglesKHRMask = 0x00000100,
|
|
|
RayFlagsSkipAABBsKHRMask = 0x00000200,
|
|
|
+ RayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400,
|
|
|
};
|
|
|
|
|
|
enum RayQueryIntersection {
|
|
|
@@ -1046,6 +1202,44 @@ enum FragmentShadingRateMask {
|
|
|
FragmentShadingRateHorizontal4PixelsMask = 0x00000008,
|
|
|
};
|
|
|
|
|
|
+enum FPDenormMode {
|
|
|
+ FPDenormModePreserve = 0,
|
|
|
+ FPDenormModeFlushToZero = 1,
|
|
|
+ FPDenormModeMax = 0x7fffffff,
|
|
|
+};
|
|
|
+
|
|
|
+enum FPOperationMode {
|
|
|
+ FPOperationModeIEEE = 0,
|
|
|
+ FPOperationModeALT = 1,
|
|
|
+ FPOperationModeMax = 0x7fffffff,
|
|
|
+};
|
|
|
+
|
|
|
+enum QuantizationModes {
|
|
|
+ QuantizationModesTRN = 0,
|
|
|
+ QuantizationModesTRN_ZERO = 1,
|
|
|
+ QuantizationModesRND = 2,
|
|
|
+ QuantizationModesRND_ZERO = 3,
|
|
|
+ QuantizationModesRND_INF = 4,
|
|
|
+ QuantizationModesRND_MIN_INF = 5,
|
|
|
+ QuantizationModesRND_CONV = 6,
|
|
|
+ QuantizationModesRND_CONV_ODD = 7,
|
|
|
+ QuantizationModesMax = 0x7fffffff,
|
|
|
+};
|
|
|
+
|
|
|
+enum OverflowModes {
|
|
|
+ OverflowModesWRAP = 0,
|
|
|
+ OverflowModesSAT = 1,
|
|
|
+ OverflowModesSAT_ZERO = 2,
|
|
|
+ OverflowModesSAT_SYM = 3,
|
|
|
+ OverflowModesMax = 0x7fffffff,
|
|
|
+};
|
|
|
+
|
|
|
+enum PackedVectorFormat {
|
|
|
+ PackedVectorFormatPackedVectorFormat4x8Bit = 0,
|
|
|
+ PackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
|
|
|
+ PackedVectorFormatMax = 0x7fffffff,
|
|
|
+};
|
|
|
+
|
|
|
enum Op {
|
|
|
OpNop = 0,
|
|
|
OpUndef = 1,
|
|
|
@@ -1397,8 +1591,26 @@ enum Op {
|
|
|
OpSubgroupAllKHR = 4428,
|
|
|
OpSubgroupAnyKHR = 4429,
|
|
|
OpSubgroupAllEqualKHR = 4430,
|
|
|
+ OpGroupNonUniformRotateKHR = 4431,
|
|
|
OpSubgroupReadInvocationKHR = 4432,
|
|
|
- OpTypeRayQueryProvisionalKHR = 4472,
|
|
|
+ OpTraceRayKHR = 4445,
|
|
|
+ OpExecuteCallableKHR = 4446,
|
|
|
+ OpConvertUToAccelerationStructureKHR = 4447,
|
|
|
+ OpIgnoreIntersectionKHR = 4448,
|
|
|
+ OpTerminateRayKHR = 4449,
|
|
|
+ OpSDot = 4450,
|
|
|
+ OpSDotKHR = 4450,
|
|
|
+ OpUDot = 4451,
|
|
|
+ OpUDotKHR = 4451,
|
|
|
+ OpSUDot = 4452,
|
|
|
+ OpSUDotKHR = 4452,
|
|
|
+ OpSDotAccSat = 4453,
|
|
|
+ OpSDotAccSatKHR = 4453,
|
|
|
+ OpUDotAccSat = 4454,
|
|
|
+ OpUDotAccSatKHR = 4454,
|
|
|
+ OpSUDotAccSat = 4455,
|
|
|
+ OpSUDotAccSatKHR = 4455,
|
|
|
+ OpTypeRayQueryKHR = 4472,
|
|
|
OpRayQueryInitializeKHR = 4473,
|
|
|
OpRayQueryTerminateKHR = 4474,
|
|
|
OpRayQueryGenerateIntersectionKHR = 4475,
|
|
|
@@ -1416,20 +1628,53 @@ enum Op {
|
|
|
OpFragmentMaskFetchAMD = 5011,
|
|
|
OpFragmentFetchAMD = 5012,
|
|
|
OpReadClockKHR = 5056,
|
|
|
+ OpHitObjectRecordHitMotionNV = 5249,
|
|
|
+ OpHitObjectRecordHitWithIndexMotionNV = 5250,
|
|
|
+ OpHitObjectRecordMissMotionNV = 5251,
|
|
|
+ OpHitObjectGetWorldToObjectNV = 5252,
|
|
|
+ OpHitObjectGetObjectToWorldNV = 5253,
|
|
|
+ OpHitObjectGetObjectRayDirectionNV = 5254,
|
|
|
+ OpHitObjectGetObjectRayOriginNV = 5255,
|
|
|
+ OpHitObjectTraceRayMotionNV = 5256,
|
|
|
+ OpHitObjectGetShaderRecordBufferHandleNV = 5257,
|
|
|
+ OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
|
|
|
+ OpHitObjectRecordEmptyNV = 5259,
|
|
|
+ OpHitObjectTraceRayNV = 5260,
|
|
|
+ OpHitObjectRecordHitNV = 5261,
|
|
|
+ OpHitObjectRecordHitWithIndexNV = 5262,
|
|
|
+ OpHitObjectRecordMissNV = 5263,
|
|
|
+ OpHitObjectExecuteShaderNV = 5264,
|
|
|
+ OpHitObjectGetCurrentTimeNV = 5265,
|
|
|
+ OpHitObjectGetAttributesNV = 5266,
|
|
|
+ OpHitObjectGetHitKindNV = 5267,
|
|
|
+ OpHitObjectGetPrimitiveIndexNV = 5268,
|
|
|
+ OpHitObjectGetGeometryIndexNV = 5269,
|
|
|
+ OpHitObjectGetInstanceIdNV = 5270,
|
|
|
+ OpHitObjectGetInstanceCustomIndexNV = 5271,
|
|
|
+ OpHitObjectGetWorldRayDirectionNV = 5272,
|
|
|
+ OpHitObjectGetWorldRayOriginNV = 5273,
|
|
|
+ OpHitObjectGetRayTMaxNV = 5274,
|
|
|
+ OpHitObjectGetRayTMinNV = 5275,
|
|
|
+ OpHitObjectIsEmptyNV = 5276,
|
|
|
+ OpHitObjectIsHitNV = 5277,
|
|
|
+ OpHitObjectIsMissNV = 5278,
|
|
|
+ OpReorderThreadWithHitObjectNV = 5279,
|
|
|
+ OpReorderThreadWithHintNV = 5280,
|
|
|
+ OpTypeHitObjectNV = 5281,
|
|
|
OpImageSampleFootprintNV = 5283,
|
|
|
+ OpEmitMeshTasksEXT = 5294,
|
|
|
+ OpSetMeshOutputsEXT = 5295,
|
|
|
OpGroupNonUniformPartitionNV = 5296,
|
|
|
OpWritePackedPrimitiveIndices4x8NV = 5299,
|
|
|
OpReportIntersectionKHR = 5334,
|
|
|
OpReportIntersectionNV = 5334,
|
|
|
- OpIgnoreIntersectionKHR = 5335,
|
|
|
OpIgnoreIntersectionNV = 5335,
|
|
|
- OpTerminateRayKHR = 5336,
|
|
|
OpTerminateRayNV = 5336,
|
|
|
OpTraceNV = 5337,
|
|
|
- OpTraceRayKHR = 5337,
|
|
|
+ OpTraceMotionNV = 5338,
|
|
|
+ OpTraceRayMotionNV = 5339,
|
|
|
OpTypeAccelerationStructureKHR = 5341,
|
|
|
OpTypeAccelerationStructureNV = 5341,
|
|
|
- OpExecuteCallableKHR = 5344,
|
|
|
OpExecuteCallableNV = 5344,
|
|
|
OpTypeCooperativeMatrixNV = 5358,
|
|
|
OpCooperativeMatrixLoadNV = 5359,
|
|
|
@@ -1438,8 +1683,16 @@ enum Op {
|
|
|
OpCooperativeMatrixLengthNV = 5362,
|
|
|
OpBeginInvocationInterlockEXT = 5364,
|
|
|
OpEndInvocationInterlockEXT = 5365,
|
|
|
+ OpDemoteToHelperInvocation = 5380,
|
|
|
OpDemoteToHelperInvocationEXT = 5380,
|
|
|
OpIsHelperInvocationEXT = 5381,
|
|
|
+ OpConvertUToImageNV = 5391,
|
|
|
+ OpConvertUToSamplerNV = 5392,
|
|
|
+ OpConvertImageToUNV = 5393,
|
|
|
+ OpConvertSamplerToUNV = 5394,
|
|
|
+ OpConvertUToSampledImageNV = 5395,
|
|
|
+ OpConvertSampledImageToUNV = 5396,
|
|
|
+ OpSamplerImageAddressingModeNV = 5397,
|
|
|
OpSubgroupShuffleINTEL = 5571,
|
|
|
OpSubgroupShuffleDownINTEL = 5572,
|
|
|
OpSubgroupShuffleUpINTEL = 5573,
|
|
|
@@ -1464,8 +1717,15 @@ enum Op {
|
|
|
OpUSubSatINTEL = 5596,
|
|
|
OpIMul32x16INTEL = 5597,
|
|
|
OpUMul32x16INTEL = 5598,
|
|
|
- OpFunctionPointerINTEL = 5600,
|
|
|
+ OpConstantFunctionPointerINTEL = 5600,
|
|
|
OpFunctionPointerCallINTEL = 5601,
|
|
|
+ OpAsmTargetINTEL = 5609,
|
|
|
+ OpAsmINTEL = 5610,
|
|
|
+ OpAsmCallINTEL = 5611,
|
|
|
+ OpAtomicFMinEXT = 5614,
|
|
|
+ OpAtomicFMaxEXT = 5615,
|
|
|
+ OpAssumeTrueKHR = 5630,
|
|
|
+ OpExpectKHR = 5631,
|
|
|
OpDecorateString = 5632,
|
|
|
OpDecorateStringGOOGLE = 5632,
|
|
|
OpMemberDecorateString = 5633,
|
|
|
@@ -1588,7 +1848,67 @@ enum Op {
|
|
|
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
|
|
|
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
|
|
|
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
|
|
|
+ OpVariableLengthArrayINTEL = 5818,
|
|
|
+ OpSaveMemoryINTEL = 5819,
|
|
|
+ OpRestoreMemoryINTEL = 5820,
|
|
|
+ OpArbitraryFloatSinCosPiINTEL = 5840,
|
|
|
+ OpArbitraryFloatCastINTEL = 5841,
|
|
|
+ OpArbitraryFloatCastFromIntINTEL = 5842,
|
|
|
+ OpArbitraryFloatCastToIntINTEL = 5843,
|
|
|
+ OpArbitraryFloatAddINTEL = 5846,
|
|
|
+ OpArbitraryFloatSubINTEL = 5847,
|
|
|
+ OpArbitraryFloatMulINTEL = 5848,
|
|
|
+ OpArbitraryFloatDivINTEL = 5849,
|
|
|
+ OpArbitraryFloatGTINTEL = 5850,
|
|
|
+ OpArbitraryFloatGEINTEL = 5851,
|
|
|
+ OpArbitraryFloatLTINTEL = 5852,
|
|
|
+ OpArbitraryFloatLEINTEL = 5853,
|
|
|
+ OpArbitraryFloatEQINTEL = 5854,
|
|
|
+ OpArbitraryFloatRecipINTEL = 5855,
|
|
|
+ OpArbitraryFloatRSqrtINTEL = 5856,
|
|
|
+ OpArbitraryFloatCbrtINTEL = 5857,
|
|
|
+ OpArbitraryFloatHypotINTEL = 5858,
|
|
|
+ OpArbitraryFloatSqrtINTEL = 5859,
|
|
|
+ OpArbitraryFloatLogINTEL = 5860,
|
|
|
+ OpArbitraryFloatLog2INTEL = 5861,
|
|
|
+ OpArbitraryFloatLog10INTEL = 5862,
|
|
|
+ OpArbitraryFloatLog1pINTEL = 5863,
|
|
|
+ OpArbitraryFloatExpINTEL = 5864,
|
|
|
+ OpArbitraryFloatExp2INTEL = 5865,
|
|
|
+ OpArbitraryFloatExp10INTEL = 5866,
|
|
|
+ OpArbitraryFloatExpm1INTEL = 5867,
|
|
|
+ OpArbitraryFloatSinINTEL = 5868,
|
|
|
+ OpArbitraryFloatCosINTEL = 5869,
|
|
|
+ OpArbitraryFloatSinCosINTEL = 5870,
|
|
|
+ OpArbitraryFloatSinPiINTEL = 5871,
|
|
|
+ OpArbitraryFloatCosPiINTEL = 5872,
|
|
|
+ OpArbitraryFloatASinINTEL = 5873,
|
|
|
+ OpArbitraryFloatASinPiINTEL = 5874,
|
|
|
+ OpArbitraryFloatACosINTEL = 5875,
|
|
|
+ OpArbitraryFloatACosPiINTEL = 5876,
|
|
|
+ OpArbitraryFloatATanINTEL = 5877,
|
|
|
+ OpArbitraryFloatATanPiINTEL = 5878,
|
|
|
+ OpArbitraryFloatATan2INTEL = 5879,
|
|
|
+ OpArbitraryFloatPowINTEL = 5880,
|
|
|
+ OpArbitraryFloatPowRINTEL = 5881,
|
|
|
+ OpArbitraryFloatPowNINTEL = 5882,
|
|
|
OpLoopControlINTEL = 5887,
|
|
|
+ OpAliasDomainDeclINTEL = 5911,
|
|
|
+ OpAliasScopeDeclINTEL = 5912,
|
|
|
+ OpAliasScopeListDeclINTEL = 5913,
|
|
|
+ OpFixedSqrtINTEL = 5923,
|
|
|
+ OpFixedRecipINTEL = 5924,
|
|
|
+ OpFixedRsqrtINTEL = 5925,
|
|
|
+ OpFixedSinINTEL = 5926,
|
|
|
+ OpFixedCosINTEL = 5927,
|
|
|
+ OpFixedSinCosINTEL = 5928,
|
|
|
+ OpFixedSinPiINTEL = 5929,
|
|
|
+ OpFixedCosPiINTEL = 5930,
|
|
|
+ OpFixedSinCosPiINTEL = 5931,
|
|
|
+ OpFixedLogINTEL = 5932,
|
|
|
+ OpFixedExpINTEL = 5933,
|
|
|
+ OpPtrCastToCrossWorkgroupINTEL = 5934,
|
|
|
+ OpCrossWorkgroupCastToPtrINTEL = 5938,
|
|
|
OpReadPipeBlockingINTEL = 5946,
|
|
|
OpWritePipeBlockingINTEL = 5947,
|
|
|
OpFPGARegINTEL = 5949,
|
|
|
@@ -1610,10 +1930,27 @@ enum Op {
|
|
|
OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
|
|
|
OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
|
|
|
OpAtomicFAddEXT = 6035,
|
|
|
+ OpTypeBufferSurfaceINTEL = 6086,
|
|
|
+ OpTypeStructContinuedINTEL = 6090,
|
|
|
+ OpConstantCompositeContinuedINTEL = 6091,
|
|
|
+ OpSpecConstantCompositeContinuedINTEL = 6092,
|
|
|
+ OpControlBarrierArriveINTEL = 6142,
|
|
|
+ OpControlBarrierWaitINTEL = 6143,
|
|
|
+ OpGroupIMulKHR = 6401,
|
|
|
+ OpGroupFMulKHR = 6402,
|
|
|
+ OpGroupBitwiseAndKHR = 6403,
|
|
|
+ OpGroupBitwiseOrKHR = 6404,
|
|
|
+ OpGroupBitwiseXorKHR = 6405,
|
|
|
+ OpGroupLogicalAndKHR = 6406,
|
|
|
+ OpGroupLogicalOrKHR = 6407,
|
|
|
+ OpGroupLogicalXorKHR = 6408,
|
|
|
OpMax = 0x7fffffff,
|
|
|
};
|
|
|
|
|
|
#ifdef SPV_ENABLE_UTILITY_CODE
|
|
|
+#ifndef __cplusplus
|
|
|
+#include <stdbool.h>
|
|
|
+#endif
|
|
|
inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|
|
*hasResult = *hasResultType = false;
|
|
|
switch (opcode) {
|
|
|
@@ -1968,8 +2305,20 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|
|
case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpGroupNonUniformRotateKHR: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
|
|
|
- case OpTypeRayQueryProvisionalKHR: *hasResult = true; *hasResultType = false; break;
|
|
|
+ case OpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpSDot: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpUDot: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpSUDot: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
|
|
|
case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
|
|
|
case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
|
|
|
case OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
|
|
|
@@ -1987,13 +2336,50 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|
|
case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpHitObjectGetWorldToObjectNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpHitObjectGetObjectToWorldNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpHitObjectGetObjectRayDirectionNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpHitObjectGetObjectRayOriginNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpHitObjectTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpHitObjectGetShaderRecordBufferHandleNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpHitObjectGetShaderBindingTableRecordIndexNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpHitObjectRecordEmptyNV: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpHitObjectTraceRayNV: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpHitObjectRecordHitNV: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpHitObjectRecordHitWithIndexNV: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpHitObjectRecordMissNV: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpHitObjectExecuteShaderNV: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpHitObjectGetCurrentTimeNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpHitObjectGetAttributesNV: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpHitObjectGetHitKindNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpHitObjectGetPrimitiveIndexNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpHitObjectGetGeometryIndexNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpHitObjectGetInstanceIdNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpHitObjectGetInstanceCustomIndexNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpHitObjectGetWorldRayDirectionNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpHitObjectGetWorldRayOriginNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpHitObjectGetRayTMaxNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpHitObjectGetRayTMinNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpHitObjectIsEmptyNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpHitObjectIsHitNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpHitObjectIsMissNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpReorderThreadWithHitObjectNV: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpReorderThreadWithHintNV: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpTypeHitObjectNV: *hasResult = true; *hasResultType = false; break;
|
|
|
case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
|
|
|
case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
|
|
|
case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
|
|
|
case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
|
|
|
case OpTraceNV: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
|
|
|
case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
|
|
|
case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
|
|
|
case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
|
|
|
@@ -2003,8 +2389,15 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|
|
case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
|
|
|
case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
|
|
|
- case OpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
|
|
|
case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
|
|
|
case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
@@ -2029,8 +2422,15 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|
|
case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
- case OpFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpExpectKHR: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpDecorateString: *hasResult = false; *hasResultType = false; break;
|
|
|
case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
|
|
|
case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
@@ -2151,7 +2551,67 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|
|
case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpAliasDomainDeclINTEL: *hasResult = true; *hasResultType = false; break;
|
|
|
+ case OpAliasScopeDeclINTEL: *hasResult = true; *hasResultType = false; break;
|
|
|
+ case OpAliasScopeListDeclINTEL: *hasResult = true; *hasResultType = false; break;
|
|
|
+ case OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
|
|
|
@@ -2173,22 +2633,66 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
|
|
case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
|
|
|
case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
|
|
|
+ case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
|
|
|
+ case OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpGroupFMulKHR: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpGroupBitwiseOrKHR: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpGroupBitwiseXorKHR: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
|
|
|
+ case OpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
|
|
|
}
|
|
|
}
|
|
|
#endif /* SPV_ENABLE_UTILITY_CODE */
|
|
|
|
|
|
-// Overload operator| for mask bit combining
|
|
|
+// Overload bitwise operators for mask bit combining
|
|
|
|
|
|
inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
|
|
|
+inline ImageOperandsMask operator&(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) & unsigned(b)); }
|
|
|
+inline ImageOperandsMask operator^(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) ^ unsigned(b)); }
|
|
|
+inline ImageOperandsMask operator~(ImageOperandsMask a) { return ImageOperandsMask(~unsigned(a)); }
|
|
|
inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
|
|
|
+inline FPFastMathModeMask operator&(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) & unsigned(b)); }
|
|
|
+inline FPFastMathModeMask operator^(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) ^ unsigned(b)); }
|
|
|
+inline FPFastMathModeMask operator~(FPFastMathModeMask a) { return FPFastMathModeMask(~unsigned(a)); }
|
|
|
inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
|
|
|
+inline SelectionControlMask operator&(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) & unsigned(b)); }
|
|
|
+inline SelectionControlMask operator^(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) ^ unsigned(b)); }
|
|
|
+inline SelectionControlMask operator~(SelectionControlMask a) { return SelectionControlMask(~unsigned(a)); }
|
|
|
inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
|
|
|
+inline LoopControlMask operator&(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) & unsigned(b)); }
|
|
|
+inline LoopControlMask operator^(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) ^ unsigned(b)); }
|
|
|
+inline LoopControlMask operator~(LoopControlMask a) { return LoopControlMask(~unsigned(a)); }
|
|
|
inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
|
|
|
+inline FunctionControlMask operator&(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) & unsigned(b)); }
|
|
|
+inline FunctionControlMask operator^(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) ^ unsigned(b)); }
|
|
|
+inline FunctionControlMask operator~(FunctionControlMask a) { return FunctionControlMask(~unsigned(a)); }
|
|
|
inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
|
|
|
+inline MemorySemanticsMask operator&(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) & unsigned(b)); }
|
|
|
+inline MemorySemanticsMask operator^(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) ^ unsigned(b)); }
|
|
|
+inline MemorySemanticsMask operator~(MemorySemanticsMask a) { return MemorySemanticsMask(~unsigned(a)); }
|
|
|
inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
|
|
|
+inline MemoryAccessMask operator&(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) & unsigned(b)); }
|
|
|
+inline MemoryAccessMask operator^(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) ^ unsigned(b)); }
|
|
|
+inline MemoryAccessMask operator~(MemoryAccessMask a) { return MemoryAccessMask(~unsigned(a)); }
|
|
|
inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
|
|
|
+inline KernelProfilingInfoMask operator&(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) & unsigned(b)); }
|
|
|
+inline KernelProfilingInfoMask operator^(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) ^ unsigned(b)); }
|
|
|
+inline KernelProfilingInfoMask operator~(KernelProfilingInfoMask a) { return KernelProfilingInfoMask(~unsigned(a)); }
|
|
|
inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
|
|
|
+inline RayFlagsMask operator&(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) & unsigned(b)); }
|
|
|
+inline RayFlagsMask operator^(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) ^ unsigned(b)); }
|
|
|
+inline RayFlagsMask operator~(RayFlagsMask a) { return RayFlagsMask(~unsigned(a)); }
|
|
|
inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }
|
|
|
+inline FragmentShadingRateMask operator&(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) & unsigned(b)); }
|
|
|
+inline FragmentShadingRateMask operator^(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) ^ unsigned(b)); }
|
|
|
+inline FragmentShadingRateMask operator~(FragmentShadingRateMask a) { return FragmentShadingRateMask(~unsigned(a)); }
|
|
|
|
|
|
} // end namespace spv
|
|
|
|