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

#include <RHIGPUReadback.h>

+ Inheritance diagram for FRHIGPUMemoryReadback:

Public Member Functions

 FRHIGPUMemoryReadback (FName RequestName)
 
virtual ~FRHIGPUMemoryReadback ()
 
bool IsReady ()
 
bool IsReady (FRHIGPUMask GPUMask)
 
void Wait (FRHICommandListImmediate &RHICmdList, FRHIGPUMask GPUMask) const
 
virtual void EnqueueCopy (FRHICommandList &RHICmdList, FRHIBuffer *SourceBuffer, uint32 NumBytes=0)
 
virtual void EnqueueCopy (FRHICommandList &RHICmdList, FRHITexture *SourceTexture, const FIntVector &SourcePosition, uint32 SourceSlice, const FIntVector &Size)
 
void EnqueueCopy (FRHICommandList &RHICmdList, FRHITexture *SourceTexture, FResolveRect Rect=FResolveRect(), uint32 SourceSlice=0)
 
virtual voidLock (uint32 NumBytes)=0
 
virtual void Unlock ()=0
 
const FRHIGPUMaskGetLastCopyGPUMask () const
 
FName GetName () const
 

Protected Attributes

FGPUFenceRHIRef Fence
 
FRHIGPUMask LastCopyGPUMask
 
uint32 LastLockGPUIndex
 

Detailed Description

FRHIGPUMemoryReadback: Represents a memory readback request scheduled with CopyToStagingBuffer Wraps a staging buffer with a FRHIGPUFence for synchronization.

Constructor & Destructor Documentation

◆ FRHIGPUMemoryReadback()

FRHIGPUMemoryReadback::FRHIGPUMemoryReadback ( FName  RequestName)
inline

◆ ~FRHIGPUMemoryReadback()

virtual FRHIGPUMemoryReadback::~FRHIGPUMemoryReadback ( )
inlinevirtual

Member Function Documentation

◆ EnqueueCopy() [1/3]

virtual void FRHIGPUMemoryReadback::EnqueueCopy ( FRHICommandList RHICmdList,
FRHIBuffer SourceBuffer,
uint32  NumBytes = 0 
)
inlinevirtual

Copy the current state of the resource to the readback data.

Parameters
RHICmdListThe command list to enqueue the copy request on.
SourceBufferThe buffer holding the source data.
NumBytesThe number of bytes to copy. If 0, this will copy the entire buffer.

Reimplemented in FRHIGPUTextureReadback, and FRHIGPUBufferReadback.

◆ EnqueueCopy() [2/3]

virtual void FRHIGPUMemoryReadback::EnqueueCopy ( FRHICommandList RHICmdList,
FRHITexture SourceTexture,
const FIntVector SourcePosition,
uint32  SourceSlice,
const FIntVector Size 
)
inlinevirtual

◆ EnqueueCopy() [3/3]

void FRHIGPUMemoryReadback::EnqueueCopy ( FRHICommandList RHICmdList,
FRHITexture SourceTexture,
FResolveRect  Rect = FResolveRect(),
uint32  SourceSlice = 0 
)
inline

◆ GetLastCopyGPUMask()

const FRHIGPUMask & FRHIGPUMemoryReadback::GetLastCopyGPUMask ( ) const
inline

◆ GetName()

FName FRHIGPUMemoryReadback::GetName ( ) const
inline

◆ IsReady() [1/2]

bool FRHIGPUMemoryReadback::IsReady ( )
inline

Indicates if the data is in place and ready to be read.

◆ IsReady() [2/2]

bool FRHIGPUMemoryReadback::IsReady ( FRHIGPUMask  GPUMask)
inline

Indicates if the data is in place and ready to be read on a subset of GPUs.

◆ Lock()

virtual void * FRHIGPUMemoryReadback::Lock ( uint32  NumBytes)
pure virtual

Returns the CPU accessible pointer that backs this staging buffer.

Parameters
NumBytesThe maximum number of bytes the host will read from this pointer.
Returns
A CPU accessible pointer to the backing buffer.

Implemented in FRHIGPUBufferReadback, and FRHIGPUTextureReadback.

◆ Unlock()

virtual void FRHIGPUMemoryReadback::Unlock ( )
pure virtual

Signals that the host is finished reading from the backing buffer.

Implemented in FRHIGPUBufferReadback, and FRHIGPUTextureReadback.

◆ Wait()

void FRHIGPUMemoryReadback::Wait ( FRHICommandListImmediate RHICmdList,
FRHIGPUMask  GPUMask 
) const
inline

Member Data Documentation

◆ Fence

FGPUFenceRHIRef FRHIGPUMemoryReadback::Fence
protected

◆ LastCopyGPUMask

FRHIGPUMask FRHIGPUMemoryReadback::LastCopyGPUMask
protected

◆ LastLockGPUIndex

uint32 FRHIGPUMemoryReadback::LastLockGPUIndex
protected

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