UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FRHIGPUFence Class Referenceabstract

#include <RHIResources.h>

+ Inheritance diagram for FRHIGPUFence:

Public Member Functions

 FRHIGPUFence (FName InName)
 
virtual void Clear ()=0
 
virtual bool Poll () const =0
 
virtual bool Poll (FRHIGPUMask GPUMask) const
 
virtual void Wait (FRHICommandListImmediate &RHICmdList, FRHIGPUMask GPUMask) const =0
 
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

FThreadSafeCounter NumPendingWriteCommands
 

Protected Attributes

const FName FenceName
 

Additional Inherited Members

- Protected Member Functions inherited from FRHIResource
virtual RHI_API ~FRHIResource ()
 

Constructor & Destructor Documentation

◆ FRHIGPUFence()

FRHIGPUFence::FRHIGPUFence ( FName  InName)
inline

Member Function Documentation

◆ Clear()

virtual void FRHIGPUFence::Clear ( )
pure virtual

◆ GetFName()

FName FRHIGPUFence::GetFName ( ) const
inline

◆ Poll() [1/2]

virtual bool FRHIGPUFence::Poll ( ) const
pure virtual

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.

Implemented in FMetalGPUFence, FD3D12GPUFence, FOpenGLGPUFence, FVulkanGPUFence, and FD3D11GPUFence.

◆ Poll() [2/2]

virtual bool FRHIGPUFence::Poll ( FRHIGPUMask  GPUMask) const
inlinevirtual

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 in FD3D12GPUFence.

◆ Wait()

virtual void FRHIGPUFence::Wait ( FRHICommandListImmediate RHICmdList,
FRHIGPUMask  GPUMask 
) const
pure virtual

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.

Implemented in FMetalGPUFence, FD3D12GPUFence, FOpenGLGPUFence, FVulkanGPUFence, and FD3D11GPUFence.

Member Data Documentation

◆ FenceName

const FName FRHIGPUFence::FenceName
protected

◆ NumPendingWriteCommands

FThreadSafeCounter FRHIGPUFence::NumPendingWriteCommands

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