UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NaniteReadbackManager.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "RHIGPUReadback.h"
7
8class FRDGBuilder;
9class FRDGBuffer;
11
12namespace Nanite
13{
14
16{
17public:
19
21
23 void Unlock();
24
25 void QueueReadback(FRDGBuilder& GraphBuilder);
26
29
30private:
31 struct FReadbackBuffer
32 {
34 uint32 NumElements = 0u;
35 };
36
37 class FBufferSizeManager
38 {
39 public:
40 FBufferSizeManager();
41
42 void Update(uint32 NumRequests);
43 uint32 GetSize();
44
45 private:
46 float CurrentSize;
47 uint32 OverBudgetCounter = 0;
48 uint32 UnderBudgetCounter = 0;
49 };
50
51 TRefCountPtr<FRDGPooledBuffer> RequestsBuffer;
52 TArray<FReadbackBuffer> ReadbackBuffers;
53
54 FReadbackBuffer* LatestBuffer = nullptr;
55 uint32 NumBuffers = 0;
56 uint32 NumPendingBuffers = 0;
57 uint32 NextReadBufferIndex = 0;
58 uint32 BufferVersion = 0;
59
60 FBufferSizeManager BufferSizeManager;
61};
62
63
64} // namespace Nanite
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition RenderGraphResources.h:1321
Definition RenderGraphBuilder.h:49
Definition RenderGraphResources.h:1196
Definition NaniteReadbackManager.h:16
uint32 PrepareRequestsBuffer(FRDGBuilder &GraphBuilder)
Definition NaniteReadbackManager.cpp:76
uint32 GetBufferVersion() const
Definition NaniteReadbackManager.cpp:181
struct FGPUStreamingRequest * LockLatest(uint32 &OutNumStreamingRequestsClamped, uint32 &OutNumStreamingRequests)
Definition NaniteReadbackManager.cpp:94
FRDGBuffer * GetStreamingRequestsBuffer(FRDGBuilder &GraphBuilder) const
Definition NaniteReadbackManager.cpp:176
void QueueReadback(FRDGBuilder &GraphBuilder)
Definition NaniteReadbackManager.cpp:140
void Unlock()
Definition NaniteReadbackManager.cpp:132
Definition Array.h:670
Definition RefCounting.h:454
Definition UniquePtr.h:107
Definition SkinnedMeshComponent.h:50
Definition NaniteStreamingShared.h:32