UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DynamicBufferAllocator.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*==============================================================================
4DynamicBufferAllocator.h: Classes for allocating transient rendering data.
5==============================================================================*/
6
7#pragma once
8
9#include "Containers/Array.h"
10#include "HAL/PlatformMath.h"
11#include "RHI.h"
12#include "RHIUtilities.h"
13#include "RenderResource.h"
14#include "Async/Mutex.h"
15
17
19{
23
25
26 UE_DEPRECATED(5.3, "Lock now requires a command list.")
28
29 UE_DEPRECATED(5.3, "Lock now requires a command list.")
31
32 void Lock(FRHICommandListBase& RHICmdList)
33 {
34 SubAllocations.Reset();
35 FDynamicReadBuffer::Lock(RHICmdList);
36 }
37
41 void Unlock(FRHICommandListBase& RHICmdList)
42 {
46 }
47};
48
56{
57public:
62 {
67
69
72 : Buffer(NULL)
74 {
75 }
76
78 inline bool IsValid() const
79 {
80 return Buffer != NULL;
81 }
82 };
83
86
91
98
99 UE_DEPRECATED(5.3, "Commit now requires a command list.")
101
104
105protected:
107 RENDERCORE_API virtual void ReleaseRHI() override;
108 RENDERCORE_API void Cleanup();
110
111 template<EPixelFormat Format, typename Type>
113
116
122
125};
126
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define NULL
Definition oodle2base.h:134
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
@ Num
Definition MetalRHIPrivate.h:234
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition DynamicBufferAllocator.h:56
FDynamicReadBufferPool * UInt32BufferPool
Definition DynamicBufferAllocator.h:121
FDynamicReadBufferPool * FloatBufferPool
Definition DynamicBufferAllocator.h:119
RENDERCORE_API FAllocation AllocateFloat(uint32 Num)
Definition DynamicBufferAllocator.cpp:204
FDynamicReadBufferPool * Int32BufferPool
Definition DynamicBufferAllocator.h:120
RENDERCORE_API FGlobalDynamicReadBuffer()
Definition DynamicBufferAllocator.cpp:67
void Commit()
Definition DynamicBufferAllocator.h:100
RENDERCORE_API void Cleanup()
Definition DynamicBufferAllocator.cpp:81
RENDERCORE_API FAllocation AllocateHalf(uint32 Num)
Definition DynamicBufferAllocator.cpp:210
UE::FMutex Mutex
Definition DynamicBufferAllocator.h:114
virtual RENDERCORE_API void InitRHI(FRHICommandListBase &RHICmdList) override
Definition DynamicBufferAllocator.cpp:107
FDynamicReadBufferPool * HalfBufferPool
Definition DynamicBufferAllocator.h:118
size_t TotalAllocatedSinceLastCommit
Definition DynamicBufferAllocator.h:124
RENDERCORE_API bool IsRenderAlarmLoggingEnabled() const
Definition DynamicBufferAllocator.cpp:228
FAllocation AllocateInternal(FDynamicReadBufferPool *BufferPool, uint32 Num)
Definition DynamicBufferAllocator.cpp:117
RENDERCORE_API ~FGlobalDynamicReadBuffer()
Definition DynamicBufferAllocator.cpp:76
RENDERCORE_API FAllocation AllocateInt32(uint32 Num)
Definition DynamicBufferAllocator.cpp:216
FRHICommandListBase * RHICmdList
Definition DynamicBufferAllocator.h:115
virtual RENDERCORE_API void ReleaseRHI() override
Definition DynamicBufferAllocator.cpp:111
RENDERCORE_API FAllocation AllocateUInt32(uint32 Num)
Definition DynamicBufferAllocator.cpp:222
RENDERCORE_API void IncrementTotalAllocations(uint32 Num)
Definition DynamicBufferAllocator.cpp:195
Definition RHICommandList.h:455
Definition RHICommandList.h:4626
static FRHICommandListImmediate & Get()
Definition RHICommandList.h:5522
Definition RHIResources.h:3304
Definition RenderResource.h:37
Definition Array.h:670
Definition Mutex.h:18
Definition DynamicBufferAllocator.h:19
int32 NumFramesUnused
Definition DynamicBufferAllocator.h:22
void Lock()
Definition DynamicBufferAllocator.h:27
void Unlock()
Definition DynamicBufferAllocator.h:30
int32 AllocatedByteCount
Definition DynamicBufferAllocator.h:20
void Unlock(FRHICommandListBase &RHICmdList)
Definition DynamicBufferAllocator.h:41
void Lock(FRHICommandListBase &RHICmdList)
Definition DynamicBufferAllocator.h:32
TArray< FShaderResourceViewRHIRef > SubAllocations
Definition DynamicBufferAllocator.h:24
Definition DynamicBufferAllocator.cpp:42
Definition RHIUtilities.h:560
void Unlock(FRHICommandListBase &RHICmdList)
Definition RHIUtilities.h:599
void Lock(FRHICommandListBase &RHICmdList)
Definition RHIUtilities.h:589
Definition DynamicBufferAllocator.h:62
FDynamicAllocReadBuffer * ReadBuffer
Definition DynamicBufferAllocator.h:66
uint8 * Buffer
Definition DynamicBufferAllocator.h:64
bool IsValid() const
Definition DynamicBufferAllocator.h:78
FAllocation()
Definition DynamicBufferAllocator.h:71
FRHIShaderResourceView * SRV
Definition DynamicBufferAllocator.h:68