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

Go to the source code of this file.

Classes

struct  FRenderThreadIdleScope
 
struct  FRHICopyTextureInfo
 
struct  FRHIBufferRange
 
struct  FUpdateTexture3DData
 
struct  FRayTracingShaderBindings
 
struct  FRayTracingLocalShaderBindings
 
struct  FLockTracker
 
struct  FLockTracker::FLockParams
 
struct  FRHICommandBase
 
struct  TRHILambdaCommand< RHICmdListType, LAMBDA >
 
struct  TRHILambdaCommand_NoMarker< RHICmdListType, LAMBDA >
 
struct  TRHILambdaCommandMultiPipe< RHICmdListType, LAMBDA >
 
class  FRHICommandListScopedFence
 
class  FRHICommandListScopedPipelineGuard
 
class  FRHICommandListScopedAllowExtraTransitions
 
class  FRHICommandListBase
 
struct  FRHICommandListBase::FShaderParameterState
 
struct  FRHICommandListBase::FPersistentState
 
struct  FUnnamedRhiCommand
 
struct  FRHICommand< TCmd, NameType >
 
class  FRHIComputeCommandList
 
class  FRHICommandList
 
class  FScopedRHIThreadStaller
 
class  FRHICommandListImmediate
 
struct  FRHICommandListImmediate::FQueuedCommandList
 
class  FRHICommandListScopedFlushAndExecute
 
class  FRHICommandListScopedExtendResourceLifetime
 
class  FRHICommandListScopedPipeline
 
struct  FRHIScopedGPUMask
 
struct  FScopedUniformBufferStaticBindings
 
class  FRHICommandList_RecursiveHazardous
 
class  TRHICommandList_RecursiveHazardous< ContextType >
 
class  FRHIComputeCommandList_RecursiveHazardous
 
class  TRHIComputeCommandList_RecursiveHazardous< ContextType >
 
class  FRHISubCommandList
 
class  FRHICommandListExecutor
 
struct  FRHICommandListExecutor::FTranslateState::FPipelineState
 
struct  FRHICommandListExecutor::FSubmitState::FSubmitArgs
 
class  FRenderTask
 

Namespaces

namespace  ERenderThreadIdleTypes
 
namespace  EImmediateFlushType
 
namespace  UE
 
namespace  UE::RHI
 

Macros

#define RHICOMMAND_CALLSTACK   0
 
#define RHI_STATS   0
 
#define RHISTAT(Method)
 
#define RHI_EXECUTE_API   RHI_API
 
#define PSO_VERIFY   check
 
#define ALLOC_COMMAND(...)   new ( AllocCommand(sizeof(__VA_ARGS__), alignof(__VA_ARGS__)) ) __VA_ARGS__
 
#define ALLOC_COMMAND_CL(RHICmdList, ...)   new ( (RHICmdList).AllocCommand(sizeof(__VA_ARGS__), alignof(__VA_ARGS__)) ) __VA_ARGS__
 
#define CAN_TOGGLE_COMMAND_LIST_BYPASS   (!UE_BUILD_SHIPPING && !UE_BUILD_TEST)
 
#define FRHICOMMAND_UNNAMED(CommandName)    struct CommandName final : public FRHICommand<CommandName, FUnnamedRhiCommand>
 
#define FRHICOMMAND_UNNAMED_TPL(TemplateType, CommandName)
 
#define FRHICOMMAND_MACRO(CommandName)
 
#define FRHICOMMAND_MACRO_TPL(TemplateType, CommandName)
 
#define SCOPED_GPU_MASK(RHICmdList, GPUMask)
 
#define SCOPED_UNIFORM_BUFFER_STATIC_BINDINGS(RHICmdList, UniformBuffers)   FScopedUniformBufferStaticBindings PREPROCESSOR_JOIN(UniformBuffers, __LINE__){ RHICmdList, UniformBuffers }
 

Typedefs

using FRHIRecordBundleComputeDispatchCallback = TFunction< void(FRHIShaderBundleComputeDispatch &Dispatch)>
 
using FRHIRecordBundleGraphicsDispatchCallback = TFunction< void(FRHIShaderBundleGraphicsDispatch &Dispatch)>
 

Enumerations

enum class  ERHIThreadMode { None , DedicatedThread , Tasks }
 
enum  ERenderThreadIdleTypes::Type { ERenderThreadIdleTypes::WaitingForAllOtherSleep , ERenderThreadIdleTypes::WaitingForGPUQuery , ERenderThreadIdleTypes::WaitingForGPUPresent , ERenderThreadIdleTypes::Num }
 
enum class  ERayTracingLocalShaderBindingType : uint8 { Persistent , Transient , Clear , Validation }
 
enum class  ERayTracingBindingType : uint8 { HitGroup , CallableShader , MissShader }
 
enum  EImmediateFlushType::Type { EImmediateFlushType::WaitForOutstandingTasksOnly = 0 , EImmediateFlushType::DispatchToRHIThread = 1 , EImmediateFlushType::FlushRHIThread = 2 , EImmediateFlushType::FlushRHIThreadFlushResources = 3 }
 
enum class  ERHISubmitFlags {
  None = 0 , SubmitToGPU = 1 << 0 , DeleteResources = 1 << 1 , FlushRHIThread = 1 << 2 ,
  EndFrame = 1 << 3 , EnableBypass = 1 << 4 , DisableBypass = 1 << 5
}
 

Functions

 CSV_DECLARE_CATEGORY_MODULE_EXTERN (RHI_API, RHITStalls)
 
 CSV_DECLARE_CATEGORY_MODULE_EXTERN (RHI_API, RHITFlushes)
 
RHI_API ERHIAccess RHIGetDefaultResourceState (ETextureCreateFlags InUsage, bool bInHasInitialData)
 
RHI_API ERHIAccess RHIGetDefaultResourceState (EBufferUsageFlags InUsage, bool bInHasInitialData)
 
 DECLARE_STATS_GROUP (TEXT("RHICmdList"), STATGROUP_RHICMDLIST, STATCAT_Advanced)
 
 UE_TRACE_CHANNEL_EXTERN (RHICommandsChannel, RHI_API)
 
bool IsRunningRHIInSeparateThread ()
 
bool IsRunningRHIInDedicatedThread ()
 
bool IsRunningRHIInTaskThread ()
 
 FRHICOMMAND_MACRO (FRHICommandBeginUpdateMultiFrameResource)
 
 FRHICOMMAND_MACRO (FRHICommandEndUpdateMultiFrameResource)
 
 FRHICOMMAND_MACRO (FRHICommandBeginUpdateMultiFrameUAV)
 
 FRHICOMMAND_MACRO (FRHICommandEndUpdateMultiFrameUAV)
 
 FRHICOMMAND_MACRO (FRHICommandSetStencilRef)
 
 FRHICOMMAND_MACRO_TPL (TRHIShader, FRHICommandSetShaderParameters)
 
 FRHICOMMAND_MACRO_TPL (TRHIShader, FRHICommandSetShaderUnbinds)
 
 FRHICOMMAND_MACRO (FRHICommandDrawPrimitive)
 
 FRHICOMMAND_MACRO (FRHICommandDrawIndexedPrimitive)
 
 FRHICOMMAND_MACRO (FRHICommandSetBlendFactor)
 
 FRHICOMMAND_MACRO (FRHICommandSetStreamSource)
 
 FRHICOMMAND_MACRO (FRHICommandSetViewport)
 
 FRHICOMMAND_MACRO (FRHICommandSetStereoViewport)
 
 FRHICOMMAND_MACRO (FRHICommandSetScissorRect)
 
 FRHICOMMAND_MACRO (FRHICommandBeginRenderPass)
 
 FRHICOMMAND_MACRO (FRHICommandEndRenderPass)
 
 FRHICOMMAND_MACRO (FRHICommandNextSubpass)
 
 FRHICOMMAND_MACRO (FRHICommandSetComputePipelineState)
 
 FRHICOMMAND_MACRO (FRHICommandSetGraphicsPipelineState)
 
 FRHICOMMAND_MACRO (FRHICommandDispatchComputeShader)
 
 FRHICOMMAND_MACRO (FRHICommandDispatchIndirectComputeShader)
 
 FRHICOMMAND_MACRO (FRHICommandDispatchComputeShaderBundle)
 
 FRHICOMMAND_MACRO (FRHICommandDispatchGraphicsShaderBundle)
 
 FRHICOMMAND_MACRO (FRHICommandSetShaderRootConstants)
 
 FRHICOMMAND_MACRO (FRHICommandBeginUAVOverlap)
 
 FRHICOMMAND_MACRO (FRHICommandEndUAVOverlap)
 
 FRHICOMMAND_MACRO (FRHICommandBeginSpecificUAVOverlap)
 
 FRHICOMMAND_MACRO (FRHICommandEndSpecificUAVOverlap)
 
 FRHICOMMAND_MACRO (FRHICommandDrawPrimitiveIndirect)
 
 FRHICOMMAND_MACRO (FRHICommandDrawIndexedIndirect)
 
 FRHICOMMAND_MACRO (FRHICommandDrawIndexedPrimitiveIndirect)
 
 FRHICOMMAND_MACRO (FRHICommandMultiDrawIndexedPrimitiveIndirect)
 
 FRHICOMMAND_MACRO (FRHICommandDispatchMeshShader)
 
 FRHICOMMAND_MACRO (FRHICommandDispatchIndirectMeshShader)
 
 FRHICOMMAND_MACRO (FRHICommandSetDepthBounds)
 
 FRHICOMMAND_MACRO (FRHIGpuHangCommandListCorruption)
 
 FRHICOMMAND_MACRO (FRHICommandSetShadingRate)
 
 FRHICOMMAND_MACRO (FRHICommandClearUAVFloat)
 
 FRHICOMMAND_MACRO (FRHICommandClearUAVUint)
 
 FRHICOMMAND_MACRO (FRHICommandCopyTexture)
 
 FRHICOMMAND_MACRO (FRHICommandResummarizeHTile)
 
 FRHICOMMAND_MACRO (FRHICommandBeginTransitions)
 
 FRHICOMMAND_MACRO (FRHICommandEndTransitions)
 
 FRHICOMMAND_MACRO (FRHICommandResourceTransition)
 
 FRHICOMMAND_MACRO (FRHICommandSetTrackedAccess)
 
 FRHICOMMAND_MACRO (FRHICommandSetAsyncComputeBudget)
 
 FRHICOMMAND_MACRO (FRHICommandSetComputeBudget)
 
 FRHICOMMAND_MACRO (FRHICommandCopyToStagingBuffer)
 
 FRHICOMMAND_MACRO (FRHICommandWriteGPUFence)
 
 FRHICOMMAND_MACRO (FRHICommandSetStaticUniformBuffers)
 
 FRHICOMMAND_MACRO (FRHICommandSetStaticUniformBuffer)
 
 FRHICOMMAND_MACRO (FRHICommandSetUniformBufferDynamicOffset)
 
 FRHICOMMAND_MACRO (FRHICommandBeginRenderQuery)
 
 FRHICOMMAND_MACRO (FRHICommandEndRenderQuery)
 
 FRHICOMMAND_MACRO (FRHICommandPostExternalCommandsReset)
 
 FRHICOMMAND_MACRO (FRHICommandEndDrawingViewport)
 
 FRHICOMMAND_MACRO (FRHICommandCopyBufferRegion)
 
 FRHICOMMAND_UNNAMED (FRHICommandBindAccelerationStructureMemory)
 
 FRHICOMMAND_UNNAMED (FRHICommandBuildSceneAccelerationStructures)
 
 FRHICOMMAND_MACRO (FRHICommandCommitShaderBindingTable)
 
 FRHICOMMAND_MACRO (FRHICommandClearShaderBindingTable)
 
 FRHICOMMAND_UNNAMED (FRHICommandBuildAccelerationStructures)
 
 FRHICOMMAND_UNNAMED (FRHICommandExecuteMultiIndirectClusterOperation)
 
 FRHICOMMAND_MACRO (FRHICommandRayTraceDispatch)
 
 FRHICOMMAND_MACRO (FRHICommandSetBindingsOnShaderBindingTable)
 
RHI_API FRHIComputePipelineStateExecuteSetComputePipelineState (FComputePipelineState *ComputePipelineState)
 
RHI_API FRHIGraphicsPipelineStateExecuteSetGraphicsPipelineState (class FGraphicsPipelineState *GraphicsPipelineState)
 
RHI_API FComputePipelineStateFindComputePipelineState (FRHIComputeShader *ComputeShader, bool bVerifyUse=true)
 
RHI_API FComputePipelineStateGetComputePipelineState (FRHIComputeCommandList &RHICmdList, FRHIComputeShader *ComputeShader, bool bVerifyUse=true)
 
RHI_API FGraphicsPipelineStateFindGraphicsPipelineState (const FGraphicsPipelineStateInitializer &Initializer, bool bVerifyUse=true)
 
RHI_API FGraphicsPipelineStateGetGraphicsPipelineState (FRHICommandList &RHICmdList, const FGraphicsPipelineStateInitializer &Initializer, bool bVerifyUse=true)
 
RHI_API FRHIComputePipelineStateGetRHIComputePipelineState (FComputePipelineState *)
 
RHI_API FRHIWorkGraphPipelineStateGetRHIWorkGraphPipelineState (FWorkGraphPipelineState *)
 
RHI_API FRHIRayTracingPipelineStateGetRHIRayTracingPipelineState (FRayTracingPipelineState *)
 
RHI_API uint32 GetRHIRayTracingPipelineStateMaxLocalBindingDataSize (FRayTracingPipelineState *)
 
 ENUM_CLASS_FLAGS (ERHISubmitFlags)
 
void RHI_API RHIResourceLifetimeAddRef (int32 NumRefs=1)
 
void RHI_API RHIResourceLifetimeReleaseRef (FRHICommandListImmediate &RHICmdList, int32 NumRefs=1)
 
FTextureReferenceRHIRef RHICreateTextureReference (FRHITexture *InReferencedTexture=nullptr)
 
void RHIUpdateTextureReference (FRHITextureReference *TextureRef, FRHITexture *NewTexture)
 
void RHIClearTextureReference (FRHITextureReference *TextureRef)
 
FTextureRHIRef RHICreateTexture (const FRHITextureCreateDesc &CreateDesc)
 
FTextureRHIRef RHIAsyncCreateTexture2D (uint32 SizeX, uint32 SizeY, uint8 Format, uint32 NumMips, ETextureCreateFlags Flags, ERHIAccess InResourceState, void **InitialMipData, uint32 NumInitialMips, const TCHAR *DebugName, FGraphEventRef &OutCompletionEvent)
 
FTextureRHIRef RHIAsyncReallocateTexture2D (FRHITexture *Texture2D, int32 NewMipCount, int32 NewSizeX, int32 NewSizeY, FThreadSafeCounter *RequestStatus)
 
ETextureReallocationStatus RHIFinalizeAsyncReallocateTexture2D (FRHITexture *Texture2D, bool bBlockUntilCompleted)
 
ETextureReallocationStatus RHICancelAsyncReallocateTexture2D (FRHITexture *Texture2D, bool bBlockUntilCompleted)
 
voidRHILockTexture2D (FRHITexture *Texture, uint32 MipIndex, EResourceLockMode LockMode, uint32 &DestStride, bool bLockWithinMiptail, bool bFlushRHIThread=true, uint64 *OutLockedByteCount=nullptr)
 
void RHIUnlockTexture2D (FRHITexture *Texture, uint32 MipIndex, bool bLockWithinMiptail, bool bFlushRHIThread=true)
 
voidRHILockTexture2DArray (FRHITexture *Texture, uint32 TextureIndex, uint32 MipIndex, EResourceLockMode LockMode, uint32 &DestStride, bool bLockWithinMiptail)
 
void RHIUnlockTexture2DArray (FRHITexture *Texture, uint32 TextureIndex, uint32 MipIndex, bool bLockWithinMiptail)
 
voidRHILockTextureCubeFace (FRHITexture *Texture, uint32 FaceIndex, uint32 ArrayIndex, uint32 MipIndex, EResourceLockMode LockMode, uint32 &DestStride, bool bLockWithinMiptail)
 
void RHIUnlockTextureCubeFace (FRHITexture *Texture, uint32 FaceIndex, uint32 ArrayIndex, uint32 MipIndex, bool bLockWithinMiptail)
 
void RHIUpdateTexture2D (FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion2D &UpdateRegion, uint32 SourcePitch, const uint8 *SourceData)
 
FUpdateTexture3DData RHIBeginUpdateTexture3D (FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion3D &UpdateRegion)
 
void RHIEndUpdateTexture3D (FUpdateTexture3DData &UpdateData)
 
void RHIEndMultiUpdateTexture3D (TArray< FUpdateTexture3DData > &UpdateDataArray)
 
void RHIUpdateTexture3D (FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion3D &UpdateRegion, uint32 SourceRowPitch, uint32 SourceDepthPitch, const uint8 *SourceData)
 
void RHIFlushResources ()
 
void RHIVirtualTextureSetFirstMipInMemory (FRHITexture *Texture, uint32 FirstMip)
 
void RHIVirtualTextureSetFirstMipVisible (FRHITexture *Texture, uint32 FirstMip)
 
voidRHIGetNativeDevice ()
 
voidRHIGetNativePhysicalDevice ()
 
voidRHIGetNativeGraphicsQueue ()
 
voidRHIGetNativeComputeQueue ()
 
voidRHIGetNativeInstance ()
 
voidRHIGetNativeCommandBuffer ()
 
FRHIShaderLibraryRef RHICreateShaderLibrary (EShaderPlatform Platform, FString const &FilePath, FString const &Name)
 
voidRHILockStagingBuffer (FRHIStagingBuffer *StagingBuffer, uint32 Offset, uint32 Size)
 
voidRHILockStagingBuffer (FRHIStagingBuffer *StagingBuffer, FRHIGPUFence *Fence, uint32 Offset, uint32 Size)
 
void RHIUnlockStagingBuffer (FRHIStagingBuffer *StagingBuffer)
 
FRayTracingGeometryRHIRef RHICreateRayTracingGeometry (const FRayTracingGeometryInitializer &Initializer)
 
FRayTracingAccelerationStructureSize RHICalcRayTracingGeometrySize (const FRayTracingGeometryInitializer &Initializer)
 
FORCEINLINE FRayTracingClusterOperationSize RHICalcRayTracingClusterOperationSize (const FRayTracingClusterOperationInitializer &Initializer)
 
FRayTracingAccelerationStructureOfflineMetadata RHIGetRayTracingGeometryOfflineMetadata (const FRayTracingGeometryOfflineDataHeader &OfflineDataHeader)
 
void RHIBindDebugLabelName (FRHITexture *Texture, const TCHAR *Name)
 
void RHIBindDebugLabelName (FRHIBuffer *Buffer, const TCHAR *Name)
 
void RHIBindDebugLabelName (FRHIUnorderedAccessView *UnorderedAccessViewRHI, const TCHAR *Name)
 
RHI_API void UE::RHI::CopySharedMips (FRHICommandList &RHICmdList, FRHITexture *SrcTexture, FRHITexture *DstTexture)
 
RHI_API void UE::RHI::CopySharedMips_AssumeSRVMaskState (FRHICommandList &RHICmdList, FRHITexture *SrcTexture, FRHITexture *DstTexture)
 
RHI_API FRayTracingShaderBindings UE::RHI::ConvertRayTracingShaderBindings (const FRHIBatchedShaderParameters &BatchedParameters)
 

Variables

RHI_API TOptional< ERHIThreadModeGPendingRHIThreadMode
 
RHI_API uint32 GRenderThreadIdle [ERenderThreadIdleTypes::Num]
 
RHI_API uint64 GInputLatencyTime
 
RHI_API TAutoConsoleVariable< int32CVarRHICmdWidth
 
RHI_API FRHICommandListExecutor GRHICommandList
 
RHI_API FAutoConsoleTaskPriority CPrio_SceneRenderingTask
 

Macro Definition Documentation

◆ ALLOC_COMMAND

#define ALLOC_COMMAND (   ...)    new ( AllocCommand(sizeof(__VA_ARGS__), alignof(__VA_ARGS__)) ) __VA_ARGS__

◆ ALLOC_COMMAND_CL

#define ALLOC_COMMAND_CL (   RHICmdList,
  ... 
)    new ( (RHICmdList).AllocCommand(sizeof(__VA_ARGS__), alignof(__VA_ARGS__)) ) __VA_ARGS__

◆ CAN_TOGGLE_COMMAND_LIST_BYPASS

#define CAN_TOGGLE_COMMAND_LIST_BYPASS   (!UE_BUILD_SHIPPING && !UE_BUILD_TEST)

◆ FRHICOMMAND_MACRO

#define FRHICOMMAND_MACRO (   CommandName)
Value:
struct PREPROCESSOR_JOIN(CommandName##String, __LINE__) \
{ \
static const TCHAR* TStr() { return TEXT(#CommandName); } \
}; \
struct CommandName final : public FRHICommand<CommandName, PREPROCESSOR_JOIN(CommandName##String, __LINE__)>
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define PREPROCESSOR_JOIN(TokenA, TokenB)
Definition PreprocessorHelpers.h:104
Definition RHICommandList.h:1604

◆ FRHICOMMAND_MACRO_TPL

#define FRHICOMMAND_MACRO_TPL (   TemplateType,
  CommandName 
)
Value:
struct PREPROCESSOR_JOIN(CommandName##String, __LINE__) \
{ \
static const TCHAR* TStr() { return TEXT(#CommandName); } \
}; \
template<typename TemplateType> \
struct CommandName final : public FRHICommand<CommandName<TemplateType>, PREPROCESSOR_JOIN(CommandName##String, __LINE__)>

◆ FRHICOMMAND_UNNAMED

#define FRHICOMMAND_UNNAMED (   CommandName)     struct CommandName final : public FRHICommand<CommandName, FUnnamedRhiCommand>

◆ FRHICOMMAND_UNNAMED_TPL

#define FRHICOMMAND_UNNAMED_TPL (   TemplateType,
  CommandName 
)
Value:
template<typename TemplateType> \
struct CommandName final : public FRHICommand<CommandName<TemplateType>, FUnnamedRhiCommand>

◆ PSO_VERIFY

#define PSO_VERIFY   check

◆ RHI_EXECUTE_API

#define RHI_EXECUTE_API   RHI_API

◆ RHI_STATS

#define RHI_STATS   0

◆ RHICOMMAND_CALLSTACK

#define RHICOMMAND_CALLSTACK   0

◆ RHISTAT

#define RHISTAT (   Method)

◆ SCOPED_GPU_MASK

#define SCOPED_GPU_MASK (   RHICmdList,
  GPUMask 
)

◆ SCOPED_UNIFORM_BUFFER_STATIC_BINDINGS

#define SCOPED_UNIFORM_BUFFER_STATIC_BINDINGS (   RHICmdList,
  UniformBuffers 
)    FScopedUniformBufferStaticBindings PREPROCESSOR_JOIN(UniformBuffers, __LINE__){ RHICmdList, UniformBuffers }

Typedef Documentation

◆ FRHIRecordBundleComputeDispatchCallback

◆ FRHIRecordBundleGraphicsDispatchCallback

Enumeration Type Documentation

◆ ERayTracingBindingType

Enumerator
HitGroup 
CallableShader 
MissShader 

◆ ERayTracingLocalShaderBindingType

Enumerator
Persistent 
Transient 
Clear 
Validation 

◆ ERHISubmitFlags

enum class ERHISubmitFlags
strong
Enumerator
None 
SubmitToGPU 
DeleteResources 
FlushRHIThread 
EndFrame 
EnableBypass 
DisableBypass 

◆ ERHIThreadMode

enum class ERHIThreadMode
strong
Enumerator
None 
DedicatedThread 
Tasks 

Function Documentation

◆ CSV_DECLARE_CATEGORY_MODULE_EXTERN() [1/2]

CSV_DECLARE_CATEGORY_MODULE_EXTERN ( RHI_API  ,
RHITFlushes   
)

◆ CSV_DECLARE_CATEGORY_MODULE_EXTERN() [2/2]

CSV_DECLARE_CATEGORY_MODULE_EXTERN ( RHI_API  ,
RHITStalls   
)

◆ DECLARE_STATS_GROUP()

DECLARE_STATS_GROUP ( TEXT("RHICmdList")  ,
STATGROUP_RHICMDLIST  ,
STATCAT_Advanced   
)

◆ ENUM_CLASS_FLAGS()

ENUM_CLASS_FLAGS ( ERHISubmitFlags  )

◆ ExecuteSetComputePipelineState()

RHI_API FRHIComputePipelineState * ExecuteSetComputePipelineState ( FComputePipelineState ComputePipelineState)
extern

◆ ExecuteSetGraphicsPipelineState()

RHI_API FRHIGraphicsPipelineState * ExecuteSetGraphicsPipelineState ( class FGraphicsPipelineState GraphicsPipelineState)
extern

◆ FindComputePipelineState()

RHI_API FComputePipelineState * FindComputePipelineState ( FRHIComputeShader ComputeShader,
bool  bVerifyUse = true 
)
extern

◆ FindGraphicsPipelineState()

RHI_API FGraphicsPipelineState * FindGraphicsPipelineState ( const FGraphicsPipelineStateInitializer Initializer,
bool  bVerifyUse = true 
)
extern

◆ FRHICOMMAND_MACRO() [1/59]

FRHICOMMAND_MACRO ( FRHICommandBeginRenderPass  )

◆ FRHICOMMAND_MACRO() [2/59]

FRHICOMMAND_MACRO ( FRHICommandBeginRenderQuery  )

◆ FRHICOMMAND_MACRO() [3/59]

FRHICOMMAND_MACRO ( FRHICommandBeginSpecificUAVOverlap  )

◆ FRHICOMMAND_MACRO() [4/59]

FRHICOMMAND_MACRO ( FRHICommandBeginTransitions  )

◆ FRHICOMMAND_MACRO() [5/59]

FRHICOMMAND_MACRO ( FRHICommandBeginUAVOverlap  )

◆ FRHICOMMAND_MACRO() [6/59]

◆ FRHICOMMAND_MACRO() [7/59]

FRHICOMMAND_MACRO ( FRHICommandBeginUpdateMultiFrameUAV  )

◆ FRHICOMMAND_MACRO() [8/59]

FRHICOMMAND_MACRO ( FRHICommandClearShaderBindingTable  )

◆ FRHICOMMAND_MACRO() [9/59]

FRHICOMMAND_MACRO ( FRHICommandClearUAVFloat  )

◆ FRHICOMMAND_MACRO() [10/59]

FRHICOMMAND_MACRO ( FRHICommandClearUAVUint  )

◆ FRHICOMMAND_MACRO() [11/59]

FRHICOMMAND_MACRO ( FRHICommandCommitShaderBindingTable  )

◆ FRHICOMMAND_MACRO() [12/59]

FRHICOMMAND_MACRO ( FRHICommandCopyBufferRegion  )

◆ FRHICOMMAND_MACRO() [13/59]

FRHICOMMAND_MACRO ( FRHICommandCopyTexture  )

◆ FRHICOMMAND_MACRO() [14/59]

FRHICOMMAND_MACRO ( FRHICommandCopyToStagingBuffer  )

◆ FRHICOMMAND_MACRO() [15/59]

FRHICOMMAND_MACRO ( FRHICommandDispatchComputeShader  )

◆ FRHICOMMAND_MACRO() [16/59]

FRHICOMMAND_MACRO ( FRHICommandDispatchComputeShaderBundle  )

◆ FRHICOMMAND_MACRO() [17/59]

FRHICOMMAND_MACRO ( FRHICommandDispatchGraphicsShaderBundle  )

◆ FRHICOMMAND_MACRO() [18/59]

◆ FRHICOMMAND_MACRO() [19/59]

FRHICOMMAND_MACRO ( FRHICommandDispatchIndirectMeshShader  )

◆ FRHICOMMAND_MACRO() [20/59]

FRHICOMMAND_MACRO ( FRHICommandDispatchMeshShader  )

◆ FRHICOMMAND_MACRO() [21/59]

FRHICOMMAND_MACRO ( FRHICommandDrawIndexedIndirect  )

◆ FRHICOMMAND_MACRO() [22/59]

FRHICOMMAND_MACRO ( FRHICommandDrawIndexedPrimitive  )

◆ FRHICOMMAND_MACRO() [23/59]

FRHICOMMAND_MACRO ( FRHICommandDrawIndexedPrimitiveIndirect  )

◆ FRHICOMMAND_MACRO() [24/59]

FRHICOMMAND_MACRO ( FRHICommandDrawPrimitive  )

◆ FRHICOMMAND_MACRO() [25/59]

FRHICOMMAND_MACRO ( FRHICommandDrawPrimitiveIndirect  )

◆ FRHICOMMAND_MACRO() [26/59]

FRHICOMMAND_MACRO ( FRHICommandEndDrawingViewport  )

◆ FRHICOMMAND_MACRO() [27/59]

FRHICOMMAND_MACRO ( FRHICommandEndRenderPass  )

◆ FRHICOMMAND_MACRO() [28/59]

FRHICOMMAND_MACRO ( FRHICommandEndRenderQuery  )

◆ FRHICOMMAND_MACRO() [29/59]

FRHICOMMAND_MACRO ( FRHICommandEndSpecificUAVOverlap  )

◆ FRHICOMMAND_MACRO() [30/59]

FRHICOMMAND_MACRO ( FRHICommandEndTransitions  )

◆ FRHICOMMAND_MACRO() [31/59]

FRHICOMMAND_MACRO ( FRHICommandEndUAVOverlap  )

◆ FRHICOMMAND_MACRO() [32/59]

FRHICOMMAND_MACRO ( FRHICommandEndUpdateMultiFrameResource  )

◆ FRHICOMMAND_MACRO() [33/59]

FRHICOMMAND_MACRO ( FRHICommandEndUpdateMultiFrameUAV  )

◆ FRHICOMMAND_MACRO() [34/59]

◆ FRHICOMMAND_MACRO() [35/59]

FRHICOMMAND_MACRO ( FRHICommandNextSubpass  )

◆ FRHICOMMAND_MACRO() [36/59]

FRHICOMMAND_MACRO ( FRHICommandPostExternalCommandsReset  )

◆ FRHICOMMAND_MACRO() [37/59]

FRHICOMMAND_MACRO ( FRHICommandRayTraceDispatch  )

◆ FRHICOMMAND_MACRO() [38/59]

FRHICOMMAND_MACRO ( FRHICommandResourceTransition  )

◆ FRHICOMMAND_MACRO() [39/59]

FRHICOMMAND_MACRO ( FRHICommandResummarizeHTile  )

◆ FRHICOMMAND_MACRO() [40/59]

FRHICOMMAND_MACRO ( FRHICommandSetAsyncComputeBudget  )

◆ FRHICOMMAND_MACRO() [41/59]

◆ FRHICOMMAND_MACRO() [42/59]

FRHICOMMAND_MACRO ( FRHICommandSetBlendFactor  )

◆ FRHICOMMAND_MACRO() [43/59]

FRHICOMMAND_MACRO ( FRHICommandSetComputeBudget  )

◆ FRHICOMMAND_MACRO() [44/59]

FRHICOMMAND_MACRO ( FRHICommandSetComputePipelineState  )

◆ FRHICOMMAND_MACRO() [45/59]

FRHICOMMAND_MACRO ( FRHICommandSetDepthBounds  )

◆ FRHICOMMAND_MACRO() [46/59]

FRHICOMMAND_MACRO ( FRHICommandSetGraphicsPipelineState  )

◆ FRHICOMMAND_MACRO() [47/59]

FRHICOMMAND_MACRO ( FRHICommandSetScissorRect  )

◆ FRHICOMMAND_MACRO() [48/59]

FRHICOMMAND_MACRO ( FRHICommandSetShaderRootConstants  )

◆ FRHICOMMAND_MACRO() [49/59]

FRHICOMMAND_MACRO ( FRHICommandSetShadingRate  )

◆ FRHICOMMAND_MACRO() [50/59]

FRHICOMMAND_MACRO ( FRHICommandSetStaticUniformBuffer  )

◆ FRHICOMMAND_MACRO() [51/59]

FRHICOMMAND_MACRO ( FRHICommandSetStaticUniformBuffers  )

◆ FRHICOMMAND_MACRO() [52/59]

FRHICOMMAND_MACRO ( FRHICommandSetStencilRef  )

◆ FRHICOMMAND_MACRO() [53/59]

FRHICOMMAND_MACRO ( FRHICommandSetStereoViewport  )

◆ FRHICOMMAND_MACRO() [54/59]

FRHICOMMAND_MACRO ( FRHICommandSetStreamSource  )

◆ FRHICOMMAND_MACRO() [55/59]

FRHICOMMAND_MACRO ( FRHICommandSetTrackedAccess  )

◆ FRHICOMMAND_MACRO() [56/59]

◆ FRHICOMMAND_MACRO() [57/59]

FRHICOMMAND_MACRO ( FRHICommandSetViewport  )

◆ FRHICOMMAND_MACRO() [58/59]

FRHICOMMAND_MACRO ( FRHICommandWriteGPUFence  )

◆ FRHICOMMAND_MACRO() [59/59]

FRHICOMMAND_MACRO ( FRHIGpuHangCommandListCorruption  )

◆ FRHICOMMAND_MACRO_TPL() [1/2]

FRHICOMMAND_MACRO_TPL ( TRHIShader  ,
FRHICommandSetShaderParameters   
)

◆ FRHICOMMAND_MACRO_TPL() [2/2]

FRHICOMMAND_MACRO_TPL ( TRHIShader  ,
FRHICommandSetShaderUnbinds   
)

◆ FRHICOMMAND_UNNAMED() [1/4]

FRHICOMMAND_UNNAMED ( FRHICommandBindAccelerationStructureMemory  )

◆ FRHICOMMAND_UNNAMED() [2/4]

FRHICOMMAND_UNNAMED ( FRHICommandBuildAccelerationStructures  )

◆ FRHICOMMAND_UNNAMED() [3/4]

◆ FRHICOMMAND_UNNAMED() [4/4]

◆ GetComputePipelineState()

RHI_API FComputePipelineState * GetComputePipelineState ( FRHIComputeCommandList RHICmdList,
FRHIComputeShader ComputeShader,
bool  bVerifyUse = true 
)
extern

◆ GetGraphicsPipelineState()

RHI_API FGraphicsPipelineState * GetGraphicsPipelineState ( FRHICommandList RHICmdList,
const FGraphicsPipelineStateInitializer Initializer,
bool  bVerifyUse = true 
)
extern

◆ GetRHIComputePipelineState()

RHI_API FRHIComputePipelineState * GetRHIComputePipelineState ( FComputePipelineState PipelineState)
extern

◆ GetRHIRayTracingPipelineState()

RHI_API FRHIRayTracingPipelineState * GetRHIRayTracingPipelineState ( FRayTracingPipelineState PipelineState)
extern

◆ GetRHIRayTracingPipelineStateMaxLocalBindingDataSize()

RHI_API uint32 GetRHIRayTracingPipelineStateMaxLocalBindingDataSize ( FRayTracingPipelineState PipelineState)
extern

◆ GetRHIWorkGraphPipelineState()

RHI_API FRHIWorkGraphPipelineState * GetRHIWorkGraphPipelineState ( FWorkGraphPipelineState PipelineState)
extern

◆ IsRunningRHIInDedicatedThread()

bool IsRunningRHIInDedicatedThread ( )
inline

Whether the RHI commands are being run on a dedicated thread other than the render thread

◆ IsRunningRHIInSeparateThread()

bool IsRunningRHIInSeparateThread ( )
inline

Whether the RHI commands are being run in a thread other than the render thread

◆ IsRunningRHIInTaskThread()

bool IsRunningRHIInTaskThread ( )
inline

Whether the RHI commands are being run on a dedicated thread other than the render thread

◆ RHIAsyncCreateTexture2D()

FTextureRHIRef RHIAsyncCreateTexture2D ( uint32  SizeX,
uint32  SizeY,
uint8  Format,
uint32  NumMips,
ETextureCreateFlags  Flags,
ERHIAccess  InResourceState,
void **  InitialMipData,
uint32  NumInitialMips,
const TCHAR DebugName,
FGraphEventRef OutCompletionEvent 
)
inline

◆ RHIAsyncReallocateTexture2D()

FTextureRHIRef RHIAsyncReallocateTexture2D ( FRHITexture Texture2D,
int32  NewMipCount,
int32  NewSizeX,
int32  NewSizeY,
FThreadSafeCounter RequestStatus 
)
inline

◆ RHIBeginUpdateTexture3D()

FUpdateTexture3DData RHIBeginUpdateTexture3D ( FRHITexture Texture,
uint32  MipIndex,
const struct FUpdateTextureRegion3D UpdateRegion 
)
inline

◆ RHIBindDebugLabelName() [1/3]

void RHIBindDebugLabelName ( FRHIBuffer Buffer,
const TCHAR Name 
)
inline

◆ RHIBindDebugLabelName() [2/3]

void RHIBindDebugLabelName ( FRHITexture Texture,
const TCHAR Name 
)
inline

◆ RHIBindDebugLabelName() [3/3]

void RHIBindDebugLabelName ( FRHIUnorderedAccessView UnorderedAccessViewRHI,
const TCHAR Name 
)
inline

◆ RHICalcRayTracingClusterOperationSize()

FORCEINLINE FRayTracingClusterOperationSize RHICalcRayTracingClusterOperationSize ( const FRayTracingClusterOperationInitializer Initializer)

◆ RHICalcRayTracingGeometrySize()

FRayTracingAccelerationStructureSize RHICalcRayTracingGeometrySize ( const FRayTracingGeometryInitializer Initializer)
inline

◆ RHICancelAsyncReallocateTexture2D()

ETextureReallocationStatus RHICancelAsyncReallocateTexture2D ( FRHITexture Texture2D,
bool  bBlockUntilCompleted 
)
inline

◆ RHIClearTextureReference()

void RHIClearTextureReference ( FRHITextureReference TextureRef)
inline

◆ RHICreateRayTracingGeometry()

FRayTracingGeometryRHIRef RHICreateRayTracingGeometry ( const FRayTracingGeometryInitializer Initializer)
inline

◆ RHICreateShaderLibrary()

FRHIShaderLibraryRef RHICreateShaderLibrary ( EShaderPlatform  Platform,
FString const &  FilePath,
FString const &  Name 
)
inline

◆ RHICreateTexture()

FTextureRHIRef RHICreateTexture ( const FRHITextureCreateDesc CreateDesc)
inline

◆ RHICreateTextureReference()

FTextureReferenceRHIRef RHICreateTextureReference ( FRHITexture InReferencedTexture = nullptr)
inline

◆ RHIEndMultiUpdateTexture3D()

void RHIEndMultiUpdateTexture3D ( TArray< FUpdateTexture3DData > &  UpdateDataArray)
inline

◆ RHIEndUpdateTexture3D()

void RHIEndUpdateTexture3D ( FUpdateTexture3DData UpdateData)
inline

◆ RHIFinalizeAsyncReallocateTexture2D()

ETextureReallocationStatus RHIFinalizeAsyncReallocateTexture2D ( FRHITexture Texture2D,
bool  bBlockUntilCompleted 
)
inline

◆ RHIFlushResources()

void RHIFlushResources ( )
inline

◆ RHIGetDefaultResourceState() [1/2]

RHI_API ERHIAccess RHIGetDefaultResourceState ( EBufferUsageFlags  InUsage,
bool  bInHasInitialData 
)
extern

Get the best default resource state for the given buffer creation flags

◆ RHIGetDefaultResourceState() [2/2]

RHI_API ERHIAccess RHIGetDefaultResourceState ( ETextureCreateFlags  InUsage,
bool  bInHasInitialData 
)
extern

Get the best default resource state for the given texture creation flags

◆ RHIGetNativeCommandBuffer()

void * RHIGetNativeCommandBuffer ( )
inline

◆ RHIGetNativeComputeQueue()

void * RHIGetNativeComputeQueue ( )
inline

◆ RHIGetNativeDevice()

void * RHIGetNativeDevice ( )
inline

◆ RHIGetNativeGraphicsQueue()

void * RHIGetNativeGraphicsQueue ( )
inline

◆ RHIGetNativeInstance()

void * RHIGetNativeInstance ( )
inline

◆ RHIGetNativePhysicalDevice()

void * RHIGetNativePhysicalDevice ( )
inline

◆ RHIGetRayTracingGeometryOfflineMetadata()

FRayTracingAccelerationStructureOfflineMetadata RHIGetRayTracingGeometryOfflineMetadata ( const FRayTracingGeometryOfflineDataHeader OfflineDataHeader)
inline

◆ RHILockStagingBuffer() [1/2]

void * RHILockStagingBuffer ( FRHIStagingBuffer StagingBuffer,
FRHIGPUFence Fence,
uint32  Offset,
uint32  Size 
)
inline

◆ RHILockStagingBuffer() [2/2]

void * RHILockStagingBuffer ( FRHIStagingBuffer StagingBuffer,
uint32  Offset,
uint32  Size 
)
inline

◆ RHILockTexture2D()

void * RHILockTexture2D ( FRHITexture Texture,
uint32  MipIndex,
EResourceLockMode  LockMode,
uint32 DestStride,
bool  bLockWithinMiptail,
bool  bFlushRHIThread = true,
uint64 OutLockedByteCount = nullptr 
)
inline

◆ RHILockTexture2DArray()

void * RHILockTexture2DArray ( FRHITexture Texture,
uint32  TextureIndex,
uint32  MipIndex,
EResourceLockMode  LockMode,
uint32 DestStride,
bool  bLockWithinMiptail 
)
inline

◆ RHILockTextureCubeFace()

void * RHILockTextureCubeFace ( FRHITexture Texture,
uint32  FaceIndex,
uint32  ArrayIndex,
uint32  MipIndex,
EResourceLockMode  LockMode,
uint32 DestStride,
bool  bLockWithinMiptail 
)
inline

◆ RHIResourceLifetimeAddRef()

void RHI_API RHIResourceLifetimeAddRef ( int32  NumRefs = 1)

Takes a reference to defer deletion of RHI resources.

◆ RHIResourceLifetimeReleaseRef()

void RHI_API RHIResourceLifetimeReleaseRef ( FRHICommandListImmediate RHICmdList,
int32  NumRefs = 1 
)

Releases a reference to defer deletion of RHI resources. If the reference count hits zero, resources are queued for deletion.

◆ RHIUnlockStagingBuffer()

void RHIUnlockStagingBuffer ( FRHIStagingBuffer StagingBuffer)
inline

◆ RHIUnlockTexture2D()

void RHIUnlockTexture2D ( FRHITexture Texture,
uint32  MipIndex,
bool  bLockWithinMiptail,
bool  bFlushRHIThread = true 
)
inline

◆ RHIUnlockTexture2DArray()

void RHIUnlockTexture2DArray ( FRHITexture Texture,
uint32  TextureIndex,
uint32  MipIndex,
bool  bLockWithinMiptail 
)
inline

◆ RHIUnlockTextureCubeFace()

void RHIUnlockTextureCubeFace ( FRHITexture Texture,
uint32  FaceIndex,
uint32  ArrayIndex,
uint32  MipIndex,
bool  bLockWithinMiptail 
)
inline

◆ RHIUpdateTexture2D()

void RHIUpdateTexture2D ( FRHITexture Texture,
uint32  MipIndex,
const struct FUpdateTextureRegion2D UpdateRegion,
uint32  SourcePitch,
const uint8 SourceData 
)
inline

◆ RHIUpdateTexture3D()

void RHIUpdateTexture3D ( FRHITexture Texture,
uint32  MipIndex,
const struct FUpdateTextureRegion3D UpdateRegion,
uint32  SourceRowPitch,
uint32  SourceDepthPitch,
const uint8 SourceData 
)
inline

◆ RHIUpdateTextureReference()

void RHIUpdateTextureReference ( FRHITextureReference TextureRef,
FRHITexture NewTexture 
)
inline

◆ RHIVirtualTextureSetFirstMipInMemory()

void RHIVirtualTextureSetFirstMipInMemory ( FRHITexture Texture,
uint32  FirstMip 
)
inline

◆ RHIVirtualTextureSetFirstMipVisible()

void RHIVirtualTextureSetFirstMipVisible ( FRHITexture Texture,
uint32  FirstMip 
)
inline

◆ UE_TRACE_CHANNEL_EXTERN()

UE_TRACE_CHANNEL_EXTERN ( RHICommandsChannel  ,
RHI_API   
)

Variable Documentation

◆ CPrio_SceneRenderingTask

RHI_API FAutoConsoleTaskPriority CPrio_SceneRenderingTask
extern

◆ CVarRHICmdWidth

RHI_API TAutoConsoleVariable<int32> CVarRHICmdWidth
extern

◆ GInputLatencyTime

RHI_API uint64 GInputLatencyTime
extern

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

◆ GPendingRHIThreadMode

RHI_API TOptional<ERHIThreadMode> GPendingRHIThreadMode
extern

◆ GRenderThreadIdle

RHI_API uint32 GRenderThreadIdle[ERenderThreadIdleTypes::Num]
extern

Accumulates how many cycles the renderthread has been idle.

◆ GRHICommandList

RHI_API FRHICommandListExecutor GRHICommandList
extern