webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Classes | Typedefs | Enumerations | Functions
sh Namespace Reference

Classes

struct  Attribute
 
class  BlockLayoutEncoder
 
struct  BlockMemberInfo
 
class  CollectVariables
 
class  FindDiscard
 
class  FlagStd140Structs
 
class  GetVariableTraverser
 
class  HLSLBlockEncoder
 
struct  InterfaceBlock
 
struct  InterfaceBlockField
 
struct  InterfaceVariable
 
class  NameHashingTraverser
 
class  NodeSearchTraverser
 
class  OutputHLSL
 
struct  OutputVariable
 
class  SearchSymbol
 
struct  ShaderVariable
 
class  Std140BlockEncoder
 
class  Std140PaddingHelper
 
class  StructureHLSL
 
class  TextureFunctionHLSL
 
struct  Uniform
 
class  UniformHLSL
 
struct  Varying
 
struct  WorkGroupSize
 

Typedefs

typedef unsigned int GLenum
 
typedef std::map< TString, TIntermSymbol * > ReferencedSymbols
 
using InterfaceBlockList = std::vector< sh::InterfaceBlock >
 

Enumerations

enum  InterpolationType {
  INTERPOLATION_SMOOTH, INTERPOLATION_CENTROID, INTERPOLATION_FLAT, INTERPOLATION_SMOOTH,
  INTERPOLATION_CENTROID, INTERPOLATION_FLAT
}
 
enum  BlockLayoutType {
  BLOCKLAYOUT_STANDARD, BLOCKLAYOUT_PACKED, BLOCKLAYOUT_SHARED, BLOCKLAYOUT_STANDARD,
  BLOCKLAYOUT_PACKED, BLOCKLAYOUT_SHARED
}
 
enum  InterpolationType {
  INTERPOLATION_SMOOTH, INTERPOLATION_CENTROID, INTERPOLATION_FLAT, INTERPOLATION_SMOOTH,
  INTERPOLATION_CENTROID, INTERPOLATION_FLAT
}
 
enum  BlockLayoutType {
  BLOCKLAYOUT_STANDARD, BLOCKLAYOUT_PACKED, BLOCKLAYOUT_SHARED, BLOCKLAYOUT_STANDARD,
  BLOCKLAYOUT_PACKED, BLOCKLAYOUT_SHARED
}
 
enum  HLSLTextureSamplerGroup {
  HLSL_TEXTURE_2D, HLSL_TEXTURE_MIN = HLSL_TEXTURE_2D, HLSL_TEXTURE_CUBE, HLSL_TEXTURE_2D_ARRAY,
  HLSL_TEXTURE_3D, HLSL_TEXTURE_2D_INT4, HLSL_TEXTURE_3D_INT4, HLSL_TEXTURE_2D_ARRAY_INT4,
  HLSL_TEXTURE_2D_UINT4, HLSL_TEXTURE_3D_UINT4, HLSL_TEXTURE_2D_ARRAY_UINT4, HLSL_TEXTURE_2D_COMPARISON,
  HLSL_TEXTURE_CUBE_COMPARISON, HLSL_TEXTURE_2D_ARRAY_COMPARISON, HLSL_COMPARISON_SAMPLER_GROUP_BEGIN = HLSL_TEXTURE_2D_COMPARISON, HLSL_COMPARISON_SAMPLER_GROUP_END = HLSL_TEXTURE_2D_ARRAY_COMPARISON,
  HLSL_TEXTURE_UNKNOWN, HLSL_TEXTURE_MAX = HLSL_TEXTURE_UNKNOWN
}
 

Functions

COMPILER_EXPORT bool InterpolationTypesMatch (InterpolationType a, InterpolationType b)
 
void AddAndTrueToLoopCondition (TIntermNode *root)
 
void AddDefaultReturnStatements (TIntermNode *node)
 
template<class ShaderVarType >
void HLSLVariableRegisterCount (const ShaderVarType &variable, HLSLBlockEncoder *encoder)
 
unsigned int HLSLVariableRegisterCount (const Varying &variable, bool transposeMatrices)
 
unsigned int HLSLVariableRegisterCount (const Uniform &variable, ShShaderOutput outputType)
 
void BreakVariableAliasingInInnerLoops (TIntermNode *root)
 
void ExpandIntegerPowExpressions (TIntermNode *root, unsigned int *tempIndex)
 
std::vector< TIntermTyped * > FlagStd140ValueStructs (TIntermNode *node)
 
TLayoutQualifier JoinLayoutQualifiers (TLayoutQualifier leftQualifier, TLayoutQualifier rightQualifier, const TSourceLoc &rightQualifierLocation, TDiagnostics *diagnostics)
 
void RewriteElseBlocks (TIntermNode *node, unsigned int *temporaryIndex)
 
void RewriteTexelFetchOffset (TIntermNode *root, const TSymbolTable &symbolTable, int shaderVersion)
 
void RewriteUnaryMinusOperatorInt (TIntermNode *root)
 
void UseInterfaceBlockFields (TIntermNode *root, const InterfaceBlockList &blocks)
 
GLenum GLVariableType (const TType &type)
 
GLenum GLVariablePrecision (const TType &type)
 
TString ArrayString (const TType &type)
 
bool IsVaryingOut (TQualifier qualifier)
 
bool IsVaryingIn (TQualifier qualifier)
 
bool IsVarying (TQualifier qualifier)
 
InterpolationType GetInterpolationType (TQualifier qualifier)
 
TType GetInterfaceBlockType (const sh::InterfaceBlock &block)
 
TType GetShaderVariableBasicType (const sh::ShaderVariable &var)
 
TType GetShaderVariableType (const sh::ShaderVariable &var)
 
TOperator TypeToConstructorOperator (const TType &type)
 
bool CanBeInvariantESSL1 (TQualifier qualifier)
 
bool CanBeInvariantESSL3OrGreater (TQualifier qualifier)
 
bool IsBuiltinOutputVariable (TQualifier qualifier)
 
bool IsBuiltinFragmentInputVariable (TQualifier qualifier)
 
TString SamplerString (const TBasicType type)
 
TString SamplerString (HLSLTextureSamplerGroup type)
 
HLSLTextureSamplerGroup TextureGroup (const TBasicType type)
 
TString TextureString (const HLSLTextureSamplerGroup type)
 
TString TextureString (const TBasicType type)
 
TString TextureGroupSuffix (const HLSLTextureSamplerGroup type)
 
TString TextureGroupSuffix (const TBasicType type)
 
TString TextureTypeSuffix (const TBasicType type)
 
TString DecorateUniform (const TName &name, const TType &type)
 
TString DecorateField (const TString &string, const TStructure &structure)
 
TString DecoratePrivate (const TString &privateText)
 
TString Decorate (const TString &string)
 
TString DecorateIfNeeded (const TName &name)
 
TString DecorateFunctionIfNeeded (const TName &name)
 
TString TypeString (const TType &type)
 
TString StructNameString (const TStructure &structure)
 
TString QualifiedStructNameString (const TStructure &structure, bool useHLSLRowMajorPacking, bool useStd140Packing)
 
TString InterpolationString (TQualifier qualifier)
 
TString QualifierString (TQualifier qualifier)
 
TString DisambiguateFunctionName (const TIntermSequence *parameters)
 
void ExpandVariable (const ShaderVariable &variable, const std::string &name, const std::string &mappedName, bool markStaticUse, std::vector< ShaderVariable > *expanded)
 
void ExpandUniforms (const std::vector< Uniform > &compact, std::vector< ShaderVariable > *expanded)
 
 TEST (ShaderVariableTest, FindInfoByMappedName)
 
 TEST (ShaderVariableTest, IsSameUniformWithDifferentFieldOrder)
 
 TEST (ShaderVariableTest, IsSameUniformWithDifferentStructNames)
 
 TEST (ShaderVariableTest, IsSameVaryingWithDifferentInvariance)
 
 TEST (ShaderVariableTest, InvariantDoubleDeleteBug)
 
 TEST (ShaderVariableTest, IllegalInvariantVarying)
 
 TEST (ShaderVariableTest, InvariantLeakAcrossShaders)
 
 TEST (ShaderVariableTest, GlobalInvariantLeakAcrossShaders)
 
 TEST (ShaderVariableTest, BuiltinInvariantVarying)
 

Typedef Documentation

◆ GLenum

typedef unsigned int sh::GLenum

◆ InterfaceBlockList

◆ ReferencedSymbols

Enumeration Type Documentation

◆ BlockLayoutType [1/2]

Enumerator
BLOCKLAYOUT_STANDARD 
BLOCKLAYOUT_PACKED 
BLOCKLAYOUT_SHARED 
BLOCKLAYOUT_STANDARD 
BLOCKLAYOUT_PACKED 
BLOCKLAYOUT_SHARED 

◆ BlockLayoutType [2/2]

Enumerator
BLOCKLAYOUT_STANDARD 
BLOCKLAYOUT_PACKED 
BLOCKLAYOUT_SHARED 
BLOCKLAYOUT_STANDARD 
BLOCKLAYOUT_PACKED 
BLOCKLAYOUT_SHARED 

◆ HLSLTextureSamplerGroup

Enumerator
HLSL_TEXTURE_2D 
HLSL_TEXTURE_MIN 
HLSL_TEXTURE_CUBE 
HLSL_TEXTURE_2D_ARRAY 
HLSL_TEXTURE_3D 
HLSL_TEXTURE_2D_INT4 
HLSL_TEXTURE_3D_INT4 
HLSL_TEXTURE_2D_ARRAY_INT4 
HLSL_TEXTURE_2D_UINT4 
HLSL_TEXTURE_3D_UINT4 
HLSL_TEXTURE_2D_ARRAY_UINT4 
HLSL_TEXTURE_2D_COMPARISON 
HLSL_TEXTURE_CUBE_COMPARISON 
HLSL_TEXTURE_2D_ARRAY_COMPARISON 
HLSL_COMPARISON_SAMPLER_GROUP_BEGIN 
HLSL_COMPARISON_SAMPLER_GROUP_END 
HLSL_TEXTURE_UNKNOWN 
HLSL_TEXTURE_MAX 

◆ InterpolationType [1/2]

Enumerator
INTERPOLATION_SMOOTH 
INTERPOLATION_CENTROID 
INTERPOLATION_FLAT 
INTERPOLATION_SMOOTH 
INTERPOLATION_CENTROID 
INTERPOLATION_FLAT 

◆ InterpolationType [2/2]

Enumerator
INTERPOLATION_SMOOTH 
INTERPOLATION_CENTROID 
INTERPOLATION_FLAT 
INTERPOLATION_SMOOTH 
INTERPOLATION_CENTROID 
INTERPOLATION_FLAT 

Function Documentation

◆ AddAndTrueToLoopCondition()

void sh::AddAndTrueToLoopCondition ( TIntermNode root)

◆ AddDefaultReturnStatements()

void sh::AddDefaultReturnStatements ( TIntermNode node)

◆ ArrayString()

TString sh::ArrayString ( const TType type)

◆ BreakVariableAliasingInInnerLoops()

void sh::BreakVariableAliasingInInnerLoops ( TIntermNode root)

◆ CanBeInvariantESSL1()

bool sh::CanBeInvariantESSL1 ( TQualifier  qualifier)

◆ CanBeInvariantESSL3OrGreater()

bool sh::CanBeInvariantESSL3OrGreater ( TQualifier  qualifier)

◆ Decorate()

TString sh::Decorate ( const TString string)

◆ DecorateField()

TString sh::DecorateField ( const TString string,
const TStructure structure 
)

◆ DecorateFunctionIfNeeded()

TString sh::DecorateFunctionIfNeeded ( const TName name)

◆ DecorateIfNeeded()

TString sh::DecorateIfNeeded ( const TName name)

◆ DecoratePrivate()

TString sh::DecoratePrivate ( const TString privateText)

◆ DecorateUniform()

TString sh::DecorateUniform ( const TName name,
const TType type 
)

◆ DisambiguateFunctionName()

TString sh::DisambiguateFunctionName ( const TIntermSequence parameters)

◆ ExpandIntegerPowExpressions()

void sh::ExpandIntegerPowExpressions ( TIntermNode root,
unsigned int *  tempIndex 
)

◆ ExpandUniforms()

void sh::ExpandUniforms ( const std::vector< Uniform > &  compact,
std::vector< ShaderVariable > *  expanded 
)

◆ ExpandVariable()

void sh::ExpandVariable ( const ShaderVariable variable,
const std::string name,
const std::string mappedName,
bool  markStaticUse,
std::vector< ShaderVariable > *  expanded 
)

◆ FlagStd140ValueStructs()

std::vector< TIntermTyped * > sh::FlagStd140ValueStructs ( TIntermNode node)

◆ GetInterfaceBlockType()

TType sh::GetInterfaceBlockType ( const sh::InterfaceBlock block)

◆ GetInterpolationType()

InterpolationType sh::GetInterpolationType ( TQualifier  qualifier)

◆ GetShaderVariableBasicType()

TType sh::GetShaderVariableBasicType ( const sh::ShaderVariable var)

◆ GetShaderVariableType()

TType sh::GetShaderVariableType ( const sh::ShaderVariable var)

◆ GLVariablePrecision()

GLenum sh::GLVariablePrecision ( const TType type)

◆ GLVariableType()

GLenum sh::GLVariableType ( const TType type)

◆ HLSLVariableRegisterCount() [1/3]

template<class ShaderVarType >
void sh::HLSLVariableRegisterCount ( const ShaderVarType &  variable,
HLSLBlockEncoder encoder 
)

◆ HLSLVariableRegisterCount() [2/3]

COMPILER_EXPORT unsigned int sh::HLSLVariableRegisterCount ( const Varying variable,
bool  transposeMatrices 
)

◆ HLSLVariableRegisterCount() [3/3]

COMPILER_EXPORT unsigned int sh::HLSLVariableRegisterCount ( const Uniform variable,
ShShaderOutput  outputType 
)

◆ InterpolationString()

TString sh::InterpolationString ( TQualifier  qualifier)

◆ InterpolationTypesMatch()

bool sh::InterpolationTypesMatch ( InterpolationType  a,
InterpolationType  b 
)

◆ IsBuiltinFragmentInputVariable()

bool sh::IsBuiltinFragmentInputVariable ( TQualifier  qualifier)

◆ IsBuiltinOutputVariable()

bool sh::IsBuiltinOutputVariable ( TQualifier  qualifier)

◆ IsVarying()

bool sh::IsVarying ( TQualifier  qualifier)

◆ IsVaryingIn()

bool sh::IsVaryingIn ( TQualifier  qualifier)

◆ IsVaryingOut()

bool sh::IsVaryingOut ( TQualifier  qualifier)

◆ JoinLayoutQualifiers()

TLayoutQualifier sh::JoinLayoutQualifiers ( TLayoutQualifier  leftQualifier,
TLayoutQualifier  rightQualifier,
const TSourceLoc rightQualifierLocation,
TDiagnostics diagnostics 
)

◆ QualifiedStructNameString()

TString sh::QualifiedStructNameString ( const TStructure structure,
bool  useHLSLRowMajorPacking,
bool  useStd140Packing 
)

◆ QualifierString()

TString sh::QualifierString ( TQualifier  qualifier)

◆ RewriteElseBlocks()

void sh::RewriteElseBlocks ( TIntermNode node,
unsigned int *  temporaryIndex 
)

◆ RewriteTexelFetchOffset()

void sh::RewriteTexelFetchOffset ( TIntermNode root,
const TSymbolTable symbolTable,
int  shaderVersion 
)

◆ RewriteUnaryMinusOperatorInt()

void sh::RewriteUnaryMinusOperatorInt ( TIntermNode root)

◆ SamplerString() [1/2]

TString sh::SamplerString ( const TBasicType  type)

◆ SamplerString() [2/2]

TString sh::SamplerString ( HLSLTextureSamplerGroup  type)

◆ StructNameString()

TString sh::StructNameString ( const TStructure structure)

◆ TEST() [1/9]

sh::TEST ( ShaderVariableTest  ,
FindInfoByMappedName   
)

◆ TEST() [2/9]

sh::TEST ( ShaderVariableTest  ,
IsSameUniformWithDifferentFieldOrder   
)

◆ TEST() [3/9]

sh::TEST ( ShaderVariableTest  ,
IsSameUniformWithDifferentStructNames   
)

◆ TEST() [4/9]

sh::TEST ( ShaderVariableTest  ,
IsSameVaryingWithDifferentInvariance   
)

◆ TEST() [5/9]

sh::TEST ( ShaderVariableTest  ,
InvariantDoubleDeleteBug   
)

◆ TEST() [6/9]

sh::TEST ( ShaderVariableTest  ,
IllegalInvariantVarying   
)

◆ TEST() [7/9]

sh::TEST ( ShaderVariableTest  ,
InvariantLeakAcrossShaders   
)

◆ TEST() [8/9]

sh::TEST ( ShaderVariableTest  ,
GlobalInvariantLeakAcrossShaders   
)

◆ TEST() [9/9]

sh::TEST ( ShaderVariableTest  ,
BuiltinInvariantVarying   
)

◆ TextureGroup()

HLSLTextureSamplerGroup sh::TextureGroup ( const TBasicType  type)

◆ TextureGroupSuffix() [1/2]

TString sh::TextureGroupSuffix ( const HLSLTextureSamplerGroup  type)

◆ TextureGroupSuffix() [2/2]

TString sh::TextureGroupSuffix ( const TBasicType  type)

◆ TextureString() [1/2]

TString sh::TextureString ( const HLSLTextureSamplerGroup  type)

◆ TextureString() [2/2]

TString sh::TextureString ( const TBasicType  type)

◆ TextureTypeSuffix()

TString sh::TextureTypeSuffix ( const TBasicType  type)

◆ TypeString()

TString sh::TypeString ( const TType type)

◆ TypeToConstructorOperator()

TOperator sh::TypeToConstructorOperator ( const TType type)

◆ UseInterfaceBlockFields()

void sh::UseInterfaceBlockFields ( TIntermNode root,
const InterfaceBlockList blocks 
)