Update external repos.
Fix fallout from changes. There's a bug in glslang that prevents `float16_t`, `[u]int16_t`, and `[u]int8_t` constants from adding the corresponding SPIR-V capabilities. SPIRV-Tools, meanwhile, tightened validation so that these constants are only valid if the corresponding `Float16`, `Int16`, and `Int8` caps are on. This affects the `16bit-constants.frag` test for GLSL and MSL.
This commit is contained in:
parent
94710fe608
commit
343c6f4ff4
@ -1,8 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
GLSLANG_REV=e291f7a09f6733f6634fe077a228056fabee881e
|
||||
SPIRV_TOOLS_REV=89fe836fe22c3e5c2a062ebeade012e2c2f0839b
|
||||
SPIRV_HEADERS_REV=c4f8f65792d4bf2657ca751904c511bbcf2ac77b
|
||||
GLSLANG_REV=25a508cc735109cc4e382c3a1cc293a9452a41f3
|
||||
SPIRV_TOOLS_REV=55adf4cf707bb12c29fc12f784ebeaa29a819e9b
|
||||
SPIRV_HEADERS_REV=29c11140baaf9f7fdaa39a583672c556bf1795a1
|
||||
|
||||
if [ -z $PROTOCOL ]; then
|
||||
PROTOCOL=git
|
||||
|
@ -27,12 +27,15 @@ struct SPIRV_Cross_Output
|
||||
|
||||
void frag_main()
|
||||
{
|
||||
int _22 = vIndex + 10;
|
||||
int _32 = vIndex + 40;
|
||||
FragColor = uSamplers[NonUniformResourceIndex(_22)].Sample(uSamps[NonUniformResourceIndex(_32)], vUV);
|
||||
FragColor = uCombinedSamplers[NonUniformResourceIndex(_22)].Sample(_uCombinedSamplers_sampler[NonUniformResourceIndex(_22)], vUV);
|
||||
FragColor += ubos[NonUniformResourceIndex(vIndex + 20)].v[_32];
|
||||
FragColor += asfloat(ssbos[NonUniformResourceIndex(vIndex + 50)].Load4((vIndex + 60) * 16 + 0));
|
||||
int _23 = vIndex + 10;
|
||||
int _34 = vIndex + 40;
|
||||
FragColor = uSamplers[NonUniformResourceIndex(_23)].Sample(uSamps[NonUniformResourceIndex(_34)], vUV);
|
||||
FragColor = uCombinedSamplers[NonUniformResourceIndex(_23)].Sample(_uCombinedSamplers_sampler[NonUniformResourceIndex(_23)], vUV);
|
||||
int _66 = vIndex + 20;
|
||||
FragColor += ubos[NonUniformResourceIndex(_66)].v[_34];
|
||||
int _84 = vIndex + 50;
|
||||
int _88 = vIndex + 60;
|
||||
FragColor += asfloat(ssbos[NonUniformResourceIndex(_84)].Load4(_88 * 16 + 0));
|
||||
}
|
||||
|
||||
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
|
||||
|
@ -39,12 +39,15 @@ fragment main0_out main0(main0_in in [[stage_in]], constant UBO* ubos_0 [[buffer
|
||||
};
|
||||
|
||||
main0_out out = {};
|
||||
int _24 = in.vIndex + 10;
|
||||
int _35 = in.vIndex + 40;
|
||||
out.FragColor = uSamplers[_24].sample(uSamps[_35], in.vUV);
|
||||
out.FragColor = uCombinedSamplers[_24].sample(uCombinedSamplersSmplr[_24], in.vUV);
|
||||
out.FragColor += ubos[(in.vIndex + 20)]->v[_35];
|
||||
out.FragColor += ssbos[(in.vIndex + 50)]->v[in.vIndex + 60];
|
||||
int _25 = in.vIndex + 10;
|
||||
int _37 = in.vIndex + 40;
|
||||
out.FragColor = uSamplers[_25].sample(uSamps[_37], in.vUV);
|
||||
out.FragColor = uCombinedSamplers[_25].sample(uCombinedSamplersSmplr[_25], in.vUV);
|
||||
int _69 = in.vIndex + 20;
|
||||
out.FragColor += ubos[(_69)]->v[_37];
|
||||
int _87 = in.vIndex + 50;
|
||||
int _91 = in.vIndex + 60;
|
||||
out.FragColor += ssbos[(_87)]->v[_91];
|
||||
return out;
|
||||
}
|
||||
|
||||
|
@ -21,11 +21,14 @@ layout(location = 1) in vec2 vUV;
|
||||
|
||||
void main()
|
||||
{
|
||||
int _22 = vIndex + 10;
|
||||
int _32 = vIndex + 40;
|
||||
FragColor = texture(sampler2D(uSamplers[nonuniformEXT(_22)], uSamps[nonuniformEXT(_32)]), vUV);
|
||||
FragColor = texture(uCombinedSamplers[nonuniformEXT(_22)], vUV);
|
||||
FragColor += ubos[nonuniformEXT(vIndex + 20)].v[_32];
|
||||
FragColor += ssbos[nonuniformEXT(vIndex + 50)].v[vIndex + 60];
|
||||
int _23 = vIndex + 10;
|
||||
int _34 = vIndex + 40;
|
||||
FragColor = texture(sampler2D(uSamplers[nonuniformEXT(_23)], uSamps[nonuniformEXT(_34)]), vUV);
|
||||
FragColor = texture(uCombinedSamplers[nonuniformEXT(_23)], vUV);
|
||||
int _66 = vIndex + 20;
|
||||
FragColor += ubos[nonuniformEXT(_66)].v[_34];
|
||||
int _84 = vIndex + 50;
|
||||
int _88 = vIndex + 60;
|
||||
FragColor += ssbos[nonuniformEXT(_84)].v[_88];
|
||||
}
|
||||
|
||||
|
@ -28,11 +28,17 @@ struct SPIRV_Cross_Output
|
||||
void frag_main()
|
||||
{
|
||||
int i = vIndex;
|
||||
FragColor = uSamplers[NonUniformResourceIndex(i + 10)].Sample(uSamps[NonUniformResourceIndex(i + 40)], vUV);
|
||||
int _47 = i + 10;
|
||||
FragColor = uCombinedSamplers[NonUniformResourceIndex(_47)].Sample(_uCombinedSamplers_sampler[NonUniformResourceIndex(_47)], vUV);
|
||||
FragColor += ubos[NonUniformResourceIndex(i + 20)].v[i + 40];
|
||||
FragColor += asfloat(ssbos[NonUniformResourceIndex(i + 50)].Load4((i + 60) * 16 + 0));
|
||||
int _23 = i + 10;
|
||||
int _34 = i + 40;
|
||||
FragColor = uSamplers[NonUniformResourceIndex(_23)].Sample(uSamps[NonUniformResourceIndex(_34)], vUV);
|
||||
int _50 = i + 10;
|
||||
FragColor = uCombinedSamplers[NonUniformResourceIndex(_50)].Sample(_uCombinedSamplers_sampler[NonUniformResourceIndex(_50)], vUV);
|
||||
int _66 = i + 20;
|
||||
int _70 = i + 40;
|
||||
FragColor += ubos[NonUniformResourceIndex(_66)].v[_70];
|
||||
int _84 = i + 50;
|
||||
int _88 = i + 60;
|
||||
FragColor += asfloat(ssbos[NonUniformResourceIndex(_84)].Load4(_88 * 16 + 0));
|
||||
}
|
||||
|
||||
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
|
||||
|
@ -40,12 +40,17 @@ fragment main0_out main0(main0_in in [[stage_in]], constant UBO* ubos_0 [[buffer
|
||||
|
||||
main0_out out = {};
|
||||
int i = in.vIndex;
|
||||
int _24 = i + 10;
|
||||
out.FragColor = uSamplers[_24].sample(uSamps[i + 40], in.vUV);
|
||||
int _50 = i + 10;
|
||||
out.FragColor = uCombinedSamplers[_50].sample(uCombinedSamplersSmplr[_50], in.vUV);
|
||||
out.FragColor += ubos[(i + 20)]->v[i + 40];
|
||||
out.FragColor += ssbos[(i + 50)]->v[i + 60];
|
||||
int _25 = i + 10;
|
||||
int _37 = i + 40;
|
||||
out.FragColor = uSamplers[_25].sample(uSamps[_37], in.vUV);
|
||||
int _53 = i + 10;
|
||||
out.FragColor = uCombinedSamplers[_53].sample(uCombinedSamplersSmplr[_53], in.vUV);
|
||||
int _69 = i + 20;
|
||||
int _73 = i + 40;
|
||||
out.FragColor += ubos[(_69)]->v[_73];
|
||||
int _87 = i + 50;
|
||||
int _91 = i + 60;
|
||||
out.FragColor += ssbos[(_87)]->v[_91];
|
||||
return out;
|
||||
}
|
||||
|
||||
|
@ -22,9 +22,16 @@ layout(location = 1) in vec2 vUV;
|
||||
void main()
|
||||
{
|
||||
int i = vIndex;
|
||||
FragColor = texture(sampler2D(uSamplers[nonuniformEXT(i + 10)], uSamps[nonuniformEXT(i + 40)]), vUV);
|
||||
FragColor = texture(uCombinedSamplers[nonuniformEXT(i + 10)], vUV);
|
||||
FragColor += ubos[nonuniformEXT(i + 20)].v[i + 40];
|
||||
FragColor += ssbos[nonuniformEXT(i + 50)].v[i + 60];
|
||||
int _23 = i + 10;
|
||||
int _34 = i + 40;
|
||||
FragColor = texture(sampler2D(uSamplers[nonuniformEXT(_23)], uSamps[nonuniformEXT(_34)]), vUV);
|
||||
int _50 = i + 10;
|
||||
FragColor = texture(uCombinedSamplers[nonuniformEXT(_50)], vUV);
|
||||
int _66 = i + 20;
|
||||
int _70 = i + 40;
|
||||
FragColor += ubos[nonuniformEXT(_66)].v[_70];
|
||||
int _84 = i + 50;
|
||||
int _88 = i + 60;
|
||||
FragColor += ssbos[nonuniformEXT(_84)].v[_88];
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpCapability StorageInputOutput16
|
||||
OpCapability Float16
|
||||
OpExtension "SPV_KHR_16bit_storage"
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
|
@ -5,6 +5,7 @@
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpCapability StorageInputOutput16
|
||||
OpCapability Float16
|
||||
OpExtension "SPV_KHR_16bit_storage"
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
|
@ -5,6 +5,7 @@
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpCapability StorageInputOutput16
|
||||
OpCapability Float16
|
||||
OpExtension "SPV_KHR_16bit_storage"
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
|
720
spirv.h
720
spirv.h
@ -53,12 +53,12 @@
|
||||
|
||||
typedef unsigned int SpvId;
|
||||
|
||||
#define SPV_VERSION 0x10300
|
||||
#define SPV_REVISION 6
|
||||
#define SPV_VERSION 0x10400
|
||||
#define SPV_REVISION 1
|
||||
|
||||
static const unsigned int SpvMagicNumber = 0x07230203;
|
||||
static const unsigned int SpvVersion = 0x00010300;
|
||||
static const unsigned int SpvRevision = 6;
|
||||
static const unsigned int SpvVersion = 0x00010400;
|
||||
static const unsigned int SpvRevision = 1;
|
||||
static const unsigned int SpvOpCodeMask = 0xffff;
|
||||
static const unsigned int SpvWordCountShift = 16;
|
||||
|
||||
@ -158,6 +158,12 @@ typedef enum SpvExecutionMode_ {
|
||||
SpvExecutionModeDerivativeGroupQuadsNV = 5289,
|
||||
SpvExecutionModeDerivativeGroupLinearNV = 5290,
|
||||
SpvExecutionModeOutputTrianglesNV = 5298,
|
||||
SpvExecutionModePixelInterlockOrderedEXT = 5366,
|
||||
SpvExecutionModePixelInterlockUnorderedEXT = 5367,
|
||||
SpvExecutionModeSampleInterlockOrderedEXT = 5368,
|
||||
SpvExecutionModeSampleInterlockUnorderedEXT = 5369,
|
||||
SpvExecutionModeShadingRateInterlockOrderedEXT = 5370,
|
||||
SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371,
|
||||
SpvExecutionModeMax = 0x7fffffff,
|
||||
} SpvExecutionMode;
|
||||
|
||||
@ -313,6 +319,8 @@ typedef enum SpvImageOperandsShift_ {
|
||||
SpvImageOperandsMakeTexelVisibleKHRShift = 9,
|
||||
SpvImageOperandsNonPrivateTexelKHRShift = 10,
|
||||
SpvImageOperandsVolatileTexelKHRShift = 11,
|
||||
SpvImageOperandsSignExtendShift = 12,
|
||||
SpvImageOperandsZeroExtendShift = 13,
|
||||
SpvImageOperandsMax = 0x7fffffff,
|
||||
} SpvImageOperandsShift;
|
||||
|
||||
@ -330,6 +338,8 @@ typedef enum SpvImageOperandsMask_ {
|
||||
SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
|
||||
SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400,
|
||||
SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
|
||||
SpvImageOperandsSignExtendMask = 0x00001000,
|
||||
SpvImageOperandsZeroExtendMask = 0x00002000,
|
||||
} SpvImageOperandsMask;
|
||||
|
||||
typedef enum SpvFPFastMathModeShift_ {
|
||||
@ -410,6 +420,7 @@ typedef enum SpvDecoration_ {
|
||||
SpvDecorationNonWritable = 24,
|
||||
SpvDecorationNonReadable = 25,
|
||||
SpvDecorationUniform = 26,
|
||||
SpvDecorationUniformId = 27,
|
||||
SpvDecorationSaturatedConversion = 28,
|
||||
SpvDecorationStream = 29,
|
||||
SpvDecorationLocation = 30,
|
||||
@ -444,8 +455,11 @@ typedef enum SpvDecoration_ {
|
||||
SpvDecorationNonUniformEXT = 5300,
|
||||
SpvDecorationRestrictPointerEXT = 5355,
|
||||
SpvDecorationAliasedPointerEXT = 5356,
|
||||
SpvDecorationCounterBuffer = 5634,
|
||||
SpvDecorationHlslCounterBufferGOOGLE = 5634,
|
||||
SpvDecorationHlslSemanticGOOGLE = 5635,
|
||||
SpvDecorationUserSemantic = 5635,
|
||||
SpvDecorationUserTypeGOOGLE = 5636,
|
||||
SpvDecorationMax = 0x7fffffff,
|
||||
} SpvDecoration;
|
||||
|
||||
@ -548,6 +562,10 @@ typedef enum SpvBuiltIn_ {
|
||||
SpvBuiltInHitTNV = 5332,
|
||||
SpvBuiltInHitKindNV = 5333,
|
||||
SpvBuiltInIncomingRayFlagsNV = 5351,
|
||||
SpvBuiltInWarpsPerSMNV = 5374,
|
||||
SpvBuiltInSMCountNV = 5375,
|
||||
SpvBuiltInWarpIDNV = 5376,
|
||||
SpvBuiltInSMIDNV = 5377,
|
||||
SpvBuiltInMax = 0x7fffffff,
|
||||
} SpvBuiltIn;
|
||||
|
||||
@ -568,6 +586,11 @@ typedef enum SpvLoopControlShift_ {
|
||||
SpvLoopControlDontUnrollShift = 1,
|
||||
SpvLoopControlDependencyInfiniteShift = 2,
|
||||
SpvLoopControlDependencyLengthShift = 3,
|
||||
SpvLoopControlMinIterationsShift = 4,
|
||||
SpvLoopControlMaxIterationsShift = 5,
|
||||
SpvLoopControlIterationMultipleShift = 6,
|
||||
SpvLoopControlPeelCountShift = 7,
|
||||
SpvLoopControlPartialCountShift = 8,
|
||||
SpvLoopControlMax = 0x7fffffff,
|
||||
} SpvLoopControlShift;
|
||||
|
||||
@ -577,6 +600,11 @@ typedef enum SpvLoopControlMask_ {
|
||||
SpvLoopControlDontUnrollMask = 0x00000002,
|
||||
SpvLoopControlDependencyInfiniteMask = 0x00000004,
|
||||
SpvLoopControlDependencyLengthMask = 0x00000008,
|
||||
SpvLoopControlMinIterationsMask = 0x00000010,
|
||||
SpvLoopControlMaxIterationsMask = 0x00000020,
|
||||
SpvLoopControlIterationMultipleMask = 0x00000040,
|
||||
SpvLoopControlPeelCountMask = 0x00000080,
|
||||
SpvLoopControlPartialCountMask = 0x00000100,
|
||||
} SpvLoopControlMask;
|
||||
|
||||
typedef enum SpvFunctionControlShift_ {
|
||||
@ -609,6 +637,7 @@ typedef enum SpvMemorySemanticsShift_ {
|
||||
SpvMemorySemanticsOutputMemoryKHRShift = 12,
|
||||
SpvMemorySemanticsMakeAvailableKHRShift = 13,
|
||||
SpvMemorySemanticsMakeVisibleKHRShift = 14,
|
||||
SpvMemorySemanticsVolatileShift = 15,
|
||||
SpvMemorySemanticsMax = 0x7fffffff,
|
||||
} SpvMemorySemanticsShift;
|
||||
|
||||
@ -627,6 +656,7 @@ typedef enum SpvMemorySemanticsMask_ {
|
||||
SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000,
|
||||
SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000,
|
||||
SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000,
|
||||
SpvMemorySemanticsVolatileMask = 0x00008000,
|
||||
} SpvMemorySemanticsMask;
|
||||
|
||||
typedef enum SpvMemoryAccessShift_ {
|
||||
@ -816,10 +846,19 @@ typedef enum SpvCapability_ {
|
||||
SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347,
|
||||
SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
|
||||
SpvCapabilityCooperativeMatrixNV = 5357,
|
||||
SpvCapabilityFragmentShaderSampleInterlockEXT = 5363,
|
||||
SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372,
|
||||
SpvCapabilityShaderSMBuiltinsNV = 5373,
|
||||
SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
|
||||
SpvCapabilityDemoteToHelperInvocationEXT = 5379,
|
||||
SpvCapabilitySubgroupShuffleINTEL = 5568,
|
||||
SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
|
||||
SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
|
||||
SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579,
|
||||
SpvCapabilityIntegerFunctions2INTEL = 5584,
|
||||
SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
|
||||
SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
|
||||
SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
|
||||
SpvCapabilityMax = 0x7fffffff,
|
||||
} SpvCapability;
|
||||
|
||||
@ -1164,6 +1203,10 @@ typedef enum SpvOp_ {
|
||||
SpvOpGroupNonUniformLogicalXor = 364,
|
||||
SpvOpGroupNonUniformQuadBroadcast = 365,
|
||||
SpvOpGroupNonUniformQuadSwap = 366,
|
||||
SpvOpCopyLogical = 400,
|
||||
SpvOpPtrEqual = 401,
|
||||
SpvOpPtrNotEqual = 402,
|
||||
SpvOpPtrDiff = 403,
|
||||
SpvOpSubgroupBallotKHR = 4421,
|
||||
SpvOpSubgroupFirstInvocationKHR = 4422,
|
||||
SpvOpSubgroupAllKHR = 4428,
|
||||
@ -1194,6 +1237,10 @@ typedef enum SpvOp_ {
|
||||
SpvOpCooperativeMatrixStoreNV = 5360,
|
||||
SpvOpCooperativeMatrixMulAddNV = 5361,
|
||||
SpvOpCooperativeMatrixLengthNV = 5362,
|
||||
SpvOpBeginInvocationInterlockEXT = 5364,
|
||||
SpvOpEndInvocationInterlockEXT = 5365,
|
||||
SpvOpDemoteToHelperInvocationEXT = 5380,
|
||||
SpvOpIsHelperInvocationEXT = 5381,
|
||||
SpvOpSubgroupShuffleINTEL = 5571,
|
||||
SpvOpSubgroupShuffleDownINTEL = 5572,
|
||||
SpvOpSubgroupShuffleUpINTEL = 5573,
|
||||
@ -1204,10 +1251,675 @@ typedef enum SpvOp_ {
|
||||
SpvOpSubgroupImageBlockWriteINTEL = 5578,
|
||||
SpvOpSubgroupImageMediaBlockReadINTEL = 5580,
|
||||
SpvOpSubgroupImageMediaBlockWriteINTEL = 5581,
|
||||
SpvOpUCountLeadingZerosINTEL = 5585,
|
||||
SpvOpUCountTrailingZerosINTEL = 5586,
|
||||
SpvOpAbsISubINTEL = 5587,
|
||||
SpvOpAbsUSubINTEL = 5588,
|
||||
SpvOpIAddSatINTEL = 5589,
|
||||
SpvOpUAddSatINTEL = 5590,
|
||||
SpvOpIAverageINTEL = 5591,
|
||||
SpvOpUAverageINTEL = 5592,
|
||||
SpvOpIAverageRoundedINTEL = 5593,
|
||||
SpvOpUAverageRoundedINTEL = 5594,
|
||||
SpvOpISubSatINTEL = 5595,
|
||||
SpvOpUSubSatINTEL = 5596,
|
||||
SpvOpIMul32x16INTEL = 5597,
|
||||
SpvOpUMul32x16INTEL = 5598,
|
||||
SpvOpDecorateString = 5632,
|
||||
SpvOpDecorateStringGOOGLE = 5632,
|
||||
SpvOpMemberDecorateString = 5633,
|
||||
SpvOpMemberDecorateStringGOOGLE = 5633,
|
||||
SpvOpVmeImageINTEL = 5699,
|
||||
SpvOpTypeVmeImageINTEL = 5700,
|
||||
SpvOpTypeAvcImePayloadINTEL = 5701,
|
||||
SpvOpTypeAvcRefPayloadINTEL = 5702,
|
||||
SpvOpTypeAvcSicPayloadINTEL = 5703,
|
||||
SpvOpTypeAvcMcePayloadINTEL = 5704,
|
||||
SpvOpTypeAvcMceResultINTEL = 5705,
|
||||
SpvOpTypeAvcImeResultINTEL = 5706,
|
||||
SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
|
||||
SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
|
||||
SpvOpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
|
||||
SpvOpTypeAvcImeDualReferenceStreaminINTEL = 5710,
|
||||
SpvOpTypeAvcRefResultINTEL = 5711,
|
||||
SpvOpTypeAvcSicResultINTEL = 5712,
|
||||
SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
|
||||
SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
|
||||
SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
|
||||
SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
|
||||
SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
|
||||
SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
|
||||
SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
|
||||
SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
|
||||
SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
|
||||
SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
|
||||
SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
|
||||
SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
|
||||
SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
|
||||
SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
|
||||
SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
|
||||
SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
|
||||
SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
|
||||
SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
|
||||
SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
|
||||
SpvOpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
|
||||
SpvOpSubgroupAvcMceConvertToImeResultINTEL = 5733,
|
||||
SpvOpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
|
||||
SpvOpSubgroupAvcMceConvertToRefResultINTEL = 5735,
|
||||
SpvOpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
|
||||
SpvOpSubgroupAvcMceConvertToSicResultINTEL = 5737,
|
||||
SpvOpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
|
||||
SpvOpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
|
||||
SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
|
||||
SpvOpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
|
||||
SpvOpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
|
||||
SpvOpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
|
||||
SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
|
||||
SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
|
||||
SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
|
||||
SpvOpSubgroupAvcImeInitializeINTEL = 5747,
|
||||
SpvOpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
|
||||
SpvOpSubgroupAvcImeSetDualReferenceINTEL = 5749,
|
||||
SpvOpSubgroupAvcImeRefWindowSizeINTEL = 5750,
|
||||
SpvOpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
|
||||
SpvOpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
|
||||
SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
|
||||
SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
|
||||
SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
|
||||
SpvOpSubgroupAvcImeSetWeightedSadINTEL = 5756,
|
||||
SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
|
||||
SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
|
||||
SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
|
||||
SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
|
||||
SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
|
||||
SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
|
||||
SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
|
||||
SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
|
||||
SpvOpSubgroupAvcImeConvertToMceResultINTEL = 5765,
|
||||
SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
|
||||
SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
|
||||
SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
|
||||
SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
|
||||
SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
|
||||
SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
|
||||
SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
|
||||
SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
|
||||
SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
|
||||
SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
|
||||
SpvOpSubgroupAvcImeGetBorderReachedINTEL = 5776,
|
||||
SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
|
||||
SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
|
||||
SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
|
||||
SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
|
||||
SpvOpSubgroupAvcFmeInitializeINTEL = 5781,
|
||||
SpvOpSubgroupAvcBmeInitializeINTEL = 5782,
|
||||
SpvOpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
|
||||
SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
|
||||
SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
|
||||
SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
|
||||
SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
|
||||
SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
|
||||
SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
|
||||
SpvOpSubgroupAvcRefConvertToMceResultINTEL = 5790,
|
||||
SpvOpSubgroupAvcSicInitializeINTEL = 5791,
|
||||
SpvOpSubgroupAvcSicConfigureSkcINTEL = 5792,
|
||||
SpvOpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
|
||||
SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
|
||||
SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
|
||||
SpvOpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
|
||||
SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
|
||||
SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
|
||||
SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
|
||||
SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
|
||||
SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
|
||||
SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
|
||||
SpvOpSubgroupAvcSicEvaluateIpeINTEL = 5803,
|
||||
SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
|
||||
SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
|
||||
SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
|
||||
SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
|
||||
SpvOpSubgroupAvcSicConvertToMceResultINTEL = 5808,
|
||||
SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
|
||||
SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
|
||||
SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
|
||||
SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
|
||||
SpvOpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
|
||||
SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
|
||||
SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
|
||||
SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
|
||||
SpvOpMax = 0x7fffffff,
|
||||
} SpvOp;
|
||||
|
||||
#ifdef SPV_ENABLE_UTILITY_CODE
|
||||
inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultType) {
|
||||
*hasResult = *hasResultType = false;
|
||||
switch (opcode) {
|
||||
default: /* unknown opcode */ break;
|
||||
case SpvOpNop: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpUndef: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSourceContinued: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpSource: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpSourceExtension: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpName: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpMemberName: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpString: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpLine: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpExtension: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpExtInstImport: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpExtInst: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpMemoryModel: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpEntryPoint: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpExecutionMode: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpCapability: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpTypeVoid: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeBool: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeInt: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeFloat: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeVector: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeMatrix: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeImage: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeSampler: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeArray: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeStruct: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeOpaque: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypePointer: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeFunction: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeEvent: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeReserveId: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeQueue: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypePipe: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpConstantTrue: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpConstantFalse: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpConstant: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpConstantComposite: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpConstantSampler: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpConstantNull: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSpecConstant: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFunction: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFunctionParameter: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFunctionEnd: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpFunctionCall: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpVariable: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpLoad: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpStore: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpCopyMemory: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpAccessChain: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpArrayLength: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpDecorate: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpMemberDecorate: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpDecorationGroup: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpGroupDecorate: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpVectorShuffle: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpCompositeExtract: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpCompositeInsert: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpCopyObject: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpTranspose: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSampledImage: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageFetch: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageGather: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageDrefGather: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageRead: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageWrite: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpImage: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageQuerySize: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageQueryLod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpConvertFToU: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpConvertFToS: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpConvertSToF: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpConvertUToF: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpUConvert: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSConvert: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFConvert: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpBitcast: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSNegate: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFNegate: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpIAdd: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFAdd: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpISub: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFSub: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpIMul: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFMul: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpUDiv: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSDiv: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFDiv: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpUMod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSRem: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSMod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFRem: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFMod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpOuterProduct: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpDot: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpIAddCarry: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpISubBorrow: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpUMulExtended: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSMulExtended: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpAny: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpAll: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpIsNan: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpIsInf: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpIsFinite: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpIsNormal: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSignBitSet: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpLessOrGreater: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpOrdered: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpUnordered: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpLogicalEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpLogicalOr: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpLogicalAnd: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpLogicalNot: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSelect: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpIEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpINotEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpUGreaterThan: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSGreaterThan: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpULessThan: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSLessThan: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpULessThanEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFOrdEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFUnordEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpBitwiseOr: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpBitwiseXor: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpNot: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpBitReverse: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpBitCount: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpDPdx: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpDPdy: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFwidth: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpDPdxFine: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpDPdyFine: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFwidthFine: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpEmitVertex: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpEndPrimitive: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpControlBarrier: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpAtomicLoad: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpAtomicStore: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpAtomicExchange: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpAtomicISub: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpAtomicSMin: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpAtomicUMin: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpAtomicSMax: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpAtomicUMax: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpAtomicAnd: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpAtomicOr: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpAtomicXor: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpPhi: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpLoopMerge: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpSelectionMerge: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpLabel: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpBranch: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpBranchConditional: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpSwitch: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpKill: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpReturn: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpReturnValue: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpUnreachable: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpLifetimeStart: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpLifetimeStop: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpGroupAll: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupAny: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupIAdd: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupFAdd: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupFMin: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupUMin: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupSMin: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupFMax: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupUMax: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupSMax: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpReadPipe: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpWritePipe: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpRetainEvent: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpReleaseEvent: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpIsValidEvent: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpBuildNDRange: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSparseGather: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpNoLine: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpImageSparseRead: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSizeOf: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpModuleProcessed: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpExecutionModeId: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpDecorateId: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpCopyLogical: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
}
|
||||
}
|
||||
#endif /* SPV_ENABLE_UTILITY_CODE */
|
||||
|
||||
#endif
|
||||
|
||||
|
726
spirv.hpp
726
spirv.hpp
@ -49,12 +49,12 @@ namespace spv {
|
||||
|
||||
typedef unsigned int Id;
|
||||
|
||||
#define SPV_VERSION 0x10300
|
||||
#define SPV_REVISION 6
|
||||
#define SPV_VERSION 0x10400
|
||||
#define SPV_REVISION 1
|
||||
|
||||
static const unsigned int MagicNumber = 0x07230203;
|
||||
static const unsigned int Version = 0x00010300;
|
||||
static const unsigned int Revision = 6;
|
||||
static const unsigned int Version = 0x00010400;
|
||||
static const unsigned int Revision = 1;
|
||||
static const unsigned int OpCodeMask = 0xffff;
|
||||
static const unsigned int WordCountShift = 16;
|
||||
|
||||
@ -154,6 +154,12 @@ enum ExecutionMode {
|
||||
ExecutionModeDerivativeGroupQuadsNV = 5289,
|
||||
ExecutionModeDerivativeGroupLinearNV = 5290,
|
||||
ExecutionModeOutputTrianglesNV = 5298,
|
||||
ExecutionModePixelInterlockOrderedEXT = 5366,
|
||||
ExecutionModePixelInterlockUnorderedEXT = 5367,
|
||||
ExecutionModeSampleInterlockOrderedEXT = 5368,
|
||||
ExecutionModeSampleInterlockUnorderedEXT = 5369,
|
||||
ExecutionModeShadingRateInterlockOrderedEXT = 5370,
|
||||
ExecutionModeShadingRateInterlockUnorderedEXT = 5371,
|
||||
ExecutionModeMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@ -309,6 +315,8 @@ enum ImageOperandsShift {
|
||||
ImageOperandsMakeTexelVisibleKHRShift = 9,
|
||||
ImageOperandsNonPrivateTexelKHRShift = 10,
|
||||
ImageOperandsVolatileTexelKHRShift = 11,
|
||||
ImageOperandsSignExtendShift = 12,
|
||||
ImageOperandsZeroExtendShift = 13,
|
||||
ImageOperandsMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@ -326,6 +334,8 @@ enum ImageOperandsMask {
|
||||
ImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
|
||||
ImageOperandsNonPrivateTexelKHRMask = 0x00000400,
|
||||
ImageOperandsVolatileTexelKHRMask = 0x00000800,
|
||||
ImageOperandsSignExtendMask = 0x00001000,
|
||||
ImageOperandsZeroExtendMask = 0x00002000,
|
||||
};
|
||||
|
||||
enum FPFastMathModeShift {
|
||||
@ -406,6 +416,7 @@ enum Decoration {
|
||||
DecorationNonWritable = 24,
|
||||
DecorationNonReadable = 25,
|
||||
DecorationUniform = 26,
|
||||
DecorationUniformId = 27,
|
||||
DecorationSaturatedConversion = 28,
|
||||
DecorationStream = 29,
|
||||
DecorationLocation = 30,
|
||||
@ -440,8 +451,11 @@ enum Decoration {
|
||||
DecorationNonUniformEXT = 5300,
|
||||
DecorationRestrictPointerEXT = 5355,
|
||||
DecorationAliasedPointerEXT = 5356,
|
||||
DecorationCounterBuffer = 5634,
|
||||
DecorationHlslCounterBufferGOOGLE = 5634,
|
||||
DecorationHlslSemanticGOOGLE = 5635,
|
||||
DecorationUserSemantic = 5635,
|
||||
DecorationUserTypeGOOGLE = 5636,
|
||||
DecorationMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@ -544,6 +558,10 @@ enum BuiltIn {
|
||||
BuiltInHitTNV = 5332,
|
||||
BuiltInHitKindNV = 5333,
|
||||
BuiltInIncomingRayFlagsNV = 5351,
|
||||
BuiltInWarpsPerSMNV = 5374,
|
||||
BuiltInSMCountNV = 5375,
|
||||
BuiltInWarpIDNV = 5376,
|
||||
BuiltInSMIDNV = 5377,
|
||||
BuiltInMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@ -564,6 +582,11 @@ enum LoopControlShift {
|
||||
LoopControlDontUnrollShift = 1,
|
||||
LoopControlDependencyInfiniteShift = 2,
|
||||
LoopControlDependencyLengthShift = 3,
|
||||
LoopControlMinIterationsShift = 4,
|
||||
LoopControlMaxIterationsShift = 5,
|
||||
LoopControlIterationMultipleShift = 6,
|
||||
LoopControlPeelCountShift = 7,
|
||||
LoopControlPartialCountShift = 8,
|
||||
LoopControlMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@ -573,6 +596,11 @@ enum LoopControlMask {
|
||||
LoopControlDontUnrollMask = 0x00000002,
|
||||
LoopControlDependencyInfiniteMask = 0x00000004,
|
||||
LoopControlDependencyLengthMask = 0x00000008,
|
||||
LoopControlMinIterationsMask = 0x00000010,
|
||||
LoopControlMaxIterationsMask = 0x00000020,
|
||||
LoopControlIterationMultipleMask = 0x00000040,
|
||||
LoopControlPeelCountMask = 0x00000080,
|
||||
LoopControlPartialCountMask = 0x00000100,
|
||||
};
|
||||
|
||||
enum FunctionControlShift {
|
||||
@ -605,6 +633,7 @@ enum MemorySemanticsShift {
|
||||
MemorySemanticsOutputMemoryKHRShift = 12,
|
||||
MemorySemanticsMakeAvailableKHRShift = 13,
|
||||
MemorySemanticsMakeVisibleKHRShift = 14,
|
||||
MemorySemanticsVolatileShift = 15,
|
||||
MemorySemanticsMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@ -623,6 +652,7 @@ enum MemorySemanticsMask {
|
||||
MemorySemanticsOutputMemoryKHRMask = 0x00001000,
|
||||
MemorySemanticsMakeAvailableKHRMask = 0x00002000,
|
||||
MemorySemanticsMakeVisibleKHRMask = 0x00004000,
|
||||
MemorySemanticsVolatileMask = 0x00008000,
|
||||
};
|
||||
|
||||
enum MemoryAccessShift {
|
||||
@ -811,10 +841,20 @@ enum Capability {
|
||||
CapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
|
||||
CapabilityPhysicalStorageBufferAddressesEXT = 5347,
|
||||
CapabilityComputeDerivativeGroupLinearNV = 5350,
|
||||
CapabilityCooperativeMatrixNV = 5357,
|
||||
CapabilityFragmentShaderSampleInterlockEXT = 5363,
|
||||
CapabilityFragmentShaderShadingRateInterlockEXT = 5372,
|
||||
CapabilityShaderSMBuiltinsNV = 5373,
|
||||
CapabilityFragmentShaderPixelInterlockEXT = 5378,
|
||||
CapabilityDemoteToHelperInvocationEXT = 5379,
|
||||
CapabilitySubgroupShuffleINTEL = 5568,
|
||||
CapabilitySubgroupBufferBlockIOINTEL = 5569,
|
||||
CapabilitySubgroupImageBlockIOINTEL = 5570,
|
||||
CapabilitySubgroupImageMediaBlockIOINTEL = 5579,
|
||||
CapabilityIntegerFunctions2INTEL = 5584,
|
||||
CapabilitySubgroupAvcMotionEstimationINTEL = 5696,
|
||||
CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
|
||||
CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
|
||||
CapabilityMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
@ -1159,6 +1199,10 @@ enum Op {
|
||||
OpGroupNonUniformLogicalXor = 364,
|
||||
OpGroupNonUniformQuadBroadcast = 365,
|
||||
OpGroupNonUniformQuadSwap = 366,
|
||||
OpCopyLogical = 400,
|
||||
OpPtrEqual = 401,
|
||||
OpPtrNotEqual = 402,
|
||||
OpPtrDiff = 403,
|
||||
OpSubgroupBallotKHR = 4421,
|
||||
OpSubgroupFirstInvocationKHR = 4422,
|
||||
OpSubgroupAllKHR = 4428,
|
||||
@ -1184,6 +1228,15 @@ enum Op {
|
||||
OpTraceNV = 5337,
|
||||
OpTypeAccelerationStructureNV = 5341,
|
||||
OpExecuteCallableNV = 5344,
|
||||
OpTypeCooperativeMatrixNV = 5358,
|
||||
OpCooperativeMatrixLoadNV = 5359,
|
||||
OpCooperativeMatrixStoreNV = 5360,
|
||||
OpCooperativeMatrixMulAddNV = 5361,
|
||||
OpCooperativeMatrixLengthNV = 5362,
|
||||
OpBeginInvocationInterlockEXT = 5364,
|
||||
OpEndInvocationInterlockEXT = 5365,
|
||||
OpDemoteToHelperInvocationEXT = 5380,
|
||||
OpIsHelperInvocationEXT = 5381,
|
||||
OpSubgroupShuffleINTEL = 5571,
|
||||
OpSubgroupShuffleDownINTEL = 5572,
|
||||
OpSubgroupShuffleUpINTEL = 5573,
|
||||
@ -1194,11 +1247,676 @@ enum Op {
|
||||
OpSubgroupImageBlockWriteINTEL = 5578,
|
||||
OpSubgroupImageMediaBlockReadINTEL = 5580,
|
||||
OpSubgroupImageMediaBlockWriteINTEL = 5581,
|
||||
OpUCountLeadingZerosINTEL = 5585,
|
||||
OpUCountTrailingZerosINTEL = 5586,
|
||||
OpAbsISubINTEL = 5587,
|
||||
OpAbsUSubINTEL = 5588,
|
||||
OpIAddSatINTEL = 5589,
|
||||
OpUAddSatINTEL = 5590,
|
||||
OpIAverageINTEL = 5591,
|
||||
OpUAverageINTEL = 5592,
|
||||
OpIAverageRoundedINTEL = 5593,
|
||||
OpUAverageRoundedINTEL = 5594,
|
||||
OpISubSatINTEL = 5595,
|
||||
OpUSubSatINTEL = 5596,
|
||||
OpIMul32x16INTEL = 5597,
|
||||
OpUMul32x16INTEL = 5598,
|
||||
OpDecorateString = 5632,
|
||||
OpDecorateStringGOOGLE = 5632,
|
||||
OpMemberDecorateString = 5633,
|
||||
OpMemberDecorateStringGOOGLE = 5633,
|
||||
OpVmeImageINTEL = 5699,
|
||||
OpTypeVmeImageINTEL = 5700,
|
||||
OpTypeAvcImePayloadINTEL = 5701,
|
||||
OpTypeAvcRefPayloadINTEL = 5702,
|
||||
OpTypeAvcSicPayloadINTEL = 5703,
|
||||
OpTypeAvcMcePayloadINTEL = 5704,
|
||||
OpTypeAvcMceResultINTEL = 5705,
|
||||
OpTypeAvcImeResultINTEL = 5706,
|
||||
OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
|
||||
OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
|
||||
OpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
|
||||
OpTypeAvcImeDualReferenceStreaminINTEL = 5710,
|
||||
OpTypeAvcRefResultINTEL = 5711,
|
||||
OpTypeAvcSicResultINTEL = 5712,
|
||||
OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
|
||||
OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
|
||||
OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
|
||||
OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
|
||||
OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
|
||||
OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
|
||||
OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
|
||||
OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
|
||||
OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
|
||||
OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
|
||||
OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
|
||||
OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
|
||||
OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
|
||||
OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
|
||||
OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
|
||||
OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
|
||||
OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
|
||||
OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
|
||||
OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
|
||||
OpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
|
||||
OpSubgroupAvcMceConvertToImeResultINTEL = 5733,
|
||||
OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
|
||||
OpSubgroupAvcMceConvertToRefResultINTEL = 5735,
|
||||
OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
|
||||
OpSubgroupAvcMceConvertToSicResultINTEL = 5737,
|
||||
OpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
|
||||
OpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
|
||||
OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
|
||||
OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
|
||||
OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
|
||||
OpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
|
||||
OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
|
||||
OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
|
||||
OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
|
||||
OpSubgroupAvcImeInitializeINTEL = 5747,
|
||||
OpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
|
||||
OpSubgroupAvcImeSetDualReferenceINTEL = 5749,
|
||||
OpSubgroupAvcImeRefWindowSizeINTEL = 5750,
|
||||
OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
|
||||
OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
|
||||
OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
|
||||
OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
|
||||
OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
|
||||
OpSubgroupAvcImeSetWeightedSadINTEL = 5756,
|
||||
OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
|
||||
OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
|
||||
OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
|
||||
OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
|
||||
OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
|
||||
OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
|
||||
OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
|
||||
OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
|
||||
OpSubgroupAvcImeConvertToMceResultINTEL = 5765,
|
||||
OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
|
||||
OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
|
||||
OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
|
||||
OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
|
||||
OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
|
||||
OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
|
||||
OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
|
||||
OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
|
||||
OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
|
||||
OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
|
||||
OpSubgroupAvcImeGetBorderReachedINTEL = 5776,
|
||||
OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
|
||||
OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
|
||||
OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
|
||||
OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
|
||||
OpSubgroupAvcFmeInitializeINTEL = 5781,
|
||||
OpSubgroupAvcBmeInitializeINTEL = 5782,
|
||||
OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
|
||||
OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
|
||||
OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
|
||||
OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
|
||||
OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
|
||||
OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
|
||||
OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
|
||||
OpSubgroupAvcRefConvertToMceResultINTEL = 5790,
|
||||
OpSubgroupAvcSicInitializeINTEL = 5791,
|
||||
OpSubgroupAvcSicConfigureSkcINTEL = 5792,
|
||||
OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
|
||||
OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
|
||||
OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
|
||||
OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
|
||||
OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
|
||||
OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
|
||||
OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
|
||||
OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
|
||||
OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
|
||||
OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
|
||||
OpSubgroupAvcSicEvaluateIpeINTEL = 5803,
|
||||
OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
|
||||
OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
|
||||
OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
|
||||
OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
|
||||
OpSubgroupAvcSicConvertToMceResultINTEL = 5808,
|
||||
OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
|
||||
OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
|
||||
OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
|
||||
OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
|
||||
OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
|
||||
OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
|
||||
OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
|
||||
OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
|
||||
OpMax = 0x7fffffff,
|
||||
};
|
||||
|
||||
#ifdef SPV_ENABLE_UTILITY_CODE
|
||||
inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
|
||||
*hasResult = *hasResultType = false;
|
||||
switch (opcode) {
|
||||
default: /* unknown opcode */ break;
|
||||
case OpNop: *hasResult = false; *hasResultType = false; break;
|
||||
case OpUndef: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSourceContinued: *hasResult = false; *hasResultType = false; break;
|
||||
case OpSource: *hasResult = false; *hasResultType = false; break;
|
||||
case OpSourceExtension: *hasResult = false; *hasResultType = false; break;
|
||||
case OpName: *hasResult = false; *hasResultType = false; break;
|
||||
case OpMemberName: *hasResult = false; *hasResultType = false; break;
|
||||
case OpString: *hasResult = true; *hasResultType = false; break;
|
||||
case OpLine: *hasResult = false; *hasResultType = false; break;
|
||||
case OpExtension: *hasResult = false; *hasResultType = false; break;
|
||||
case OpExtInstImport: *hasResult = true; *hasResultType = false; break;
|
||||
case OpExtInst: *hasResult = true; *hasResultType = true; break;
|
||||
case OpMemoryModel: *hasResult = false; *hasResultType = false; break;
|
||||
case OpEntryPoint: *hasResult = false; *hasResultType = false; break;
|
||||
case OpExecutionMode: *hasResult = false; *hasResultType = false; break;
|
||||
case OpCapability: *hasResult = false; *hasResultType = false; break;
|
||||
case OpTypeVoid: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeBool: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeInt: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeFloat: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeVector: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeMatrix: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeImage: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeSampler: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeArray: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeStruct: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeOpaque: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypePointer: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeFunction: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeEvent: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeReserveId: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeQueue: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypePipe: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
|
||||
case OpConstantTrue: *hasResult = true; *hasResultType = true; break;
|
||||
case OpConstantFalse: *hasResult = true; *hasResultType = true; break;
|
||||
case OpConstant: *hasResult = true; *hasResultType = true; break;
|
||||
case OpConstantComposite: *hasResult = true; *hasResultType = true; break;
|
||||
case OpConstantSampler: *hasResult = true; *hasResultType = true; break;
|
||||
case OpConstantNull: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSpecConstant: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFunction: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFunctionParameter: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFunctionEnd: *hasResult = false; *hasResultType = false; break;
|
||||
case OpFunctionCall: *hasResult = true; *hasResultType = true; break;
|
||||
case OpVariable: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
|
||||
case OpLoad: *hasResult = true; *hasResultType = true; break;
|
||||
case OpStore: *hasResult = false; *hasResultType = false; break;
|
||||
case OpCopyMemory: *hasResult = false; *hasResultType = false; break;
|
||||
case OpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
|
||||
case OpAccessChain: *hasResult = true; *hasResultType = true; break;
|
||||
case OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
|
||||
case OpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
|
||||
case OpArrayLength: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
|
||||
case OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
|
||||
case OpDecorate: *hasResult = false; *hasResultType = false; break;
|
||||
case OpMemberDecorate: *hasResult = false; *hasResultType = false; break;
|
||||
case OpDecorationGroup: *hasResult = true; *hasResultType = false; break;
|
||||
case OpGroupDecorate: *hasResult = false; *hasResultType = false; break;
|
||||
case OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
|
||||
case OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
|
||||
case OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
|
||||
case OpVectorShuffle: *hasResult = true; *hasResultType = true; break;
|
||||
case OpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
|
||||
case OpCompositeExtract: *hasResult = true; *hasResultType = true; break;
|
||||
case OpCompositeInsert: *hasResult = true; *hasResultType = true; break;
|
||||
case OpCopyObject: *hasResult = true; *hasResultType = true; break;
|
||||
case OpTranspose: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSampledImage: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageFetch: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageGather: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageDrefGather: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageRead: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageWrite: *hasResult = false; *hasResultType = false; break;
|
||||
case OpImage: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageQuerySize: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageQueryLod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
|
||||
case OpConvertFToU: *hasResult = true; *hasResultType = true; break;
|
||||
case OpConvertFToS: *hasResult = true; *hasResultType = true; break;
|
||||
case OpConvertSToF: *hasResult = true; *hasResultType = true; break;
|
||||
case OpConvertUToF: *hasResult = true; *hasResultType = true; break;
|
||||
case OpUConvert: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSConvert: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFConvert: *hasResult = true; *hasResultType = true; break;
|
||||
case OpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
|
||||
case OpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
|
||||
case OpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
|
||||
case OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
|
||||
case OpBitcast: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSNegate: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFNegate: *hasResult = true; *hasResultType = true; break;
|
||||
case OpIAdd: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFAdd: *hasResult = true; *hasResultType = true; break;
|
||||
case OpISub: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFSub: *hasResult = true; *hasResultType = true; break;
|
||||
case OpIMul: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFMul: *hasResult = true; *hasResultType = true; break;
|
||||
case OpUDiv: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSDiv: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFDiv: *hasResult = true; *hasResultType = true; break;
|
||||
case OpUMod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSRem: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSMod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFRem: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFMod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
|
||||
case OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
|
||||
case OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
|
||||
case OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
|
||||
case OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
|
||||
case OpOuterProduct: *hasResult = true; *hasResultType = true; break;
|
||||
case OpDot: *hasResult = true; *hasResultType = true; break;
|
||||
case OpIAddCarry: *hasResult = true; *hasResultType = true; break;
|
||||
case OpISubBorrow: *hasResult = true; *hasResultType = true; break;
|
||||
case OpUMulExtended: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSMulExtended: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAny: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAll: *hasResult = true; *hasResultType = true; break;
|
||||
case OpIsNan: *hasResult = true; *hasResultType = true; break;
|
||||
case OpIsInf: *hasResult = true; *hasResultType = true; break;
|
||||
case OpIsFinite: *hasResult = true; *hasResultType = true; break;
|
||||
case OpIsNormal: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSignBitSet: *hasResult = true; *hasResultType = true; break;
|
||||
case OpLessOrGreater: *hasResult = true; *hasResultType = true; break;
|
||||
case OpOrdered: *hasResult = true; *hasResultType = true; break;
|
||||
case OpUnordered: *hasResult = true; *hasResultType = true; break;
|
||||
case OpLogicalEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpLogicalOr: *hasResult = true; *hasResultType = true; break;
|
||||
case OpLogicalAnd: *hasResult = true; *hasResultType = true; break;
|
||||
case OpLogicalNot: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSelect: *hasResult = true; *hasResultType = true; break;
|
||||
case OpIEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpINotEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpUGreaterThan: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSGreaterThan: *hasResult = true; *hasResultType = true; break;
|
||||
case OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpULessThan: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSLessThan: *hasResult = true; *hasResultType = true; break;
|
||||
case OpULessThanEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFOrdEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFUnordEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
|
||||
case OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
|
||||
case OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
|
||||
case OpBitwiseOr: *hasResult = true; *hasResultType = true; break;
|
||||
case OpBitwiseXor: *hasResult = true; *hasResultType = true; break;
|
||||
case OpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
|
||||
case OpNot: *hasResult = true; *hasResultType = true; break;
|
||||
case OpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
|
||||
case OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
|
||||
case OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
|
||||
case OpBitReverse: *hasResult = true; *hasResultType = true; break;
|
||||
case OpBitCount: *hasResult = true; *hasResultType = true; break;
|
||||
case OpDPdx: *hasResult = true; *hasResultType = true; break;
|
||||
case OpDPdy: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFwidth: *hasResult = true; *hasResultType = true; break;
|
||||
case OpDPdxFine: *hasResult = true; *hasResultType = true; break;
|
||||
case OpDPdyFine: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFwidthFine: *hasResult = true; *hasResultType = true; break;
|
||||
case OpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
|
||||
case OpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
|
||||
case OpEmitVertex: *hasResult = false; *hasResultType = false; break;
|
||||
case OpEndPrimitive: *hasResult = false; *hasResultType = false; break;
|
||||
case OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
|
||||
case OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
|
||||
case OpControlBarrier: *hasResult = false; *hasResultType = false; break;
|
||||
case OpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
|
||||
case OpAtomicLoad: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAtomicStore: *hasResult = false; *hasResultType = false; break;
|
||||
case OpAtomicExchange: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAtomicISub: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAtomicSMin: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAtomicUMin: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAtomicSMax: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAtomicUMax: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAtomicAnd: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAtomicOr: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAtomicXor: *hasResult = true; *hasResultType = true; break;
|
||||
case OpPhi: *hasResult = true; *hasResultType = true; break;
|
||||
case OpLoopMerge: *hasResult = false; *hasResultType = false; break;
|
||||
case OpSelectionMerge: *hasResult = false; *hasResultType = false; break;
|
||||
case OpLabel: *hasResult = true; *hasResultType = false; break;
|
||||
case OpBranch: *hasResult = false; *hasResultType = false; break;
|
||||
case OpBranchConditional: *hasResult = false; *hasResultType = false; break;
|
||||
case OpSwitch: *hasResult = false; *hasResultType = false; break;
|
||||
case OpKill: *hasResult = false; *hasResultType = false; break;
|
||||
case OpReturn: *hasResult = false; *hasResultType = false; break;
|
||||
case OpReturnValue: *hasResult = false; *hasResultType = false; break;
|
||||
case OpUnreachable: *hasResult = false; *hasResultType = false; break;
|
||||
case OpLifetimeStart: *hasResult = false; *hasResultType = false; break;
|
||||
case OpLifetimeStop: *hasResult = false; *hasResultType = false; break;
|
||||
case OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
|
||||
case OpGroupAll: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupAny: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupIAdd: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupFAdd: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupFMin: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupUMin: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupSMin: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupFMax: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupUMax: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupSMax: *hasResult = true; *hasResultType = true; break;
|
||||
case OpReadPipe: *hasResult = true; *hasResultType = true; break;
|
||||
case OpWritePipe: *hasResult = true; *hasResultType = true; break;
|
||||
case OpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
|
||||
case OpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
|
||||
case OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
|
||||
case OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
|
||||
case OpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
|
||||
case OpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
|
||||
case OpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
|
||||
case OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
|
||||
case OpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
|
||||
case OpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
|
||||
case OpRetainEvent: *hasResult = false; *hasResultType = false; break;
|
||||
case OpReleaseEvent: *hasResult = false; *hasResultType = false; break;
|
||||
case OpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
|
||||
case OpIsValidEvent: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
|
||||
case OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
|
||||
case OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
|
||||
case OpBuildNDRange: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSparseGather: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
|
||||
case OpNoLine: *hasResult = false; *hasResultType = false; break;
|
||||
case OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
|
||||
case OpImageSparseRead: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSizeOf: *hasResult = true; *hasResultType = true; break;
|
||||
case OpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
|
||||
case OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
|
||||
case OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
|
||||
case OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
|
||||
case OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
|
||||
case OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
|
||||
case OpModuleProcessed: *hasResult = false; *hasResultType = false; break;
|
||||
case OpExecutionModeId: *hasResult = false; *hasResultType = false; break;
|
||||
case OpDecorateId: *hasResult = false; *hasResultType = false; break;
|
||||
case OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
|
||||
case OpCopyLogical: *hasResult = true; *hasResultType = true; break;
|
||||
case OpPtrEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
|
||||
case OpPtrDiff: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; 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 OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
|
||||
case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
|
||||
case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
|
||||
case OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
|
||||
case OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
|
||||
case OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
|
||||
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 OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
|
||||
case OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
|
||||
case OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
|
||||
case OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpUMul32x16INTEL: *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;
|
||||
case OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
|
||||
case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
|
||||
}
|
||||
}
|
||||
#endif /* SPV_ENABLE_UTILITY_CODE */
|
||||
|
||||
// Overload operator| for mask bit combining
|
||||
|
||||
inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
|
||||
|
Loading…
Reference in New Issue
Block a user