UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RHIStats.h File Reference
#include "Containers/StaticArray.h"
#include "MultiGPU.h"
#include "RHIDefinitions.h"
#include "RHIGlobals.h"
#include "Stats/Stats.h"

Go to the source code of this file.

Classes

struct  FTextureMemoryStats
 
struct  FRHIDrawStatsCategory
 
struct  FRHIDrawStats
 
struct  FRHIDrawStats::FPerCategory
 
struct  FRHIDrawStats::FPerGPU
 

Macros

#define RHI_DRAW_CALL_STATS(Type, Verts, Prims, Instances)
 
#define RHI_DRAW_CALL_INC()   do { StatEvent.NumDraws++; GetExecutingCommandList().Stats_AddDraw(); } while (false)
 
#define RHI_DISPATCH_CALL_INC()   do { StatEvent.NumDispatches++; } while (false)
 

Functions

 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("Render Target 2D Memory"), STAT_RenderTargetMemory2D, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("Render Target 3D Memory"), STAT_RenderTargetMemory3D, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("Render Target Cube Memory"), STAT_RenderTargetMemoryCube, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("UAV Texture Memory"), STAT_UAVTextureMemory, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("Texture 2D Memory"), STAT_TextureMemory2D, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("Texture 3D Memory"), STAT_TextureMemory3D, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("Texture Cube Memory"), STAT_TextureMemoryCube, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("Uniform Buffer Memory"), STAT_UniformBufferMemory, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("Index Buffer Memory"), STAT_IndexBufferMemory, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("Vertex Buffer Memory"), STAT_VertexBufferMemory, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("RayTracing Acceleration Structure Memory"), STAT_RTAccelerationStructureMemory, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("Structured Buffer Memory"), STAT_StructuredBufferMemory, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("Byte Address Buffer Memory"), STAT_ByteAddressBufferMemory, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("Draw Indirect Buffer Memory"), STAT_DrawIndirectBufferMemory, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("Misc Buffer Memory"), STAT_MiscBufferMemory, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("Reserved Buffer Memory (Uncommitted)"), STAT_ReservedUncommittedBufferMemory, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("Reserved Buffer Memory (Committed)"), STAT_ReservedCommittedBufferMemory, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("Reserved Texture Memory (Uncommitted)"), STAT_ReservedUncommittedTextureMemory, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("Reserved Texture Memory (Committed)"), STAT_ReservedCommittedTextureMemory, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN (TEXT("Sampler Descriptors Allocated"), STAT_SamplerDescriptorsAllocated, STATGROUP_RHI, RHI_API)
 
 DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN (TEXT("Resource Descriptors Allocated"), STAT_ResourceDescriptorsAllocated, STATGROUP_RHI, RHI_API)
 
 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("Bindless Sampler Heap"), STAT_BindlessSamplerHeapMemory, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_MEMORY_STAT_POOL_EXTERN (TEXT("Bindless Resource Heap"), STAT_BindlessResourceHeapMemory, STATGROUP_RHI, FPlatformMemory::MCR_GPU, RHI_API)
 
 DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN (TEXT("Bindless Sampler Descriptors Allocated"), STAT_BindlessSamplerDescriptorsAllocated, STATGROUP_RHI, RHI_API)
 
 DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN (TEXT("Bindless Resource Descriptors Allocated"), STAT_BindlessResourceDescriptorsAllocated, STATGROUP_RHI, RHI_API)
 

Variables

RHI_API int32 GNumDrawCallsRHI [MAX_NUM_GPUS]
 
RHI_API int32 GNumPrimitivesDrawnRHI [MAX_NUM_GPUS]
 

Macro Definition Documentation

◆ RHI_DISPATCH_CALL_INC

#define RHI_DISPATCH_CALL_INC ( )    do { StatEvent.NumDispatches++; } while (false)

◆ RHI_DRAW_CALL_INC

#define RHI_DRAW_CALL_INC ( )    do { StatEvent.NumDraws++; GetExecutingCommandList().Stats_AddDraw(); } while (false)

◆ RHI_DRAW_CALL_STATS

#define RHI_DRAW_CALL_STATS (   Type,
  Verts,
  Prims,
  Instances 
)
Value:
do \
{ \
StatEvent.NumDraws++; \
StatEvent.NumPrimitives += Prims * FMath::Max(1u, Instances); \
StatEvent.NumVertices += Verts * FMath::Max(1u, Instances); \
GetExecutingCommandList().Stats_AddDrawAndPrimitives(Type, Prims); \
} while (false)
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127

Function Documentation

◆ DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN() [1/4]

DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN ( TEXT("Bindless Resource Descriptors Allocated" ,
STAT_BindlessResourceDescriptorsAllocated  ,
STATGROUP_RHI  ,
RHI_API   
)

◆ DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN() [2/4]

DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN ( TEXT("Bindless Sampler Descriptors Allocated" ,
STAT_BindlessSamplerDescriptorsAllocated  ,
STATGROUP_RHI  ,
RHI_API   
)

◆ DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN() [3/4]

DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN ( TEXT("Resource Descriptors Allocated" ,
STAT_ResourceDescriptorsAllocated  ,
STATGROUP_RHI  ,
RHI_API   
)

◆ DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN() [4/4]

DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN ( TEXT("Sampler Descriptors Allocated" ,
STAT_SamplerDescriptorsAllocated  ,
STATGROUP_RHI  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [1/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("Bindless Resource Heap" ,
STAT_BindlessResourceHeapMemory  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [2/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("Bindless Sampler Heap" ,
STAT_BindlessSamplerHeapMemory  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [3/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("Byte Address Buffer Memory" ,
STAT_ByteAddressBufferMemory  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [4/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("Draw Indirect Buffer Memory" ,
STAT_DrawIndirectBufferMemory  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [5/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("Index Buffer Memory" ,
STAT_IndexBufferMemory  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [6/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("Misc Buffer Memory" ,
STAT_MiscBufferMemory  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [7/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("RayTracing Acceleration Structure Memory" ,
STAT_RTAccelerationStructureMemory  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [8/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("Render Target 2D Memory" ,
STAT_RenderTargetMemory2D  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [9/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("Render Target 3D Memory" ,
STAT_RenderTargetMemory3D  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [10/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("Render Target Cube Memory" ,
STAT_RenderTargetMemoryCube  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [11/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("Reserved Buffer Memory (Committed)")  ,
STAT_ReservedCommittedBufferMemory  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [12/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("Reserved Buffer Memory (Uncommitted)")  ,
STAT_ReservedUncommittedBufferMemory  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [13/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("Reserved Texture Memory (Committed)")  ,
STAT_ReservedCommittedTextureMemory  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [14/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("Reserved Texture Memory (Uncommitted)")  ,
STAT_ReservedUncommittedTextureMemory  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [15/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("Structured Buffer Memory" ,
STAT_StructuredBufferMemory  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [16/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("Texture 2D Memory" ,
STAT_TextureMemory2D  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [17/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("Texture 3D Memory" ,
STAT_TextureMemory3D  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [18/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("Texture Cube Memory" ,
STAT_TextureMemoryCube  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [19/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("UAV Texture Memory" ,
STAT_UAVTextureMemory  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [20/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("Uniform Buffer Memory" ,
STAT_UniformBufferMemory  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

◆ DECLARE_MEMORY_STAT_POOL_EXTERN() [21/21]

DECLARE_MEMORY_STAT_POOL_EXTERN ( TEXT("Vertex Buffer Memory" ,
STAT_VertexBufferMemory  ,
STATGROUP_RHI  ,
FPlatformMemory::MCR_GPU  ,
RHI_API   
)

Variable Documentation

◆ GNumDrawCallsRHI

RHI_API int32 GNumDrawCallsRHI[MAX_NUM_GPUS]
extern

◆ GNumPrimitivesDrawnRHI

RHI_API int32 GNumPrimitivesDrawnRHI[MAX_NUM_GPUS]
extern