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

#include <RHICommandList.h>

+ Inheritance diagram for FRHIComputeCommandList_RecursiveHazardous:

Public Member Functions

RHI_API FRHIComputeCommandList_RecursiveHazardous (IRHIComputeContext *Context)
 
RHI_API ~FRHIComputeCommandList_RecursiveHazardous ()
 
- Public Member Functions inherited from FRHIComputeCommandList
 FRHIComputeCommandList (FRHIGPUMask GPUMask=FRHIGPUMask::All())
 
 FRHIComputeCommandList (FRHICommandListBase &&Other)
 
template<typename LAMBDA >
void EnqueueLambda (const TCHAR *LambdaName, LAMBDA &&Lambda)
 
template<typename LAMBDA >
void EnqueueLambda_NoMarker (LAMBDA &&Lambda)
 
template<typename LAMBDA >
void EnqueueLambda (LAMBDA &&Lambda)
 
FRHIComputeShaderGetBoundComputeShader () const
 
void SetStaticUniformBuffers (const FUniformBufferStaticBindings &UniformBuffers)
 
void SetStaticUniformBuffer (FUniformBufferStaticSlot Slot, FRHIUniformBuffer *Buffer)
 
void SetUniformBufferDynamicOffset (FUniformBufferStaticSlot Slot, uint32 Offset)
 
void SetShaderParameters (FRHIComputeShader *InShader, TConstArrayView< uint8 > InParametersData, TConstArrayView< FRHIShaderParameter > InParameters, TConstArrayView< FRHIShaderParameterResource > InResourceParameters, TConstArrayView< FRHIShaderParameterResource > InBindlessParameters)
 
void SetBatchedShaderParameters (FRHIComputeShader *InShader, FRHIBatchedShaderParameters &InBatchedParameters)
 
void SetShaderUnbinds (FRHIComputeShader *InShader, TConstArrayView< FRHIShaderParameterUnbind > InUnbinds)
 
void SetBatchedShaderUnbinds (FRHIComputeShader *InShader, FRHIBatchedShaderUnbinds &InBatchedUnbinds)
 
void SetComputePipelineState (FComputePipelineState *ComputePipelineState, FRHIComputeShader *ComputeShader)
 
void SetAsyncComputeBudget (EAsyncComputeBudget Budget)
 
void SetComputeBudget (ESyncComputeBudget Budget)
 
void DispatchComputeShader (uint32 ThreadGroupCountX, uint32 ThreadGroupCountY, uint32 ThreadGroupCountZ)
 
void DispatchIndirectComputeShader (FRHIBuffer *ArgumentBuffer, uint32 ArgumentOffset)
 
void ClearUAVFloat (FRHIUnorderedAccessView *UnorderedAccessViewRHI, const FVector4f &Values)
 
void ClearUAVUint (FRHIUnorderedAccessView *UnorderedAccessViewRHI, const FUintVector4 &Values)
 
void BeginTransitions (TArrayView< const FRHITransition * > Transitions)
 
void EndTransitions (TArrayView< const FRHITransition * > Transitions)
 
RHI_API void Transition (TArrayView< const FRHITransitionInfo > Infos, ERHITransitionCreateFlags CreateFlags=ERHITransitionCreateFlags::None)
 
void BeginTransition (const FRHITransition *Transition)
 
void EndTransition (const FRHITransition *Transition)
 
void Transition (const FRHITransitionInfo &Info, ERHITransitionCreateFlags CreateFlags=ERHITransitionCreateFlags::None)
 
RHI_API void Transition (TArrayView< const FRHITransitionInfo > Infos, ERHIPipeline SrcPipelines, ERHIPipeline DstPipelines, ERHITransitionCreateFlags TransitionCreateFlags=ERHITransitionCreateFlags::None)
 
void SetTrackedAccess (TArrayView< const FRHITrackedAccessInfo > Infos)
 
void SetTrackedAccess (TArrayView< const FRHITransitionInfo > Infos, ERHIPipeline PipelinesAfter)
 
void SetShaderRootConstants (const FUint32Vector4 &Constants)
 
void SetComputeShaderRootConstants (const FUint32Vector4 &Constants)
 
void DispatchComputeShaderBundle (FRHIShaderBundle *ShaderBundle, FRHIBuffer *RecordArgBuffer, TConstArrayView< FRHIShaderParameterResource > SharedBindlessParameters, TConstArrayView< FRHIShaderBundleComputeDispatch > Dispatches, bool bEmulated)
 
void DispatchComputeShaderBundle (TFunction< void(FRHICommandDispatchComputeShaderBundle &)> &&RecordCallback)
 
void DispatchGraphicsShaderBundle (FRHIShaderBundle *ShaderBundle, FRHIBuffer *RecordArgBuffer, const FRHIShaderBundleGraphicsState &BundleState, TConstArrayView< FRHIShaderParameterResource > SharedBindlessParameters, TConstArrayView< FRHIShaderBundleGraphicsDispatch > Dispatches, bool bEmulated)
 
void DispatchGraphicsShaderBundle (TFunction< void(FRHICommandDispatchGraphicsShaderBundle &)> &&RecordCallback)
 
void BeginUAVOverlap ()
 
void EndUAVOverlap ()
 
void BeginUAVOverlap (FRHIUnorderedAccessView *UAV)
 
void EndUAVOverlap (FRHIUnorderedAccessView *UAV)
 
void BeginUAVOverlap (TArrayView< FRHIUnorderedAccessView *const > UAVs)
 
void EndUAVOverlap (TArrayView< FRHIUnorderedAccessView *const > UAVs)
 
void SubmitCommandsHint ()
 
void CopyToStagingBuffer (FRHIBuffer *SourceBuffer, FRHIStagingBuffer *DestinationStagingBuffer, uint32 Offset, uint32 NumBytes)
 
void WriteGPUFence (FRHIGPUFence *Fence)
 
void SetGPUMask (FRHIGPUMask InGPUMask)
 
void TransferResources (TConstArrayView< FTransferResourceParams > Params)
 
void TransferResourceSignal (TConstArrayView< FTransferResourceFenceData * > FenceDatas, FRHIGPUMask SrcGPUMask)
 
void TransferResourceWait (TConstArrayView< FTransferResourceFenceData * > FenceDatas)
 
void CrossGPUTransfer (TConstArrayView< FTransferResourceParams > Params, TConstArrayView< FCrossGPUTransferFence * > PreTransfer, TConstArrayView< FCrossGPUTransferFence * > PostTransfer)
 
void CrossGPUTransferSignal (TConstArrayView< FTransferResourceParams > Params, TConstArrayView< FCrossGPUTransferFence * > PreTransfer)
 
void CrossGPUTransferWait (TConstArrayView< FCrossGPUTransferFence * > SyncPoints)
 
void RayTraceDispatch (FRayTracingPipelineState *Pipeline, FRHIRayTracingShader *RayGenShader, FRHIShaderBindingTable *SBT, const FRayTracingShaderBindings &GlobalResourceBindings, uint32 Width, uint32 Height)
 
RHI_API void RayTraceDispatch (FRayTracingPipelineState *Pipeline, FRHIRayTracingShader *RayGenShader, FRHIShaderBindingTable *SBT, FRHIBatchedShaderParameters &GlobalResourceBindings, uint32 Width, uint32 Height)
 
void RayTraceDispatchIndirect (FRayTracingPipelineState *Pipeline, FRHIRayTracingShader *RayGenShader, FRHIShaderBindingTable *SBT, const FRayTracingShaderBindings &GlobalResourceBindings, FRHIBuffer *ArgumentBuffer, uint32 ArgumentOffset)
 
RHI_API void RayTraceDispatchIndirect (FRayTracingPipelineState *Pipeline, FRHIRayTracingShader *RayGenShader, FRHIShaderBindingTable *SBT, FRHIBatchedShaderParameters &GlobalResourceBindings, FRHIBuffer *ArgumentBuffer, uint32 ArgumentOffset)
 
FORCEINLINE_DEBUGGABLE void ExecuteMultiIndirectClusterOperation (const FRayTracingClusterOperationParams &Params)
 
RHI_API void BuildAccelerationStructure (FRHIRayTracingGeometry *Geometry)
 
RHI_API void BuildAccelerationStructures (TConstArrayView< FRayTracingGeometryBuildParams > Params)
 
void BuildAccelerationStructures (TConstArrayView< FRayTracingGeometryBuildParams > Params, const FRHIBufferRange &ScratchBufferRange)
 
void BuildAccelerationStructure (const FRayTracingSceneBuildParams &SceneBuildParams)
 
void BuildAccelerationStructures (TConstArrayView< FRayTracingSceneBuildParams > Params)
 
void BindAccelerationStructureMemory (FRHIRayTracingScene *Scene, FRHIBuffer *Buffer, uint32 BufferOffset)
 
void PostExternalCommandsReset ()
 
- Public Member Functions inherited from FRHICommandListBase
 FRHICommandListBase (FRHICommandListBase const &)=delete
 
 FRHICommandListBase (FRHICommandListBase &&Other)=default
 
RHI_API ~FRHICommandListBase ()
 
bool IsImmediate () const
 
FRHICommandListImmediateGetAsImmediate ()
 
const int32 GetUsedMemory () const
 
bool AllowParallelTranslate () const
 
RHI_API void AddDispatchPrerequisite (const FGraphEventRef &Prereq)
 
RHI_API void FinishRecording ()
 
voidAlloc (int64 AllocSize, int64 Alignment)
 
voidAllocCopy (const void *InSourceData, int64 AllocSize, int64 Alignment)
 
template<typename T >
T * Alloc ()
 
template<typename T >
const TArrayView< T > AllocArrayUninitialized (uint32 Num)
 
template<typename T >
const TArrayView< T > AllocArray (TConstArrayView< T > InArray)
 
TCHARAllocString (const TCHAR *Name)
 
voidAllocCommand (int32 AllocSize, int32 Alignment)
 
template<typename TCmd >
voidAllocCommand ()
 
template<typename LAMBDA >
void EnqueueLambda (const TCHAR *LambdaName, LAMBDA &&Lambda)
 
template<typename LAMBDA >
void EnqueueLambda (LAMBDA &&Lambda)
 
template<typename LAMBDA >
void EnqueueLambdaMultiPipe (ERHIPipeline Pipelines, EThreadFence ThreadFence, const TCHAR *LambdaName, LAMBDA &&Lambda)
 
bool HasCommands () const
 
bool IsExecuting () const
 
bool IsBottomOfPipe () const
 
bool IsTopOfPipe () const
 
bool IsGraphics () const
 
bool IsAsyncCompute () const
 
ERHIPipeline GetPipeline () const
 
ERHIPipeline GetPipelines () const
 
IRHICommandContextGetContext ()
 
IRHIComputeContextGetComputeContext ()
 
IRHIUploadContextGetUploadContext ()
 
bool Bypass () const
 
bool IsSubCommandList () const
 
RHI_API void TransitionInternal (TConstArrayView< FRHITransitionInfo > Infos, ERHITransitionCreateFlags CreateFlags=ERHITransitionCreateFlags::None)
 
void TransitionInternal (const FRHITransitionInfo &Info, ERHITransitionCreateFlags CreateFlags=ERHITransitionCreateFlags::None)
 
RHI_API ERHIPipeline SwitchPipeline (ERHIPipeline Pipeline)
 
FRHIGPUMask GetGPUMask () const
 
bool IsRecursive () const
 
bool IsOutsideRenderPass () const
 
bool IsInsideRenderPass () const
 
bool IsInsideComputePass () const
 
RHI_API FGraphEventRef RHIThreadFence (bool bSetLockFence=false)
 
voidLockBuffer (FRHIBuffer *Buffer, uint32 Offset, uint32 SizeRHI, EResourceLockMode LockMode)
 
void UnlockBuffer (FRHIBuffer *Buffer)
 
voidLockBufferMGPU (FRHIBuffer *Buffer, uint32 GPUIndex, uint32 Offset, uint32 SizeRHI, EResourceLockMode LockMode)
 
void UnlockBufferMGPU (FRHIBuffer *Buffer, uint32 GPUIndex)
 
FRHIBufferInitializer CreateBufferInitializer (const FRHIBufferCreateDesc &CreateDesc)
 
FBufferRHIRef CreateBuffer (const FRHIBufferCreateDesc &CreateDesc)
 
PRAGMA_DISABLE_DEPRECATION_WARNINGS FBufferRHIRef CreateNullBuffer (ERHIAccess ResourceState, FRHIResourceCreateInfo &CreateInfo)
 
FBufferRHIRef CreateBuffer (uint32 Size, EBufferUsageFlags Usage, uint32 Stride, ERHIAccess ResourceState, FRHIResourceCreateInfo &CreateInfo)
 
FBufferRHIRef CreateVertexBuffer (uint32 Size, EBufferUsageFlags Usage, ERHIAccess ResourceState, FRHIResourceCreateInfo &CreateInfo)
 
FBufferRHIRef CreateVertexBuffer (uint32 Size, EBufferUsageFlags Usage, FRHIResourceCreateInfo &CreateInfo)
 
FBufferRHIRef CreateStructuredBuffer (uint32 Stride, uint32 Size, EBufferUsageFlags Usage, ERHIAccess ResourceState, FRHIResourceCreateInfo &CreateInfo)
 
FBufferRHIRef CreateStructuredBuffer (uint32 Stride, uint32 Size, EBufferUsageFlags Usage, FRHIResourceCreateInfo &CreateInfo)
 
FBufferRHIRef CreateIndexBuffer (uint32 Stride, uint32 Size, EBufferUsageFlags Usage, ERHIAccess ResourceState, FRHIResourceCreateInfo &CreateInfo)
 
FBufferRHIRef CreateIndexBuffer (uint32 Stride, uint32 Size, EBufferUsageFlags Usage, FRHIResourceCreateInfo &CreateInfo)
 
PRAGMA_ENABLE_DEPRECATION_WARNINGS void UpdateUniformBuffer (FRHIUniformBuffer *UniformBufferRHI, const void *Contents)
 
void UpdateStreamSourceSlot (FRHIStreamSourceSlot *StreamSourceSlotRHI, FRHIBuffer *BufferRHI)
 
void UpdateTexture2D (FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion2D &UpdateRegion, uint32 SourcePitch, const uint8 *SourceData)
 
FRHITextureInitializer CreateTextureInitializer (const FRHITextureCreateDesc &CreateDesc)
 
FTextureRHIRef CreateTexture (const FRHITextureCreateDesc &CreateDesc)
 
void UpdateFromBufferTexture2D (FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion2D &UpdateRegion, uint32 SourcePitch, FRHIBuffer *Buffer, uint32 BufferOffset)
 
void UpdateTexture3D (FRHITexture *Texture, uint32 MipIndex, const struct FUpdateTextureRegion3D &UpdateRegion, uint32 SourceRowPitch, uint32 SourceDepthPitch, const uint8 *SourceData)
 
FTextureReferenceRHIRef CreateTextureReference (FRHITexture *InReferencedTexture=nullptr)
 
RHI_API void UpdateTextureReference (FRHITextureReference *TextureRef, FRHITexture *NewTexture)
 
FShaderResourceViewRHIRef CreateShaderResourceView (FRHIBuffer *Buffer, FRHIViewDesc::FBufferSRV::FInitializer const &ViewDesc)
 
FShaderResourceViewRHIRef CreateShaderResourceView (FRHITexture *Texture, FRHIViewDesc::FTextureSRV::FInitializer const &ViewDesc)
 
FUnorderedAccessViewRHIRef CreateUnorderedAccessView (FRHIBuffer *Buffer, FRHIViewDesc::FBufferUAV::FInitializer const &ViewDesc)
 
FUnorderedAccessViewRHIRef CreateUnorderedAccessView (FRHITexture *Texture, FRHIViewDesc::FTextureUAV::FInitializer const &ViewDesc)
 
FShaderResourceViewRHIRef CreateShaderResourceView (const FShaderResourceViewInitializer &Initializer)
 
FUnorderedAccessViewRHIRef CreateUnorderedAccessView (FRHIBuffer *Buffer, bool bUseUAVCounter, bool bAppendBuffer)
 
FUnorderedAccessViewRHIRef CreateUnorderedAccessView (FRHIBuffer *Buffer, uint8 Format)
 
FUnorderedAccessViewRHIRef CreateUnorderedAccessView (FRHITexture *Texture, uint32 MipLevel=0, uint16 FirstArraySlice=0, uint16 NumArraySlices=0)
 
FUnorderedAccessViewRHIRef CreateUnorderedAccessView (FRHITexture *Texture, uint32 MipLevel, uint8 Format, uint16 FirstArraySlice=0, uint16 NumArraySlices=0)
 
FShaderResourceViewRHIRef CreateShaderResourceView (FRHIBuffer *Buffer)
 
FShaderResourceViewRHIRef CreateShaderResourceView (FRHIBuffer *Buffer, uint32 Stride, uint8 Format)
 
FShaderResourceViewRHIRef CreateShaderResourceView (FRHITexture *Texture, const FRHITextureSRVCreateInfo &CreateInfo)
 
FShaderResourceViewRHIRef CreateShaderResourceView (FRHITexture *Texture, uint8 MipLevel)
 
FShaderResourceViewRHIRef CreateShaderResourceView (FRHITexture *Texture, uint8 MipLevel, uint8 NumMipLevels, EPixelFormat Format)
 
FShaderResourceViewRHIRef CreateShaderResourceViewWriteMask (FRHITexture *Texture2DRHI)
 
FShaderResourceViewRHIRef CreateShaderResourceViewFMask (FRHITexture *Texture2DRHI)
 
FRHIResourceCollectionRef CreateResourceCollection (TConstArrayView< FRHIResourceCollectionMember > InMembers)
 
void UpdateResourceCollection (FRHIResourceCollection *InResourceCollection, uint32 InStartIndex, TConstArrayView< FRHIResourceCollectionMember > InMemberUpdates)
 
FRayTracingGeometryRHIRef CreateRayTracingGeometry (const FRayTracingGeometryInitializer &Initializer)
 
FShaderBindingTableRHIRef CreateRayTracingShaderBindingTable (const FRayTracingShaderBindingTableInitializer &Initializer)
 
void ReplaceResources (TArray< FRHIResourceReplaceInfo > &&ReplaceInfos)
 
void BindDebugLabelName (FRHITexture *Texture, const TCHAR *Name)
 
void BindDebugLabelName (FRHIBuffer *Buffer, const TCHAR *Name)
 
void BindDebugLabelName (FRHIUnorderedAccessView *UnorderedAccessViewRHI, const TCHAR *Name)
 
FRHIBatchedShaderParametersGetScratchShaderParameters ()
 
FRHIBatchedShaderUnbindsGetScratchShaderUnbinds ()
 
bool NeedsShaderUnbinds () const
 
bool NeedsExtraTransitions () const
 
bool SetAllowExtraTransitions (bool NewState)
 
FRHIBatchedShaderParametersAllocatorCreateBatchedShaderParameterAllocator (ERHIBatchedShaderParameterAllocatorPageSize PageSize)
 
void Stats_AddDraw ()
 
void Stats_AddDrawAndPrimitives (EPrimitiveType PrimitiveType, uint32 NumPrimitives)
 
TStaticArray< void *, MAX_NUM_GPUS > & GetQueryBatchData (ERenderQueryType QueryType)
 

Additional Inherited Members

- Public Types inherited from FRHICommandListBase
enum class  EThreadFence { Enabled , Disabled }
 
- Static Public Member Functions inherited from FRHIComputeCommandList
static FRHIComputeCommandListGet (FRHICommandListBase &RHICmdList)
 
- Protected Member Functions inherited from FRHIComputeCommandList
void OnBoundShaderChanged (FRHIComputeShader *InBoundComputeShaderRHI)
 
 FRHIComputeCommandList (FRHIGPUMask GPUMask, bool bImmediate)
 
- Protected Member Functions inherited from FRHICommandListBase
RHI_API FRHICommandListBase (FRHIGPUMask InGPUMask, bool bInImmediate)
 
RHI_API void ActivatePipelines (ERHIPipeline Pipelines)
 
RHI_API void InsertParallelRenderPass_Base (TSharedPtr< FRHIParallelRenderPassInfo > const &InInfo, TArray< FRHISubCommandList * > &&SubCommandLists)
 
FMemStackBaseGetAllocator ()
 
void ValidateBoundShader (FRHIVertexShader *ShaderRHI)
 
void ValidateBoundShader (FRHIPixelShader *ShaderRHI)
 
void ValidateBoundShader (FRHIGeometryShader *ShaderRHI)
 
void ValidateBoundShader (FRHIComputeShader *ShaderRHI)
 
void ValidateBoundShader (FRHIWorkGraphShader *ShaderRHI)
 
void ValidateBoundShader (FRHIMeshShader *ShaderRHI)
 
void ValidateBoundShader (FRHIAmplificationShader *ShaderRHI)
 
void ValidateBoundShader (FRHIGraphicsShader *ShaderRHI)
 
void ValidateShaderParameters (const FRHIBatchedShaderParameters &ShaderParameters)
 
void ValidateShaderBundleComputeDispatch (TConstArrayView< FRHIShaderBundleComputeDispatch > Dispatches)
 
void CacheActiveRenderTargets (const FRHIRenderPassInfo &Info)
 
void IncrementSubpass ()
 
void ResetSubpass (ESubpassHint SubpassHint)
 
void AddPendingBufferUpload (FRHIBuffer *InBuffer)
 
void RemovePendingBufferUpload (FRHIBuffer *InBuffer)
 
void AddPendingTextureUpload (FRHITexture *InTexture)
 
void RemovePendingTextureUpload (FRHITexture *InTexture)
 
- Protected Attributes inherited from FRHICommandListBase
FMemStackBase MemManager
 
FRHICommandBaseRoot = nullptr
 
FRHICommandBase ** CommandLink = nullptr
 
IRHICommandContextGraphicsContext = nullptr
 
IRHIComputeContextComputeContext = nullptr
 
IRHIUploadContextUploadContext = nullptr
 
FRHIContextArray Contexts { InPlace, nullptr }
 
uint32 NumCommands = 0
 
bool bExecuting = false
 
bool bAllowParallelTranslate = true
 
bool bUsesSetTrackedAccess = false
 
bool bUsesShaderBundles = false
 
bool bUsesLockFence = false
 
bool bAllowExtraTransitions = true
 
ERHIPipeline ActivePipelines = ERHIPipeline::None
 
struct FRHICommandRHIThreadFenceLastLockFenceCommand = nullptr
 
TArray< FRHICommandListBase * > AttachedCmdLists
 
TSharedPtr< FRHIParallelRenderPassInfoSubRenderPassInfo
 
TSharedPtr< FRHIParallelRenderPassInfoParallelRenderPassBegin
 
TSharedPtr< FRHIParallelRenderPassInfoParallelRenderPassEnd
 
FGraphEventRef DispatchEvent
 
FShaderParameterState ShaderParameterState
 
FRHIBatchedShaderUnbinds ScratchShaderUnbinds
 
struct FRHICommandListBase::FPersistentState PersistentState
 
FRHIDrawStats DrawStats {}
 
TArray< FRHIBuffer * > PendingBufferUploads
 
TArray< FRHITexture * > PendingTextureUploads
 

Constructor & Destructor Documentation

◆ FRHIComputeCommandList_RecursiveHazardous()

FRHIComputeCommandList_RecursiveHazardous::FRHIComputeCommandList_RecursiveHazardous ( IRHIComputeContext Context)

◆ ~FRHIComputeCommandList_RecursiveHazardous()

FRHIComputeCommandList_RecursiveHazardous::~FRHIComputeCommandList_RecursiveHazardous ( )

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