Add more TOperator: fma/frexp/ldexp, AddCarry/SubBorrow/MulExtended/Bit*/Find*, (un)pack4x8/2x32, ftransform.
Also corrects some existing ones missing the "Op" part of their name.
This commit is contained in:
parent
f5b2c06b32
commit
e88217b7d8
11 changed files with 326 additions and 241 deletions
|
|
@ -140,7 +140,7 @@ enum TOperator {
|
|||
EOpMethod,
|
||||
|
||||
//
|
||||
// Built-in functions potentially mapped to operators
|
||||
// Built-in functions mapped to operators
|
||||
//
|
||||
|
||||
EOpRadians,
|
||||
|
|
@ -185,6 +185,11 @@ enum TOperator {
|
|||
EOpIsNan,
|
||||
EOpIsInf,
|
||||
|
||||
EOpFma,
|
||||
|
||||
EFrexp,
|
||||
ELdexp,
|
||||
|
||||
EOpFloatBitsToInt,
|
||||
EOpFloatBitsToUint,
|
||||
EOpIntBitsToFloat,
|
||||
|
|
@ -193,8 +198,14 @@ enum TOperator {
|
|||
EOpUnpackSnorm2x16,
|
||||
EOpPackUnorm2x16,
|
||||
EOpUnpackUnorm2x16,
|
||||
EOpPackSnorm4x8,
|
||||
EOpUnpackSnorm4x8,
|
||||
EOpPackUnorm4x8,
|
||||
EOpUnpackUnorm4x8,
|
||||
EOpPackHalf2x16,
|
||||
EOpUnpackHalf2x16,
|
||||
EOpPackDouble2x32,
|
||||
EOpUnpackDouble2x32,
|
||||
|
||||
EOpLength,
|
||||
EOpDistance,
|
||||
|
|
@ -221,6 +232,8 @@ enum TOperator {
|
|||
EOpMatrixInverse,
|
||||
EOpTranspose,
|
||||
|
||||
EOpFtransform,
|
||||
|
||||
EOpEmitVertex, // geometry only
|
||||
EOpEndPrimitive, // geometry only
|
||||
EOpEmitStreamVertex, // geometry only
|
||||
|
|
@ -340,46 +353,61 @@ enum TOperator {
|
|||
// N.B. The following is not being used yet, pending input, as switching
|
||||
// to it from the current text-based approach will break existing consumers.
|
||||
|
||||
EImageQuerySize,
|
||||
EImageQuerySamples,
|
||||
EImageLoad,
|
||||
EImageStore,
|
||||
EImageAtomicAdd,
|
||||
EImageAtomicMin,
|
||||
EImageAtomicMax,
|
||||
EImageAtomicAnd,
|
||||
EImageAtomicOr,
|
||||
EImageAtomicXor,
|
||||
EImageAtomicExchange,
|
||||
EImageAtomicCompSwap,
|
||||
EOpImageQuerySize,
|
||||
EOpImageQuerySamples,
|
||||
EOpImageLoad,
|
||||
EOpImageStore,
|
||||
EOpImageAtomicAdd,
|
||||
EOpImageAtomicMin,
|
||||
EOpImageAtomicMax,
|
||||
EOpImageAtomicAnd,
|
||||
EOpImageAtomicOr,
|
||||
EOpImageAtomicXor,
|
||||
EOpImageAtomicExchange,
|
||||
EOpImageAtomicCompSwap,
|
||||
|
||||
//
|
||||
// Texture operations
|
||||
//
|
||||
|
||||
ETextureGuardBegin,
|
||||
ETextureQuerySize,
|
||||
ETextureQueryLod,
|
||||
ETextureQueryLevels,
|
||||
ETextureQuerySamples,
|
||||
ETexture,
|
||||
ETextureProj,
|
||||
ETextureLod,
|
||||
ETextureOffset,
|
||||
ETextureFetch,
|
||||
ETextureFetchOffset,
|
||||
ETextureProjOffset,
|
||||
ETextureLodOffset,
|
||||
ETextureProjLod,
|
||||
ETextureProjLodOffset,
|
||||
ETextureGrad,
|
||||
ETextureGradOffset,
|
||||
ETextureProjGrad,
|
||||
ETextureProjGradOffset,
|
||||
ETextureGather,
|
||||
ETextureGatherOffset,
|
||||
ETextureGatherOffsets,
|
||||
ETextureGuardEnd,
|
||||
EOpTextureGuardBegin,
|
||||
EOpTextureQuerySize,
|
||||
EOpTextureQueryLod,
|
||||
EOpTextureQueryLevels,
|
||||
EOpTextureQuerySamples,
|
||||
EOpTexture,
|
||||
EOpTextureProj,
|
||||
EOpTextureLod,
|
||||
EOpTextureOffset,
|
||||
EOpTextureFetch,
|
||||
EOpTextureFetchOffset,
|
||||
EOpTextureProjOffset,
|
||||
EOpTextureLodOffset,
|
||||
EOpTextureProjLod,
|
||||
EOpTextureProjLodOffset,
|
||||
EOpTextureGrad,
|
||||
EOpTextureGradOffset,
|
||||
EOpTextureProjGrad,
|
||||
EOpTextureProjGradOffset,
|
||||
EOpTextureGather,
|
||||
EOpTextureGatherOffset,
|
||||
EOpTextureGatherOffsets,
|
||||
EOpTextureGuardEnd,
|
||||
|
||||
//
|
||||
// Integer operations
|
||||
//
|
||||
|
||||
EOpAddCarry,
|
||||
EOpSubBorrow,
|
||||
EOpUMulExtended,
|
||||
EOpIMulExtended,
|
||||
EOpBitfieldExtract,
|
||||
EOpBitfieldInsert,
|
||||
EOpBitFieldReverse,
|
||||
EOpBitCount,
|
||||
EOpFindLSB,
|
||||
EOpFindMSB,
|
||||
};
|
||||
|
||||
class TIntermTraverser;
|
||||
|
|
|
|||
|
|
@ -2,5 +2,5 @@
|
|||
// For the version, it uses the latest git tag followed by the number of commits.
|
||||
// For the date, it uses the current date (when then script is run).
|
||||
|
||||
#define GLSLANG_REVISION "2.3.721"
|
||||
#define GLSLANG_REVISION "2.3.723"
|
||||
#define GLSLANG_DATE "18-Aug-2015"
|
||||
|
|
|
|||
|
|
@ -57,7 +57,9 @@ namespace glslang {
|
|||
bool ARBCompatibility = true;
|
||||
|
||||
const bool ForwardCompatibility = false;
|
||||
const bool PureOperatorBuiltins = false; // could break backward compatibility; pending feedback
|
||||
|
||||
// change this back to false if depending on textual spellings of texturing calls when consuming the AST
|
||||
const bool PureOperatorBuiltins = false;
|
||||
|
||||
inline bool IncludeLegacy(int version, EProfile profile)
|
||||
{
|
||||
|
|
@ -3167,10 +3169,20 @@ void IdentifyBuiltIns(int version, EProfile profile, EShLanguage language, TSymb
|
|||
symbolTable.relateToOperator("floatBitsToUint", EOpFloatBitsToUint);
|
||||
symbolTable.relateToOperator("intBitsToFloat", EOpIntBitsToFloat);
|
||||
symbolTable.relateToOperator("uintBitsToFloat", EOpUintBitsToFloat);
|
||||
|
||||
symbolTable.relateToOperator("packSnorm2x16", EOpPackSnorm2x16);
|
||||
symbolTable.relateToOperator("unpackSnorm2x16", EOpUnpackSnorm2x16);
|
||||
symbolTable.relateToOperator("packUnorm2x16", EOpPackUnorm2x16);
|
||||
symbolTable.relateToOperator("unpackUnorm2x16", EOpUnpackUnorm2x16);
|
||||
|
||||
symbolTable.relateToOperator("packSnorm4x8", EOpPackSnorm4x8);
|
||||
symbolTable.relateToOperator("unpackSnorm4x8", EOpUnpackSnorm4x8);
|
||||
symbolTable.relateToOperator("packUnorm4x8", EOpPackUnorm4x8);
|
||||
symbolTable.relateToOperator("unpackUnorm4x8", EOpUnpackUnorm4x8);
|
||||
|
||||
symbolTable.relateToOperator("packDouble2x32", EOpPackUnorm4x8);
|
||||
symbolTable.relateToOperator("unpackDouble2x32", EOpUnpackUnorm4x8);
|
||||
|
||||
symbolTable.relateToOperator("packHalf2x16", EOpPackHalf2x16);
|
||||
symbolTable.relateToOperator("unpackHalf2x16", EOpUnpackHalf2x16);
|
||||
|
||||
|
|
@ -3205,66 +3217,80 @@ void IdentifyBuiltIns(int version, EProfile profile, EShLanguage language, TSymb
|
|||
symbolTable.relateToOperator("atomicCounterDecrement", EOpAtomicCounterDecrement);
|
||||
symbolTable.relateToOperator("atomicCounter", EOpAtomicCounter);
|
||||
|
||||
if (PureOperatorBuiltins) {
|
||||
symbolTable.relateToOperator("imageQuerySize", EImageQuerySize);
|
||||
symbolTable.relateToOperator("imageQuerySamples", EImageQuerySamples);
|
||||
symbolTable.relateToOperator("imageLoad", EImageLoad);
|
||||
symbolTable.relateToOperator("imageStore", EImageStore);
|
||||
symbolTable.relateToOperator("imageAtomicAdd", EImageAtomicAdd);
|
||||
symbolTable.relateToOperator("imageAtomicMin", EImageAtomicMin);
|
||||
symbolTable.relateToOperator("imageAtomicMax", EImageAtomicMax);
|
||||
symbolTable.relateToOperator("imageAtomicAnd", EImageAtomicAnd);
|
||||
symbolTable.relateToOperator("imageAtomicOr", EImageAtomicOr);
|
||||
symbolTable.relateToOperator("imageAtomicXor", EImageAtomicXor);
|
||||
symbolTable.relateToOperator("imageAtomicExchange", EImageAtomicExchange);
|
||||
symbolTable.relateToOperator("imageAtomicCompSwap", EImageAtomicCompSwap);
|
||||
symbolTable.relateToOperator("fma", EOpFma);
|
||||
symbolTable.relateToOperator("frexp", EFrexp);
|
||||
symbolTable.relateToOperator("ldexp", ELdexp);
|
||||
symbolTable.relateToOperator("uaddCarry", EOpAddCarry);
|
||||
symbolTable.relateToOperator("usubBorrow", EOpSubBorrow);
|
||||
symbolTable.relateToOperator("umulExtended", EOpUMulExtended);
|
||||
symbolTable.relateToOperator("imulExtended", EOpIMulExtended);
|
||||
symbolTable.relateToOperator("bitfieldExtract", EOpBitfieldExtract);
|
||||
symbolTable.relateToOperator("bitfieldInsert", EOpBitfieldInsert);
|
||||
symbolTable.relateToOperator("bitfieldReverse", EOpBitFieldReverse);
|
||||
symbolTable.relateToOperator("bitCount", EOpBitCount);
|
||||
symbolTable.relateToOperator("findLSB", EOpFindLSB);
|
||||
symbolTable.relateToOperator("findMSB", EOpFindMSB);
|
||||
|
||||
symbolTable.relateToOperator("textureSize", ETextureQuerySize);
|
||||
symbolTable.relateToOperator("textureQueryLod", ETextureQueryLod);
|
||||
symbolTable.relateToOperator("textureQueryLevels", ETextureQueryLevels);
|
||||
symbolTable.relateToOperator("textureSamples", ETextureQuerySamples);
|
||||
symbolTable.relateToOperator("texture", ETexture);
|
||||
symbolTable.relateToOperator("textureProj", ETextureProj);
|
||||
symbolTable.relateToOperator("textureLod", ETextureLod);
|
||||
symbolTable.relateToOperator("textureOffset", ETextureOffset);
|
||||
symbolTable.relateToOperator("textureFetch", ETextureFetch);
|
||||
symbolTable.relateToOperator("textureFetchOffset", ETextureFetchOffset);
|
||||
symbolTable.relateToOperator("textureProjOffset", ETextureProjOffset);
|
||||
symbolTable.relateToOperator("textureLodOffset", ETextureLodOffset);
|
||||
symbolTable.relateToOperator("textureProjLod", ETextureProjLod);
|
||||
symbolTable.relateToOperator("textureProjLodOffset", ETextureProjLodOffset);
|
||||
symbolTable.relateToOperator("textureGrad", ETextureGrad);
|
||||
symbolTable.relateToOperator("textureGradOffset", ETextureGradOffset);
|
||||
symbolTable.relateToOperator("textureProjGrad", ETextureProjGrad);
|
||||
symbolTable.relateToOperator("textureProjGradOffset", ETextureProjGradOffset);
|
||||
symbolTable.relateToOperator("textureGather", ETextureGather);
|
||||
symbolTable.relateToOperator("textureGatherOffset", ETextureGatherOffset);
|
||||
symbolTable.relateToOperator("textureGatherOffsets", ETextureGatherOffsets);
|
||||
if (PureOperatorBuiltins) {
|
||||
symbolTable.relateToOperator("imageSize", EOpImageQuerySize);
|
||||
symbolTable.relateToOperator("imageSamples", EOpImageQuerySamples);
|
||||
symbolTable.relateToOperator("imageLoad", EOpImageLoad);
|
||||
symbolTable.relateToOperator("imageStore", EOpImageStore);
|
||||
symbolTable.relateToOperator("imageAtomicAdd", EOpImageAtomicAdd);
|
||||
symbolTable.relateToOperator("imageAtomicMin", EOpImageAtomicMin);
|
||||
symbolTable.relateToOperator("imageAtomicMax", EOpImageAtomicMax);
|
||||
symbolTable.relateToOperator("imageAtomicAnd", EOpImageAtomicAnd);
|
||||
symbolTable.relateToOperator("imageAtomicOr", EOpImageAtomicOr);
|
||||
symbolTable.relateToOperator("imageAtomicXor", EOpImageAtomicXor);
|
||||
symbolTable.relateToOperator("imageAtomicExchange", EOpImageAtomicExchange);
|
||||
symbolTable.relateToOperator("imageAtomicCompSwap", EOpImageAtomicCompSwap);
|
||||
|
||||
symbolTable.relateToOperator("textureSize", EOpTextureQuerySize);
|
||||
symbolTable.relateToOperator("textureQueryLod", EOpTextureQueryLod);
|
||||
symbolTable.relateToOperator("textureQueryLevels", EOpTextureQueryLevels);
|
||||
symbolTable.relateToOperator("textureSamples", EOpTextureQuerySamples);
|
||||
symbolTable.relateToOperator("texture", EOpTexture);
|
||||
symbolTable.relateToOperator("textureProj", EOpTextureProj);
|
||||
symbolTable.relateToOperator("textureLod", EOpTextureLod);
|
||||
symbolTable.relateToOperator("textureOffset", EOpTextureOffset);
|
||||
symbolTable.relateToOperator("texelFetch", EOpTextureFetch);
|
||||
symbolTable.relateToOperator("texelFetchOffset", EOpTextureFetchOffset);
|
||||
symbolTable.relateToOperator("textureProjOffset", EOpTextureProjOffset);
|
||||
symbolTable.relateToOperator("textureLodOffset", EOpTextureLodOffset);
|
||||
symbolTable.relateToOperator("textureProjLod", EOpTextureProjLod);
|
||||
symbolTable.relateToOperator("textureProjLodOffset", EOpTextureProjLodOffset);
|
||||
symbolTable.relateToOperator("textureGrad", EOpTextureGrad);
|
||||
symbolTable.relateToOperator("textureGradOffset", EOpTextureGradOffset);
|
||||
symbolTable.relateToOperator("textureProjGrad", EOpTextureProjGrad);
|
||||
symbolTable.relateToOperator("textureProjGradOffset", EOpTextureProjGradOffset);
|
||||
symbolTable.relateToOperator("textureGather", EOpTextureGather);
|
||||
symbolTable.relateToOperator("textureGatherOffset", EOpTextureGatherOffset);
|
||||
symbolTable.relateToOperator("textureGatherOffsets", EOpTextureGatherOffsets);
|
||||
|
||||
if (IncludeLegacy(version, profile)) {
|
||||
// TBD: add ftransform(), any others?
|
||||
symbolTable.relateToOperator("texture1D", ETexture);
|
||||
symbolTable.relateToOperator("texture1DProj", ETextureProj);
|
||||
symbolTable.relateToOperator("texture1DLod", ETextureLod);
|
||||
symbolTable.relateToOperator("texture1DProjLod", ETextureProjLod);
|
||||
symbolTable.relateToOperator("texture2D", ETexture);
|
||||
symbolTable.relateToOperator("texture2DProj", ETextureProj);
|
||||
symbolTable.relateToOperator("texture2DLod", ETextureLod);
|
||||
symbolTable.relateToOperator("texture2DProjLod", ETextureProjLod);
|
||||
symbolTable.relateToOperator("texture3D", ETexture);
|
||||
symbolTable.relateToOperator("texture3DProj", ETextureProj);
|
||||
symbolTable.relateToOperator("texture3DLod", ETextureLod);
|
||||
symbolTable.relateToOperator("texture3DProjLod", ETextureProjLod);
|
||||
symbolTable.relateToOperator("textureCube", ETexture);
|
||||
symbolTable.relateToOperator("textureCubeLod", ETextureLod);
|
||||
symbolTable.relateToOperator("shadow1D", ETexture);
|
||||
symbolTable.relateToOperator("shadow2D", ETexture);
|
||||
symbolTable.relateToOperator("shadow1DProj", ETextureProj);
|
||||
symbolTable.relateToOperator("shadow2DProj", ETextureProj);
|
||||
symbolTable.relateToOperator("shadow1DLod", ETextureLod);
|
||||
symbolTable.relateToOperator("shadow2DLod", ETextureLod);
|
||||
symbolTable.relateToOperator("shadow1DProjLod", ETextureProjLod);
|
||||
symbolTable.relateToOperator("shadow2DProjLod", ETextureProjLod);
|
||||
symbolTable.relateToOperator("texture1D", EOpTexture);
|
||||
symbolTable.relateToOperator("texture1DProj", EOpTextureProj);
|
||||
symbolTable.relateToOperator("texture1DLod", EOpTextureLod);
|
||||
symbolTable.relateToOperator("texture1DProjLod", EOpTextureProjLod);
|
||||
symbolTable.relateToOperator("texture2D", EOpTexture);
|
||||
symbolTable.relateToOperator("texture2DProj", EOpTextureProj);
|
||||
symbolTable.relateToOperator("texture2DLod", EOpTextureLod);
|
||||
symbolTable.relateToOperator("texture2DProjLod", EOpTextureProjLod);
|
||||
symbolTable.relateToOperator("texture3D", EOpTexture);
|
||||
symbolTable.relateToOperator("texture3DProj", EOpTextureProj);
|
||||
symbolTable.relateToOperator("texture3DLod", EOpTextureLod);
|
||||
symbolTable.relateToOperator("texture3DProjLod", EOpTextureProjLod);
|
||||
symbolTable.relateToOperator("textureCube", EOpTexture);
|
||||
symbolTable.relateToOperator("textureCubeLod", EOpTextureLod);
|
||||
symbolTable.relateToOperator("shadow1D", EOpTexture);
|
||||
symbolTable.relateToOperator("shadow2D", EOpTexture);
|
||||
symbolTable.relateToOperator("shadow1DProj", EOpTextureProj);
|
||||
symbolTable.relateToOperator("shadow2DProj", EOpTextureProj);
|
||||
symbolTable.relateToOperator("shadow1DLod", EOpTextureLod);
|
||||
symbolTable.relateToOperator("shadow2DLod", EOpTextureLod);
|
||||
symbolTable.relateToOperator("shadow1DProjLod", EOpTextureProjLod);
|
||||
symbolTable.relateToOperator("shadow2DProjLod", EOpTextureProjLod);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -268,6 +268,13 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node)
|
|||
case EOpPackHalf2x16: out.debug << "packHalf2x16"; break;
|
||||
case EOpUnpackHalf2x16: out.debug << "unpackHalf2x16"; break;
|
||||
|
||||
case EOpPackSnorm4x8: out.debug << "PackSnorm4x8"; break;
|
||||
case EOpUnpackSnorm4x8: out.debug << "UnpackSnorm4x8"; break;
|
||||
case EOpPackUnorm4x8: out.debug << "PackUnorm4x8"; break;
|
||||
case EOpUnpackUnorm4x8: out.debug << "UnpackUnorm4x8"; break;
|
||||
case EOpPackDouble2x32: out.debug << "PackDouble2x32"; break;
|
||||
case EOpUnpackDouble2x32: out.debug << "UnpackDouble2x32"; break;
|
||||
|
||||
case EOpLength: out.debug << "length"; break;
|
||||
case EOpNormalize: out.debug << "normalize"; break;
|
||||
case EOpDPdx: out.debug << "dPdx"; break;
|
||||
|
|
@ -295,6 +302,19 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node)
|
|||
case EOpAtomicCounterDecrement: out.debug << "AtomicCounterDecrement";break;
|
||||
case EOpAtomicCounter: out.debug << "AtomicCounter"; break;
|
||||
|
||||
case EOpTextureQuerySize: out.debug << "textureSize"; break;
|
||||
case EOpTextureQueryLod: out.debug << "textureQueryLod"; break;
|
||||
case EOpTextureQueryLevels: out.debug << "textureQueryLevels"; break;
|
||||
case EOpTextureQuerySamples: out.debug << "textureSamples"; break;
|
||||
case EOpImageQuerySize: out.debug << "imageQuerySize"; break;
|
||||
case EOpImageQuerySamples: out.debug << "imageQuerySamples"; break;
|
||||
case EOpImageLoad: out.debug << "imageLoad"; break;
|
||||
|
||||
case EOpBitFieldReverse: out.debug << "bitFieldReverse"; break;
|
||||
case EOpBitCount: out.debug << "bitCount"; break;
|
||||
case EOpFindLSB: out.debug << "findLSB"; break;
|
||||
case EOpFindMSB: out.debug << "findMSB"; break;
|
||||
|
||||
default: out.debug.message(EPrefixError, "Bad unary op");
|
||||
}
|
||||
|
||||
|
|
@ -410,40 +430,51 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node
|
|||
case EOpAtomicExchange: out.debug << "AtomicExchange"; break;
|
||||
case EOpAtomicCompSwap: out.debug << "AtomicCompSwap"; break;
|
||||
|
||||
case EImageQuerySize: out.debug << "imageQuerySize"; break;
|
||||
case EImageQuerySamples: out.debug << "imageQuerySamples"; break;
|
||||
case EImageLoad: out.debug << "imageLoad"; break;
|
||||
case EImageStore: out.debug << "imageStore"; break;
|
||||
case EImageAtomicAdd: out.debug << "imageAtomicAdd"; break;
|
||||
case EImageAtomicMin: out.debug << "imageAtomicMin"; break;
|
||||
case EImageAtomicMax: out.debug << "imageAtomicMax"; break;
|
||||
case EImageAtomicAnd: out.debug << "imageAtomicAnd"; break;
|
||||
case EImageAtomicOr: out.debug << "imageAtomicOr"; break;
|
||||
case EImageAtomicXor: out.debug << "imageAtomicXor"; break;
|
||||
case EImageAtomicExchange: out.debug << "imageAtomicExchange"; break;
|
||||
case EImageAtomicCompSwap: out.debug << "imageAtomicCompSwap"; break;
|
||||
case EOpImageQuerySize: out.debug << "imageQuerySize"; break;
|
||||
case EOpImageQuerySamples: out.debug << "imageQuerySamples"; break;
|
||||
case EOpImageLoad: out.debug << "imageLoad"; break;
|
||||
case EOpImageStore: out.debug << "imageStore"; break;
|
||||
case EOpImageAtomicAdd: out.debug << "imageAtomicAdd"; break;
|
||||
case EOpImageAtomicMin: out.debug << "imageAtomicMin"; break;
|
||||
case EOpImageAtomicMax: out.debug << "imageAtomicMax"; break;
|
||||
case EOpImageAtomicAnd: out.debug << "imageAtomicAnd"; break;
|
||||
case EOpImageAtomicOr: out.debug << "imageAtomicOr"; break;
|
||||
case EOpImageAtomicXor: out.debug << "imageAtomicXor"; break;
|
||||
case EOpImageAtomicExchange: out.debug << "imageAtomicExchange"; break;
|
||||
case EOpImageAtomicCompSwap: out.debug << "imageAtomicCompSwap"; break;
|
||||
|
||||
case ETextureQuerySize: out.debug << "textureSize"; break;
|
||||
case ETextureQueryLod: out.debug << "textureQueryLod"; break;
|
||||
case ETextureQueryLevels: out.debug << "textureQueryLevels"; break;
|
||||
case ETextureQuerySamples: out.debug << "textureSamples"; break;
|
||||
case ETexture: out.debug << "texture"; break;
|
||||
case ETextureProj: out.debug << "textureProj"; break;
|
||||
case ETextureLod: out.debug << "textureLod"; break;
|
||||
case ETextureOffset: out.debug << "textureOffset"; break;
|
||||
case ETextureFetch: out.debug << "textureFetch"; break;
|
||||
case ETextureFetchOffset: out.debug << "textureFetchOffset"; break;
|
||||
case ETextureProjOffset: out.debug << "textureProjOffset"; break;
|
||||
case ETextureLodOffset: out.debug << "textureLodOffset"; break;
|
||||
case ETextureProjLod: out.debug << "textureProjLod"; break;
|
||||
case ETextureProjLodOffset: out.debug << "textureProjLodOffset"; break;
|
||||
case ETextureGrad: out.debug << "textureGrad"; break;
|
||||
case ETextureGradOffset: out.debug << "textureGradOffset"; break;
|
||||
case ETextureProjGrad: out.debug << "textureProjGrad"; break;
|
||||
case ETextureProjGradOffset: out.debug << "textureProjGradOffset"; break;
|
||||
case ETextureGather: out.debug << "textureGather"; break;
|
||||
case ETextureGatherOffset: out.debug << "textureGatherOffset"; break;
|
||||
case ETextureGatherOffsets: out.debug << "textureGatherOffsets"; break;
|
||||
case EOpTextureQuerySize: out.debug << "textureSize"; break;
|
||||
case EOpTextureQueryLod: out.debug << "textureQueryLod"; break;
|
||||
case EOpTextureQueryLevels: out.debug << "textureQueryLevels"; break;
|
||||
case EOpTextureQuerySamples: out.debug << "textureSamples"; break;
|
||||
case EOpTexture: out.debug << "texture"; break;
|
||||
case EOpTextureProj: out.debug << "textureProj"; break;
|
||||
case EOpTextureLod: out.debug << "textureLod"; break;
|
||||
case EOpTextureOffset: out.debug << "textureOffset"; break;
|
||||
case EOpTextureFetch: out.debug << "textureFetch"; break;
|
||||
case EOpTextureFetchOffset: out.debug << "textureFetchOffset"; break;
|
||||
case EOpTextureProjOffset: out.debug << "textureProjOffset"; break;
|
||||
case EOpTextureLodOffset: out.debug << "textureLodOffset"; break;
|
||||
case EOpTextureProjLod: out.debug << "textureProjLod"; break;
|
||||
case EOpTextureProjLodOffset: out.debug << "textureProjLodOffset"; break;
|
||||
case EOpTextureGrad: out.debug << "textureGrad"; break;
|
||||
case EOpTextureGradOffset: out.debug << "textureGradOffset"; break;
|
||||
case EOpTextureProjGrad: out.debug << "textureProjGrad"; break;
|
||||
case EOpTextureProjGradOffset: out.debug << "textureProjGradOffset"; break;
|
||||
case EOpTextureGather: out.debug << "textureGather"; break;
|
||||
case EOpTextureGatherOffset: out.debug << "textureGatherOffset"; break;
|
||||
case EOpTextureGatherOffsets: out.debug << "textureGatherOffsets"; break;
|
||||
|
||||
case EOpAddCarry: out.debug << "addCarry"; break;
|
||||
case EOpSubBorrow: out.debug << "subBorrow"; break;
|
||||
case EOpUMulExtended: out.debug << "uMulExtended"; break;
|
||||
case EOpIMulExtended: out.debug << "iMulExtended"; break;
|
||||
case EOpBitfieldExtract: out.debug << "bitfieldExtract"; break;
|
||||
case EOpBitfieldInsert: out.debug << "bitfieldInsert"; break;
|
||||
|
||||
case EOpFma: out.debug << "fma"; break;
|
||||
case EFrexp: out.debug << "frexp"; break;
|
||||
case ELdexp: out.debug << "ldexp"; break;
|
||||
|
||||
default: out.debug.message(EPrefixError, "Bad aggregation op");
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue