UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RHICommandList.cpp File Reference

Classes

struct  FRHICommandListExecutor::FTaskPipe::FTask
 

Functions

 CSV_DEFINE_CATEGORY_MODULE (RHI_API, RHITStalls, false)
 
 CSV_DEFINE_CATEGORY_MODULE (RHI_API, RHITFlushes, false)
 
 DECLARE_CYCLE_STAT (TEXT("Nonimmed. Command List Execute"), STAT_NonImmedCmdListExecuteTime, STATGROUP_RHICMDLIST)
 
 DECLARE_DWORD_COUNTER_STAT (TEXT("Nonimmed. Command List memory"), STAT_NonImmedCmdListMemory, STATGROUP_RHICMDLIST)
 
 DECLARE_DWORD_COUNTER_STAT (TEXT("Nonimmed. Command count"), STAT_NonImmedCmdListCount, STATGROUP_RHICMDLIST)
 
 DECLARE_CYCLE_STAT (TEXT("All Command List Execute"), STAT_ImmedCmdListExecuteTime, STATGROUP_RHICMDLIST)
 
 DECLARE_DWORD_COUNTER_STAT (TEXT("Immed. Command List memory"), STAT_ImmedCmdListMemory, STATGROUP_RHICMDLIST)
 
 DECLARE_DWORD_COUNTER_STAT (TEXT("Immed. Command count"), STAT_ImmedCmdListCount, STATGROUP_RHICMDLIST)
 
 UE_TRACE_CHANNEL_DEFINE (RHICommandsChannel)
 
 DECLARE_CYCLE_STAT (TEXT("Parallel Translate"), STAT_ParallelTranslate, STATGROUP_RHICMDLIST)
 
 DECLARE_CYCLE_STAT (TEXT("RHI Thread Parallel Translate Wait"), STAT_ParallelTranslateWait, STATGROUP_RHICMDLIST)
 
 DECLARE_CYCLE_STAT (TEXT("Explicit wait for tasks"), STAT_ExplicitWait, STATGROUP_RHICMDLIST)
 
 DECLARE_CYCLE_STAT (TEXT("Explicit wait for RHI thread"), STAT_ExplicitWaitRHIThread, STATGROUP_RHICMDLIST)
 
 DECLARE_CYCLE_STAT (TEXT("Spin RHIThread wait for stall"), STAT_SpinWaitRHIThreadStall, STATGROUP_RHICMDLIST)
 
 DECLARE_CYCLE_STAT (TEXT("RHI Thread Execute"), STAT_RHIThreadExecute, STATGROUP_RHICMDLIST)
 
 FRHICOMMAND_MACRO (FRHICommandRHIThreadFence)
 

Variables

TAutoConsoleVariable< int32CVarRHICmdWidth (TEXT("r.RHICmdWidth"), 8, TEXT("Controls the task granularity of a great number of things in the parallel renderer."))
 
TAutoConsoleVariable< boolCVarRHICmdParallelTranslateEnable (TEXT("r.RHICmd.ParallelTranslate.Enable"), true, TEXT("Setting this to false will make all command lists translate on the RHI thread."))
 
TAutoConsoleVariable< int32CVarRHICmdParallelTranslateMaxCommandsPerTranslate (TEXT("r.RHICmd.ParallelTranslate.MaxCommandsPerTranslate"), 256, TEXT("A value less than 0 means 'always split'. Command lists will never be batched together in the same translate job."))
 
TAutoConsoleVariable< boolCVarRHICmdParallelTranslateCombineSingleAndParallel (TEXT("r.RHICmd.ParallelTranslate.CombineSingleAndParallel"), false, TEXT("Enabling this may trade reduced parallelism for reduced dispatch overhead."))
 
FAutoConsoleTaskPriority CPrio_SceneRenderingTask (TEXT("TaskGraph.TaskPriorities.SceneRenderingTask"), TEXT("Task and thread priority for various scene rendering tasks."), ENamedThreads::NormalThreadPriority, ENamedThreads::HighTaskPriority)
 
TAutoConsoleVariable< int32GProfileGPUTransitions
 
RHI_API TOptional< ERHIThreadModeGPendingRHIThreadMode
 
uint32 GRenderThreadIdle [ERenderThreadIdleTypes::Num] = { 0 }
 
uint64 GInputLatencyTime = 0
 
FRHICommandListExecutor GRHICommandList
 

Function Documentation

◆ CSV_DEFINE_CATEGORY_MODULE() [1/2]

CSV_DEFINE_CATEGORY_MODULE ( RHI_API  ,
RHITFlushes  ,
false   
)

◆ CSV_DEFINE_CATEGORY_MODULE() [2/2]

CSV_DEFINE_CATEGORY_MODULE ( RHI_API  ,
RHITStalls  ,
false   
)

◆ DECLARE_CYCLE_STAT() [1/8]

DECLARE_CYCLE_STAT ( TEXT("All Command List Execute" ,
STAT_ImmedCmdListExecuteTime  ,
STATGROUP_RHICMDLIST   
)

◆ DECLARE_CYCLE_STAT() [2/8]

DECLARE_CYCLE_STAT ( TEXT("Explicit wait for RHI thread" ,
STAT_ExplicitWaitRHIThread  ,
STATGROUP_RHICMDLIST   
)

◆ DECLARE_CYCLE_STAT() [3/8]

DECLARE_CYCLE_STAT ( TEXT("Explicit wait for tasks" ,
STAT_ExplicitWait  ,
STATGROUP_RHICMDLIST   
)

◆ DECLARE_CYCLE_STAT() [4/8]

DECLARE_CYCLE_STAT ( TEXT("Nonimmed. Command List Execute" ,
STAT_NonImmedCmdListExecuteTime  ,
STATGROUP_RHICMDLIST   
)

◆ DECLARE_CYCLE_STAT() [5/8]

DECLARE_CYCLE_STAT ( TEXT("Parallel Translate" ,
STAT_ParallelTranslate  ,
STATGROUP_RHICMDLIST   
)

◆ DECLARE_CYCLE_STAT() [6/8]

DECLARE_CYCLE_STAT ( TEXT("RHI Thread Execute" ,
STAT_RHIThreadExecute  ,
STATGROUP_RHICMDLIST   
)

◆ DECLARE_CYCLE_STAT() [7/8]

◆ DECLARE_CYCLE_STAT() [8/8]

DECLARE_CYCLE_STAT ( TEXT("Spin RHIThread wait for stall" ,
STAT_SpinWaitRHIThreadStall  ,
STATGROUP_RHICMDLIST   
)

◆ DECLARE_DWORD_COUNTER_STAT() [1/4]

DECLARE_DWORD_COUNTER_STAT ( TEXT("Immed. Command count" ,
STAT_ImmedCmdListCount  ,
STATGROUP_RHICMDLIST   
)

◆ DECLARE_DWORD_COUNTER_STAT() [2/4]

DECLARE_DWORD_COUNTER_STAT ( TEXT("Immed. Command List memory" ,
STAT_ImmedCmdListMemory  ,
STATGROUP_RHICMDLIST   
)

◆ DECLARE_DWORD_COUNTER_STAT() [3/4]

DECLARE_DWORD_COUNTER_STAT ( TEXT("Nonimmed. Command count" ,
STAT_NonImmedCmdListCount  ,
STATGROUP_RHICMDLIST   
)

◆ DECLARE_DWORD_COUNTER_STAT() [4/4]

DECLARE_DWORD_COUNTER_STAT ( TEXT("Nonimmed. Command List memory" ,
STAT_NonImmedCmdListMemory  ,
STATGROUP_RHICMDLIST   
)

◆ FRHICOMMAND_MACRO()

FRHICOMMAND_MACRO ( FRHICommandRHIThreadFence  )

◆ UE_TRACE_CHANNEL_DEFINE()

UE_TRACE_CHANNEL_DEFINE ( RHICommandsChannel  )

Variable Documentation

◆ CPrio_SceneRenderingTask

FAutoConsoleTaskPriority CPrio_SceneRenderingTask(TEXT("TaskGraph.TaskPriorities.SceneRenderingTask"), TEXT("Task and thread priority for various scene rendering tasks."), ENamedThreads::NormalThreadPriority, ENamedThreads::HighTaskPriority) ( TEXT("TaskGraph.TaskPriorities.SceneRenderingTask")  ,
TEXT("Task and thread priority for various scene rendering tasks." ,
ENamedThreads::NormalThreadPriority  ,
ENamedThreads::HighTaskPriority   
)

◆ CVarRHICmdParallelTranslateCombineSingleAndParallel

TAutoConsoleVariable< bool > CVarRHICmdParallelTranslateCombineSingleAndParallel(TEXT("r.RHICmd.ParallelTranslate.CombineSingleAndParallel"), false, TEXT("Enabling this may trade reduced parallelism for reduced dispatch overhead.")) ( TEXT("r.RHICmd.ParallelTranslate.CombineSingleAndParallel")  ,
false  ,
TEXT("Enabling this may trade reduced parallelism for reduced dispatch overhead."  
)

◆ CVarRHICmdParallelTranslateEnable

TAutoConsoleVariable< bool > CVarRHICmdParallelTranslateEnable(TEXT("r.RHICmd.ParallelTranslate.Enable"), true, TEXT("Setting this to false will make all command lists translate on the RHI thread.")) ( TEXT("r.RHICmd.ParallelTranslate.Enable")  ,
true  ,
TEXT("Setting this to false will make all command lists translate on the RHI thread."  
)

◆ CVarRHICmdParallelTranslateMaxCommandsPerTranslate

TAutoConsoleVariable< int32 > CVarRHICmdParallelTranslateMaxCommandsPerTranslate(TEXT("r.RHICmd.ParallelTranslate.MaxCommandsPerTranslate"), 256, TEXT("A value less than 0 means 'always split'. Command lists will never be batched together in the same translate job.")) ( TEXT("r.RHICmd.ParallelTranslate.MaxCommandsPerTranslate")  ,
256  ,
TEXT("A value less than 0 means 'always split'. Command lists will never be batched together in the same translate job."  
)

◆ CVarRHICmdWidth

TAutoConsoleVariable< int32 > CVarRHICmdWidth(TEXT("r.RHICmdWidth"), 8, TEXT("Controls the task granularity of a great number of things in the parallel renderer.")) ( TEXT("r.RHICmdWidth")  ,
,
TEXT("Controls the task granularity of a great number of things in the parallel renderer."  
)

◆ GInputLatencyTime

uint64 GInputLatencyTime = 0

How many cycles the from sampling input to the frame being flipped.

◆ GPendingRHIThreadMode

RHI_API TOptional<ERHIThreadMode> GPendingRHIThreadMode

◆ GProfileGPUTransitions

TAutoConsoleVariable<int32> GProfileGPUTransitions
extern

◆ GRenderThreadIdle

uint32 GRenderThreadIdle[ERenderThreadIdleTypes::Num] = { 0 }

Accumulates how many cycles the renderthread has been idle.

◆ GRHICommandList

FRHICommandListExecutor GRHICommandList