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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue