Shader Compiler
Navigation: SDK
Shader Compiler
Documentation for the FidelityFX Shader Compiler tool.
Functions
IShaderBinary
inline IShaderBinary()ShadeBinary constructor.
Returns: none
Attributes: inline
Source: sdk/tools/ffx_shader_compiler/src/compiler.h (line 45, column 5)
~IShaderBinary
inline virtual ~IShaderBinary()ShaderBinary destructor.
Returns: none
Attributes: inline, virtual
Source: sdk/tools/ffx_shader_compiler/src/compiler.h (line 55, column 13)
BufferPointer
pure-virtual uint8_t * BufferPointer()=0Shader binary buffer accessor. Must be overridden for each language supported (i.e. HLSL, GLSL, etc.)
Returns: Pointer to the internal buffer representation.
Returns: uint8_t *
Attributes: pure-virtual
Source: sdk/tools/ffx_shader_compiler/src/compiler.h (line 66, column 21)
BufferSize
pure-virtual size_t BufferSize()=0Queries the shader binary size. Must be overridden for each language supported (i.e. HLSL, GLSL, etc.)
Returns: Size of the shader binary
Returns: size_t
Attributes: pure-virtual
Source: sdk/tools/ffx_shader_compiler/src/compiler.h (line 75, column 22)
ICompiler
inline ICompiler(const std::string &shaderPath, const std::string &shaderName, const std::string &shaderFileName, const std::string &outputPath, bool disableLogs, bool debugCompile)Compiler construction function.
Returns: none
Parameters:
shaderPath(const std::string &) – [in] Path to the shader to compileshaderName(const std::string &) – [in] Shader entry pointshaderFileName(const std::string &) – [in] Filename of the shader file to compileoutputPath(const std::string &) – [in] Output path for shader exportdisableLogs(bool) – [in] Enables/Disables logging of errors and warningsdebugCompile(bool) – [in] Compile shaders in debug and generate pdb information
Attributes: inline
Source: sdk/tools/ffx_shader_compiler/src/compiler.h (line 160, column 5)
~ICompiler
inline virtual ~ICompiler()Compiler destruction function.
Returns: none
Attributes: inline, virtual
Source: sdk/tools/ffx_shader_compiler/src/compiler.h (line 176, column 13)
Compile
pure-virtual bool Compile(Permutation &permutation, const std::vector<std::string> &arguments, std::mutex &writeMutex)=0Compiles a shader permutation. Must be overridden for each language supported (i.e. HLSL, GLSL, etc.)
Returns: true if successful, false otherwise
Parameters:
permutation(Permutation &) – [in] The permutation representation to compilearguments(const std::vector<std::string> &) – [in] List of arguments to pass to the compilerwriteMutex(std::mutex &)
Returns: bool
Attributes: pure-virtual
Source: sdk/tools/ffx_shader_compiler/src/compiler.h (line 191, column 18)
ExtractReflectionData
pure-virtual bool ExtractReflectionData(Permutation &permutation)=0Extracts shader reflection data. Must be overridden for each language supported (i.e. HLSL, GLSL, etc.)
Returns: true if successful, false otherwise
Parameters:
permutation(Permutation &) – [in] The permutation representation to extract reflection for
Returns: bool
Attributes: pure-virtual
Source: sdk/tools/ffx_shader_compiler/src/compiler.h (line 204, column 18)
WriteBinaryHeaderReflectionData
pure-virtual void WriteBinaryHeaderReflectionData(FILE *fp, const Permutation &permutation, std::mutex &writeMutex)=0Writes reflection header data for shader permutations. Must be overridden for each language supported (i.e. HLSL, GLSL, etc.)
Returns: none
Parameters:
fp(FILE *) – [in] The file to write header information intopermutation(const Permutation &) – [in] The permutation representation to write to headwriteMutex(std::mutex &)
Attributes: pure-virtual
Source: sdk/tools/ffx_shader_compiler/src/compiler.h (line 217, column 18)
WritePermutationHeaderReflectionStructMembers
pure-virtual void WritePermutationHeaderReflectionStructMembers(FILE *fp)=0Writes permutation reflection header data structures for shader permutations. Must be overridden for each language supported (i.e. HLSL, GLSL, etc.)
Returns: none
Parameters:
fp(FILE *) – [in] The file to write header data structures into
Attributes: pure-virtual
Source: sdk/tools/ffx_shader_compiler/src/compiler.h (line 228, column 18)
WritePermutationHeaderReflectionData
pure-virtual void WritePermutationHeaderReflectionData(FILE *fp, const Permutation &permutation)=0Writes permutation reflection header data for shader permutations. Must be overridden for each language supported (i.e. HLSL, GLSL, etc.)
Returns: none
Parameters:
fp(FILE *) – [in] The file to write header information intopermutation(const Permutation &) – [in] The permutation representation to write to head
Attributes: pure-virtual
Source: sdk/tools/ffx_shader_compiler/src/compiler.h (line 240, column 18)
BufferPointer
virtual uint8_t * BufferPointer() overrideGLSL Shader binary buffer accessor.
Returns: Pointer to the internal GLSL buffer representation.
Returns: uint8_t *
Attributes: virtual
Source: sdk/tools/ffx_shader_compiler/src/glsl_compiler.h (line 42, column 13)
BufferSize
virtual size_t BufferSize() overrideQueries the GLSL shader binary size.
Returns: Size of the GLSL shader binary
Returns: size_t
Attributes: virtual
Source: sdk/tools/ffx_shader_compiler/src/glsl_compiler.h (line 50, column 14)
GLSLCompiler
GLSLCompiler(const std::string &glslangExe, const std::string &shaderPath, const std::string &shaderName, const std::string &shaderFileName, const std::string &outputPath, bool disableLogs, bool debugCompile)GLSL Compiler construction function.
Returns: none
Parameters:
glslangExe(const std::string &) – [in] Path to the glslang exe to use to compileshaderPath(const std::string &) – [in] Path to the shader to compileshaderName(const std::string &) – [in] Shader entry pointshaderFileName(const std::string &) – [in] Filename of the shader file to compileoutputPath(const std::string &) – [in] Output path for shader exportdisableLogs(bool) – [in] Enables/Disables logging of errors and warningsdebugCompile(bool) – [in] Compile shaders in debug and generate pdb information
Source: sdk/tools/ffx_shader_compiler/src/glsl_compiler.h (line 78, column 5)
~GLSLCompiler
~GLSLCompiler()GLSL Compiler destruction function.
Returns: none
Source: sdk/tools/ffx_shader_compiler/src/glsl_compiler.h (line 92, column 5)
Compile
virtual bool Compile(Permutation &permutation, const std::vector<std::string> &arguments, std::mutex &writeMutex) overrideCompiles a GLSL shader permutation.
Returns: true if successful, false otherwise
Parameters:
permutation(Permutation &) – [in] The permutation representation to compilearguments(const std::vector<std::string> &) – [in] List of arguments to pass to the compilerwriteMutex(std::mutex &)
Returns: bool
Attributes: virtual
Source: sdk/tools/ffx_shader_compiler/src/glsl_compiler.h (line 104, column 10)
ExtractReflectionData
virtual bool ExtractReflectionData(Permutation &permutation) overrideExtracts GLSL shader reflection data.
Returns: true if successful, false otherwise
Parameters:
permutation(Permutation &) – [in] The permutation representation to extract reflection for
Returns: bool
Attributes: virtual
Source: sdk/tools/ffx_shader_compiler/src/glsl_compiler.h (line 114, column 10)
WriteBinaryHeaderReflectionData
virtual void WriteBinaryHeaderReflectionData(FILE *fp, const Permutation &permutation, std::mutex &writeMutex) overrideWrites GLSL reflection header data for shader permutations.
Returns: none
Parameters:
fp(FILE *) – [in] The file to write header information intopermutation(const Permutation &) – [in] The permutation representation to write to headwriteMutex(std::mutex &)
Attributes: virtual
Source: sdk/tools/ffx_shader_compiler/src/glsl_compiler.h (line 126, column 10)
WritePermutationHeaderReflectionStructMembers
virtual void WritePermutationHeaderReflectionStructMembers(FILE *fp) overrideWrites GLSL permutation reflection header data structures for shader permutations.
Returns: none
Parameters:
fp(FILE *) – [in] The file to write header data structures into
Attributes: virtual
Source: sdk/tools/ffx_shader_compiler/src/glsl_compiler.h (line 136, column 10)
WritePermutationHeaderReflectionData
virtual void WritePermutationHeaderReflectionData(FILE *fp, const Permutation &permutation) overrideWrites GLSL permutation reflection header data for shader permutations.
Returns: none
Parameters:
fp(FILE *) – [in] The file to write header information intopermutation(const Permutation &) – [in] The permutation representation to write to head
Attributes: virtual
Source: sdk/tools/ffx_shader_compiler/src/glsl_compiler.h (line 147, column 10)
BufferPointer
virtual uint8_t * BufferPointer() overrideHLSL (DXC) Shader binary buffer accessor.
Returns: Pointer to the internal HLSL (DXC) buffer representation.
Returns: uint8_t *
Attributes: virtual
Source: sdk/tools/ffx_shader_compiler/src/hlsl_compiler.h (line 56, column 13)
BufferSize
virtual size_t BufferSize() overrideQueries the HLSL (DXC) shader binary size.
Returns: Size of the HLSL (DXC) shader binary
Returns: size_t
Attributes: virtual
Source: sdk/tools/ffx_shader_compiler/src/hlsl_compiler.h (line 64, column 14)
BufferPointer
virtual uint8_t * BufferPointer() overrideHLSL (FXC) Shader binary buffer accessor.
Returns: Pointer to the internal HLSL (FXC) buffer representation.
Returns: uint8_t *
Attributes: virtual
Source: sdk/tools/ffx_shader_compiler/src/hlsl_compiler.h (line 81, column 13)
BufferSize
virtual size_t BufferSize() overrideQueries the HLSL (FXC) shader binary size.
Returns: Size of the HLSL (FXC) shader binary
Returns: size_t
Attributes: virtual
Source: sdk/tools/ffx_shader_compiler/src/hlsl_compiler.h (line 89, column 14)
HLSLCompiler
HLSLCompiler(Backend backend, const std::string &dll, const std::string &shaderPath, const std::string &shaderName, const std::string &shaderFileName, const std::string &outputPath, bool disableLogs, bool debugCompile)HLSL Compiler construction function.
Returns: none
Parameters:
backend(Backend) – [in] The backend HLSL compile process to usedll(const std::string &) – [in] DXC/FXC DLL override to use when compilingshaderPath(const std::string &) – [in] Path to the shader to compileshaderName(const std::string &) – [in] Shader entry pointshaderFileName(const std::string &) – [in] Filename of the shader file to compileoutputPath(const std::string &) – [in] Output path for shader exportdisableLogs(bool) – [in] Enables/Disables logging of errors and warningsdebugCompile(bool) – [in] Compile shaders in debug and generate pdb information
Source: sdk/tools/ffx_shader_compiler/src/hlsl_compiler.h (line 129, column 5)
~HLSLCompiler
~HLSLCompiler()HLSL Compiler destruction function.
Returns: none
Source: sdk/tools/ffx_shader_compiler/src/hlsl_compiler.h (line 144, column 5)
Compile
virtual bool Compile(Permutation &permutation, const std::vector<std::string> &arguments, std::mutex &writeMutex) overrideCompiles a HLSL shader permutation.
Returns: true if successful, false otherwise
Parameters:
permutation(Permutation &) – [in] The permutation representation to compilearguments(const std::vector<std::string> &) – [in] List of arguments to pass to the compilerwriteMutex(std::mutex &)
Returns: bool
Attributes: virtual
Source: sdk/tools/ffx_shader_compiler/src/hlsl_compiler.h (line 156, column 10)
ExtractReflectionData
virtual bool ExtractReflectionData(Permutation &permutation) overrideExtracts HLSL shader reflection data.
Returns: true if successful, false otherwise
Parameters:
permutation(Permutation &) – [in] The permutation representation to extract reflection for
Returns: bool
Attributes: virtual
Source: sdk/tools/ffx_shader_compiler/src/hlsl_compiler.h (line 168, column 10)
WriteBinaryHeaderReflectionData
virtual void WriteBinaryHeaderReflectionData(FILE *fp, const Permutation &permutation, std::mutex &writeMutex) overrideWrites HLSL reflection header data for shader permutations.
Returns: none
Parameters:
fp(FILE *) – [in] The file to write header information intopermutation(const Permutation &) – [in] The permutation representation to write to headwriteMutex(std::mutex &)
Attributes: virtual
Source: sdk/tools/ffx_shader_compiler/src/hlsl_compiler.h (line 180, column 10)
WritePermutationHeaderReflectionStructMembers
virtual void WritePermutationHeaderReflectionStructMembers(FILE *fp) overrideWrites HLSL permutation reflection header data structures for shader permutations.
Returns: none
Parameters:
fp(FILE *) – [in] The file to write header data structures into
Attributes: virtual
Source: sdk/tools/ffx_shader_compiler/src/hlsl_compiler.h (line 190, column 10)
WritePermutationHeaderReflectionData
virtual void WritePermutationHeaderReflectionData(FILE *fp, const Permutation &permutation) overrideWrites HLSL permutation reflection header data for shader permutations.
Returns: none
Parameters:
fp(FILE *) – [in] The file to write header information intopermutation(const Permutation &) – [in] The permutation representation to write to head
Attributes: virtual
Source: sdk/tools/ffx_shader_compiler/src/hlsl_compiler.h (line 201, column 10)
Enumerations
Backend
enum BackendEnumeration of possible HLSL backends to compile with.
Values:
DXC
Use included DXC compiler processes.
GDK_SCARLETT_X64
Use GDK-provided shader compiler dll (requires the GDK be installed)
GDK_XBOXONE_X64
Use GDK-provided shader compiler dll (requires the GDK be installed)
FXC
Use included FXC compiler processes.
Source: sdk/tools/ffx_shader_compiler/src/hlsl_compiler.h (line 105, column 5)
Dependencies: Permutation