FShaderCompilingManager

Manager of asynchronous and parallel shader compilation.

Windows
MacOS
Linux

References

Module

Engine

Header

/Engine/Source/Runtime/Engine/Public/ShaderCompiler.h

Include

#include "ShaderCompiler.h"

Syntax

class FShaderCompilingManager

Remarks

Manager of asynchronous and parallel shader compilation. This class contains an interface to enqueue and retreive asynchronous shader jobs, and manages a FShaderCompileThreadRunnable.

Constructors

Name Description

Public function

FShaderCompilingManager()

Functions

Name Description

Public function Const

bool

 

AllowAsynchronousShaderCompiling()

Public function Const

bool

 

AreWarningsSuppressed

(
    const EShaderPlatform Platform
)

Public function

void

 

CancelCompilation

(
    const TCHAR* MaterialName,
    const TArray< int32 >& ShaderMapId...
)

Removes all outstanding compile jobs for the passed shader maps.

Public function Const

FString

 

CreateShaderDebugInfoPath

(
    const FShaderCompilerInput& Shader...
)

Public function

void

 

FinishAllCompilation()

Blocks until completion of all async shader compiling, and assigns shader maps to relevant materials.

Public function

void

 

FinishCompilation

(
    const TCHAR* MaterialName,
    const TArray< int32 >& ShaderMapId...
)

Blocks until completion of the requested shader maps.

Public function Const

const FStrin...

 

GetAbsoluteShaderDebugInfoDirectory()

Public function Const

EDumpShaderD...

 

GetDumpShaderDebugInfo()

Public function Const

int32

 

GetNumOutstandingJobs()

Public function Const

int32

 

GetNumPendingJobs()

Public function Const

int32

 

GetNumRemainingJobs()

Returns the number of outstanding compile jobs.

Public function Const

bool

 

HasShaderJobs()

Return true if we have shader jobs in any state shader jobs are removed when they are applied to the gamethreadshadermap accessable from gamethread

Public function Const

bool

 

IsCompiling()

Returns whether async compiling is happening.

Public function Const

bool

 

IsShaderCompilationSkipped()

Public function Static

bool

 

IsShaderCompilerWorkerRunning

(
    FProcHandle& WorkerHandle
)

Returns true if the given shader compile worker is still running.

Public function

FShaderPipel...

 

PreparePipelineCompileJob

(
    uint32 Id,
    const FShaderPipelineCompileJobKey ...,
    EShaderCompileJobPriority Priority
)

Public function

FShaderCompi...

 

PrepareShaderCompileJob

(
    uint32 Id,
    const FShaderCompileJobKey& Key,
    EShaderCompileJobPriority Priority
)

Prepares a job of the given type for compilation.

Public function

void

 

ProcessAsyncResults

(
    bool bLimitExecutionTime,
    bool bBlockOnGlobalShaderCompletion
)

Processes completed asynchronous shader maps, and assigns them to relevant materials.

Public function

void

 

ProcessFinishedJob

(
    FShaderCommonCompileJob* Finis...
)

This is an entry point for all jobs that have finished the compilation.

Public function

void

 

SetExternalJobs

(
    int32 NumJobs
)

Public function Const

bool

 

ShouldDisplayCompilingNotification()

Returns whether to display a notification that shader compiling is happening in the background.

Public function Const

bool

 

ShouldRecompileToDumpShaderDebugInfo

(
    const FShaderCompileJob& Job
)

Public function Const

bool

 

ShouldRecompileToDumpShaderDebugInfo

(
    const FShaderCompilerInput& Input,
    const FShaderCompilerOutput& Outpu...,
    bool bSucceeded
)

Public function

void

 

Shutdown()

Shutdown the shader compiler manager, this will shutdown immediately and not process any more shader compile requests.

Public function

void

 

SkipShaderCompilation

(
    bool toggle
)

Public function

void

 

SubmitJobs

(
    TArray< FShaderCommonCompileJobPtr ...,
    const FString MaterialBasePath,
    FString PermutationString
)

Adds shader jobs to be asynchronously compiled.

Public function

void

 

SuppressWarnings

(
    const EShaderPlatform Platform
)

Enums

Name

Description

Public enum

EDumpShaderDebugInfo

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss