UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RHICoreStats.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "RHIGlobals.h"
7#include "RHIResources.h"
8#include "RHIStats.h"
9
10namespace UE::RHICore
11{
13 {
15#if STATS
18 {
20 }
22 {
23 switch (Dimension)
24 {
25 default:
27 [[fallthrough]];
29 [[fallthrough]];
32 break;
35 break;
37 [[fallthrough]];
40 break;
41 };
42 }
44 {
46 }
47 else
48 {
49 switch (Dimension)
50 {
51 default:
53 [[fallthrough]];
55 [[fallthrough]];
58 break;
61 break;
63 [[fallthrough]];
66 break;
67 };
68 }
69#endif
70 const int64 AlignedTextureSizeInKB = static_cast<int64>(Align(TextureSizeInBytes, 1024) / 1024);
72
77 );
78
80
82 {
83 FPlatformAtomics::InterlockedAdd((volatile int64*)&GRHIGlobals.StreamingTextureMemorySizeInKB, TextureSizeDeltaInKB);
84 }
85 else
86 {
87 FPlatformAtomics::InterlockedAdd((volatile int64*)&GRHIGlobals.NonStreamingTextureMemorySizeInKB, TextureSizeDeltaInKB);
88 }
89 }
90
95
97 {
98 OutStats.StreamingMemorySize = GRHIGlobals.StreamingTextureMemorySizeInKB * 1024;
99 OutStats.NonStreamingMemorySize = GRHIGlobals.NonStreamingTextureMemorySizeInKB * 1024;
100 OutStats.TexturePoolSize = GRHIGlobals.TexturePoolSize;
101 }
102
142
144 {
145 const int64 BufferSizeDelta = bAllocating ? static_cast<int64>(BufferSize) : -static_cast<int64>(BufferSize);
147 }
148
150 {
151 const int64 BufferSizeDelta = bAllocating ? static_cast<int64>(BufferSize) : -static_cast<int64>(BufferSize);
152
154 FPlatformAtomics::InterlockedAdd((volatile int64*)&GRHIGlobals.UniformBufferMemorySize, BufferSizeDelta);
155 }
156
174}
constexpr T Align(T Val, uint64 Alignment)
Definition AlignmentTemplates.h:18
#define checkNoEntry()
Definition AssertionMacros.h:316
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
#define INC_MEMORY_STAT_BY(StatId, Amount)
Definition Stats.h:700
#define DEC_MEMORY_STAT_BY(StatId, Amount)
Definition Stats.h:705
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
ETextureDimension
Definition RHIDefinitions.h:1081
ETextureCreateFlags
Definition RHIDefinitions.h:1091
FRHIGlobals GRHIGlobals
Definition RHIGlobals.cpp:6
Definition RHIResources.h:819
void FillBaselineTextureMemoryStats(FTextureMemoryStats &OutStats)
Definition RHICoreStats.h:96
void UpdateGlobalUniformBufferStats(int64 BufferSize, bool bAllocating)
Definition RHICoreStats.h:149
void UpdateReservedResourceStatsOnCommit(int64 CommitDelta, bool bBuffer, bool bCommitting)
Definition RHICoreStats.h:157
void UpdateGlobalBufferStats(const FRHIBufferDesc &BufferDesc, int64 BufferSizeDelta)
Definition RHICoreStats.h:103
void UpdateGlobalTextureStats(ETextureCreateFlags TextureFlags, ETextureDimension Dimension, uint64 TextureSizeInBytes, bool bOnlyStreamableTexturesInTexturePool, bool bAllocating)
Definition RHICoreStats.h:12
Definition RHIResources.h:1321
volatile uint64 StreamingTextureMemorySizeInKB
Definition RHIGlobals.h:388
volatile uint64 NonStreamingTextureMemorySizeInKB
Definition RHIGlobals.h:391
volatile uint64 BufferMemorySize
Definition RHIGlobals.h:403
int64 TexturePoolSize
Definition RHIGlobals.h:394
volatile uint64 UniformBufferMemorySize
Definition RHIGlobals.h:406
Definition RHIResources.h:1689
ETextureDimension Dimension
Definition RHIResources.h:1871
ETextureCreateFlags Flags
Definition RHIResources.h:1844
Definition RHIStats.h:12