UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FD3D12GPUFence Class Referencefinal

#include <D3D12Resources.h>

+ Inheritance diagram for FD3D12GPUFence:

Public Member Functions

 FD3D12GPUFence (FName InName)
 
virtual void Clear () override
 
virtual bool Poll () const override
 
virtual bool Poll (FRHIGPUMask GPUMask) const override
 
virtual void Wait (FRHICommandListImmediate &RHICmdList, FRHIGPUMask GPUMask) const override
 
- Public Member Functions inherited from FRHIGPUFence
 FRHIGPUFence (FName InName)
 
FName GetFName () const
 
- Public Member Functions inherited from FRHIResource
RHI_API FRHIResource (ERHIResourceType InResourceType)
 
uint32 AddRef () const
 
uint32 Release () const
 
uint32 GetRefCount () const
 
bool IsValid () const
 
void DisableLifetimeExtension ()
 
ERHIResourceType GetType () const
 
FName GetOwnerName () const
 
void SetOwnerName (FName InOwnerName)
 

Public Attributes

TArray< FD3D12SyncPointRef, TInlineAllocator< MAX_NUM_GPUS > > SyncPoints
 
- Public Attributes inherited from FRHIGPUFence
FThreadSafeCounter NumPendingWriteCommands
 

Additional Inherited Members

- Protected Member Functions inherited from FRHIResource
virtual RHI_API ~FRHIResource ()
 
- Protected Attributes inherited from FRHIGPUFence
const FName FenceName
 

Constructor & Destructor Documentation

◆ FD3D12GPUFence()

FD3D12GPUFence::FD3D12GPUFence ( FName  InName)

Member Function Documentation

◆ Clear()

void FD3D12GPUFence::Clear ( )
overridevirtual

Implements FRHIGPUFence.

◆ Poll() [1/2]

bool FD3D12GPUFence::Poll ( ) const
overridevirtual

Poll the fence to see if the GPU has signaled it.

Returns
True if and only if the GPU fence has been inserted and the GPU has signaled the fence.

CAUTION: Do not call poll in a loop to block until completion. Some platform RHIs will not signal fences unless the RHI thread continues to make progress and submit GPU work.

To block for completion, call Wait(), which can only be done from the render thread.

Use Poll() only to check a fence. If it returns false, continue to do useful work and recheck later, ideally on the following frame.

Implements FRHIGPUFence.

◆ Poll() [2/2]

bool FD3D12GPUFence::Poll ( FRHIGPUMask  GPUMask) const
overridevirtual

Poll on a subset of the GPUs that this fence supports.

CAUTION: Do not call poll in a loop to block until completion. Some platform RHIs will not signal fences unless the RHI thread continues to make progress and submit GPU work.

To block for completion, call Wait(), which can only be done from the render thread.

Use Poll() only to check a fence. If it returns false, continue to do useful work and recheck later, ideally on the following frame.

Reimplemented from FRHIGPUFence.

◆ Wait()

void FD3D12GPUFence::Wait ( FRHICommandListImmediate RHICmdList,
FRHIGPUMask  GPUMask 
) const
overridevirtual

Blocks the caller until the fence has passed on the GPU. Can only be called from the render thread.

CAUTION: Use of this function may cause a hitch if the fence is not yet signalled and we have to wait for the GPU to catch up. Rendering code should be written to avoid immediately waiting on GPU fences.

Implements FRHIGPUFence.

Member Data Documentation

◆ SyncPoints

TArray<FD3D12SyncPointRef, TInlineAllocator<MAX_NUM_GPUS> > FD3D12GPUFence::SyncPoints

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