UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FODSCManager Class Reference

#include <ODSCManager.h>

+ Inheritance diagram for FODSCManager:

Public Member Functions

ENGINE_API FODSCManager ()
 
virtual ENGINE_API ~FODSCManager ()
 
ENGINE_API bool Tick (float DeltaSeconds) override
 
ENGINE_API void AddThreadedRequest (const TArray< FString > &MaterialsToCompile, const FString &ShaderTypesToLoad, EShaderPlatform ShaderPlatform, ERHIFeatureLevel::Type FeatureLevel, EMaterialQualityLevel::Type QualityLevel, ODSCRecompileCommand RecompileCommandType, const FString &RequestedMaterialName=FString(), const FShaderCompilerFlags &ExtraCompilerFlags=FShaderCompilerFlags())
 
ENGINE_API void AddThreadedShaderPipelineRequest (EShaderPlatform ShaderPlatform, ERHIFeatureLevel::Type FeatureLevel, EMaterialQualityLevel::Type QualityLevel, const FMaterial *Material, const FString &VertexFactoryName, const FString &PipelineName, const TArray< FString > &ShaderTypeNames, int32 PermutationId, const TArray< FShaderId > &RequestShaderIds)
 
void AddThreadedShaderPipelineRequest (EShaderPlatform ShaderPlatform, ERHIFeatureLevel::Type FeatureLevel, EMaterialQualityLevel::Type QualityLevel, const FString &MaterialName, const FString &VertexFactoryName, const FString &PipelineName, const TArray< FString > &ShaderTypeNames, int32 PermutationId)
 
bool IsHandlingRequests () const
 
void TryLoadGlobalShaders (EShaderPlatform ShaderPlatform)
 
bool CheckIfRequestAlreadySent (const TArray< FShaderId > &RequestShaderIds, const FMaterial *Material) const
 
- Public Member Functions inherited from FTSTickerObjectBase
 UE_NONCOPYABLE (FTSTickerObjectBase)
 
CORE_API FTSTickerObjectBase (float InDelay=0.0f, FTSTicker &Ticker=FTSTicker::GetCoreTicker())
 
virtual CORE_API ~FTSTickerObjectBase ()
 

Static Public Member Functions

static void RegisterMaterialInstance (const UMaterialInstance *MI)
 
static void UnregisterMaterialInstance (const UMaterialInstance *MI)
 
static ENGINE_API bool IsODSCEnabled ()
 
static bool IsODSCActive ()
 
static bool ShouldForceRecompile (const FMaterialShaderMap *MaterialShaderMap, const FMaterial *Material)
 
static void SuspendODSCForceRecompile ()
 
static void ResumeODSCForceRecompile ()
 
static void ReportODSCError (const FString &InErrorMessage)
 
static bool UseDefaultMaterialOnRecompile ()
 
static void UnregisterMaterialName (const FMaterial *Material)
 
static void RegisterMaterialShaderMaps (const FString &MaterialName, const TArray< TRefCountPtr< FMaterialShaderMap > > &LoadedShaderMaps)
 
static FMaterialShaderMapFindMaterialShaderMap (const FString &MaterialName, const FMaterialShaderMapId &ShaderMapId)
 
static ENGINE_API void SetCurrentPrimitiveSceneInfo (FPrimitiveSceneInfo *PrimitiveSceneInfo)
 
static ENGINE_API void ResetCurrentPrimitiveSceneInfo ()
 

Friends

class FODSCManagerAccess
 

Detailed Description

Responsible for processing shader compile responses from the ODSC Thread. Interface for submitting shader compile requests to the ODSC Thread.

Constructor & Destructor Documentation

◆ FODSCManager()

FODSCManager::FODSCManager ( )

Constructor

◆ ~FODSCManager()

FODSCManager::~FODSCManager ( )
virtual

Destructor

Member Function Documentation

◆ AddThreadedRequest()

void FODSCManager::AddThreadedRequest ( const TArray< FString > &  MaterialsToCompile,
const FString &  ShaderTypesToLoad,
EShaderPlatform  ShaderPlatform,
ERHIFeatureLevel::Type  FeatureLevel,
EMaterialQualityLevel::Type  QualityLevel,
ODSCRecompileCommand  RecompileCommandType,
const FString &  RequestedMaterialName = FString(),
const FShaderCompilerFlags ExtraCompilerFlags = FShaderCompilerFlags() 
)

Add a request to compile a shader. The results are submitted and processed in an async manner.

Parameters
MaterialsToCompile- List of material names to submit compiles for.
ShaderPlatform- Which shader platform to compile for.
RecompileCommandType- Whether we should recompile changed or global shaders.
Returns
false if no longer needs ticking

◆ AddThreadedShaderPipelineRequest() [1/2]

void FODSCManager::AddThreadedShaderPipelineRequest ( EShaderPlatform  ShaderPlatform,
ERHIFeatureLevel::Type  FeatureLevel,
EMaterialQualityLevel::Type  QualityLevel,
const FMaterial Material,
const FString &  VertexFactoryName,
const FString &  PipelineName,
const TArray< FString > &  ShaderTypeNames,
int32  PermutationId,
const TArray< FShaderId > &  RequestShaderIds 
)

Add a request to compile a pipeline of shaders. The results are submitted and processed in an async manner.

Parameters
ShaderPlatform- Which shader platform to compile for.
FeatureLevel- Which feature level to compile for.
QualityLevel- Which material quality level to compile for.
MaterialName- The name of the material to compile.
VertexFactoryName- The name of the vertex factory type we should compile.
PipelineName- The name of the shader pipeline we should compile.
ShaderTypeNames- The shader type names of all the shader stages in the pipeline.
PermutationId- The permutation ID of the shader we should compile.
Returns
false if no longer needs ticking

◆ AddThreadedShaderPipelineRequest() [2/2]

void FODSCManager::AddThreadedShaderPipelineRequest ( EShaderPlatform  ShaderPlatform,
ERHIFeatureLevel::Type  FeatureLevel,
EMaterialQualityLevel::Type  QualityLevel,
const FString &  MaterialName,
const FString &  VertexFactoryName,
const FString &  PipelineName,
const TArray< FString > &  ShaderTypeNames,
int32  PermutationId 
)
inline

◆ CheckIfRequestAlreadySent()

bool FODSCManager::CheckIfRequestAlreadySent ( const TArray< FShaderId > &  RequestShaderIds,
const FMaterial Material 
) const

◆ FindMaterialShaderMap()

FMaterialShaderMap * FODSCManager::FindMaterialShaderMap ( const FString &  MaterialName,
const FMaterialShaderMapId ShaderMapId 
)
static

◆ IsHandlingRequests()

bool FODSCManager::IsHandlingRequests ( ) const
inline

Returns true if we would actually add a request when calling AddThreadedShaderPipelineRequest.

◆ IsODSCActive()

bool FODSCManager::IsODSCActive ( )
inlinestatic

Check if it is currently running

◆ IsODSCEnabled()

bool FODSCManager::IsODSCEnabled ( )
static

Check options to see if ODSC could be active in this session

◆ RegisterMaterialInstance()

void FODSCManager::RegisterMaterialInstance ( const UMaterialInstance MI)
static

◆ RegisterMaterialShaderMaps()

void FODSCManager::RegisterMaterialShaderMaps ( const FString &  MaterialName,
const TArray< TRefCountPtr< FMaterialShaderMap > > &  LoadedShaderMaps 
)
static

◆ ReportODSCError()

void FODSCManager::ReportODSCError ( const FString &  InErrorMessage)
static

◆ ResetCurrentPrimitiveSceneInfo()

void FODSCManager::ResetCurrentPrimitiveSceneInfo ( )
static

◆ ResumeODSCForceRecompile()

void FODSCManager::ResumeODSCForceRecompile ( )
static

◆ SetCurrentPrimitiveSceneInfo()

void FODSCManager::SetCurrentPrimitiveSceneInfo ( FPrimitiveSceneInfo PrimitiveSceneInfo)
static

◆ ShouldForceRecompile()

bool FODSCManager::ShouldForceRecompile ( const FMaterialShaderMap MaterialShaderMap,
const FMaterial Material 
)
inlinestatic

◆ SuspendODSCForceRecompile()

void FODSCManager::SuspendODSCForceRecompile ( )
static

◆ Tick()

bool FODSCManager::Tick ( float  DeltaSeconds)
overridevirtual

FTSTicker callback

Parameters
DeltaSeconds- time in seconds since the last tick
Returns
false if no longer needs ticking

Implements FTSTickerObjectBase.

◆ TryLoadGlobalShaders()

void FODSCManager::TryLoadGlobalShaders ( EShaderPlatform  ShaderPlatform)

◆ UnregisterMaterialInstance()

void FODSCManager::UnregisterMaterialInstance ( const UMaterialInstance MI)
static

◆ UnregisterMaterialName()

void FODSCManager::UnregisterMaterialName ( const FMaterial Material)
static

◆ UseDefaultMaterialOnRecompile()

bool FODSCManager::UseDefaultMaterialOnRecompile ( )
static

Friends And Related Symbol Documentation

◆ FODSCManagerAccess

friend class FODSCManagerAccess
friend

The documentation for this class was generated from the following files: