#include "compiler/translator/tree_ops/spirv/EmulateDithering.h"
#include "compiler/translator/StaticType.h"
#include "compiler/translator/SymbolTable.h"
#include "compiler/translator/tree_util/DriverUniform.h"
#include "compiler/translator/tree_util/IntermNode_util.h"
#include "compiler/translator/tree_util/IntermTraverse.h"
#include "compiler/translator/tree_util/RunAtTheEndOfShader.h"
#include "compiler/translator/tree_util/SpecializationConstant.h"
namespace sh
{
namespace
{
FragmentOutputVariableList;
void GatherFragmentOutputs(TIntermBlock *root,
FragmentOutputVariableList *fragmentOutputVariablesOut)
{ … }
TIntermTyped *CreateDitherValue(const TType &type, TIntermSequence *ditherValueElements)
{ … }
void EmitFragmentOutputDither(TCompiler *compiler,
const ShCompileOptions &compileOptions,
TSymbolTable *symbolTable,
TIntermBlock *ditherBlock,
TIntermTyped *ditherControl,
TIntermTyped *ditherParam,
TIntermTyped *fragmentOutput,
uint32_t location)
{ … }
void EmitFragmentVariableDither(TCompiler *compiler,
const ShCompileOptions &compileOptions,
TSymbolTable *symbolTable,
TIntermBlock *ditherBlock,
TIntermTyped *ditherControl,
TIntermTyped *ditherParam,
const TVariable &fragmentVariable)
{ … }
TIntermNode *EmitDitheringBlock(TCompiler *compiler,
const ShCompileOptions &compileOptions,
TSymbolTable *symbolTable,
SpecConst *specConst,
DriverUniform *driverUniforms,
const FragmentOutputVariableList &fragmentOutputVariables)
{ … }
}
bool EmulateDithering(TCompiler *compiler,
const ShCompileOptions &compileOptions,
TIntermBlock *root,
TSymbolTable *symbolTable,
SpecConst *specConst,
DriverUniform *driverUniforms)
{ … }
}