35 return Key.RuntimeResourceID * 0xFC6014F9u + Key.PageIndex * 0x58399E77u;
45 return !(*
this ==
Other);
84 UE_DEPRECATED(5.7,
"SubmitFrameStreamingRequests should no longer be called.")
96 return QualityScaleFactor;
101 return MaxStreamingPages;
106 return MaxHierarchyLevels;
111 return NumResources > 0u;
129 static constexpr uint16 INVALID_RESIDENT_PAGE_INDEX = 0xFFFFu;
131 struct FResourcePrefetch
134 uint32 NumFramesUntilRender;
140 uint32 NumGPUStreamingRequests = 0;
141 uint32 NumReadyOrSkippedPages = 0;
142 bool bUpdateActive =
false;
143 bool bBuffersTransitionedToWrite =
false;
158 }
State = EState::None;
165 uint32 RingBufferAllocationSize = 0;
166 uint32 BytesLeftToStream = 0;
172 int32 TotalUpload = 0;
184 struct FRegisteredVirtualPage
189 bool operator==(
const FRegisteredVirtualPage&)
const =
default;
192 struct FResidentVirtualPage
194 uint16 ResidentPageIndex = INVALID_RESIDENT_PAGE_INDEX;
196 bool operator==(
const FResidentVirtualPage&)
const =
default;
199 struct FNewPageRequest
205 struct FRegisteredPage
215 uint8 MaxHierarchyDepth = 0xFF;
220 FFixupChunk* FixupChunk =
nullptr;
221 uint8 MaxHierarchyDepth = 0xFF;
225 FResources* Resources =
nullptr;
231 uint32 bInvalidResource : 1 = 0;
234 bool operator==(
const FRootPageInfo&)
const =
default;
240 FHeapBuffer ClusterPageData;
241 FHeapBuffer Hierarchy;
242 FHeapBuffer ImposterData;
248 uint32 MaxHierarchyLevels = 0;
250 uint32 MaxStreamingPages = 0;
252 uint32 NumInitialRootPages = 0;
253 uint32 PrevNumInitialRootPages = 0;
254 uint32 MaxPendingPages = 0;
255 uint32 MaxPageInstallsPerUpdate = 0;
258 uint32 NumPendingPages = 0;
259 uint32 NextPendingPageIndex = 0;
260 float QualityScaleFactor = 1.0f;
261 bool bClusterPageDataAllocated =
false;
263 uint32 StatNumRootPages = 0;
264 uint32 StatPeakRootPages = 0;
265 uint32 StatVisibleSetSize = 0;
266 uint32 StatPrevUpdateTime = 0;
267 uint32 StatNumAllocatedRootPages = 0;
268 uint32 StatNumHierarchyNodes = 0;
269 uint32 StatPeakHierarchyNodes = 0;
270 float StatStreamingPoolPercentage = 0.0f;
272 uint64 PrevUpdateTick = 0;
308 FAsyncState AsyncState;
311 UE::DerivedData::FRequestOwner* RequestOwner;
326 void AddPendingGPURequests();
327 void AddPendingExplicitRequests();
328 void AddPendingResourcePrefetchRequests();
329 void AddParentRequests();
333 FRootPageInfo* GetRootPage(
uint32 RuntimeResourceID);
334 FResources* GetResources(
uint32 RuntimeResourceID);
338 void RegisterStreamingPage(
uint32 RegisteredPageIndex,
const FPageKey& Key);
339 void UnregisterStreamingPage(
const FPageKey& Key);
341 void MoveToEndOfLRUList(
uint32 RegisteredPageIndex);
346 void VerifyFixupState();
354 void InstallReadyPages(
uint32 NumReadyOrSkippedPages);
359 void ResetStreamingStateCPU();
360 void UpdatePageConfiguration();
365#if NANITE_SANITY_CHECK_STREAMING_REQUESTS
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition BulkData.h:1194
Definition RenderGraphResources.h:1426
Definition RenderGraphResources.h:1321
Definition RenderGraphBuilder.h:49
Definition UnifiedBuffer.h:479
Definition RHICommandList.h:455
Definition RenderResource.h:37
Definition SharedBuffer.h:341
Definition SpanAllocator.h:15
Definition NaniteStreamingManager.h:69
ENGINE_API void EndAsyncUpdate(FRDGBuilder &GraphBuilder)
Definition NaniteStreamingManager.cpp:3058
ENGINE_API bool IsSafeForRendering() const
Definition NaniteStreamingManager.cpp:3130
ENGINE_API FRDGBufferSRV * GetClusterPageDataSRV(FRDGBuilder &GraphBuilder) const
Definition NaniteStreamingManager.cpp:970
ENGINE_API FRDGBuffer * GetStreamingRequestsBuffer(FRDGBuilder &GraphBuilder) const
Definition NaniteStreamingManager.cpp:960
uint32 GetMaxHierarchyLevels() const
Definition NaniteStreamingManager.h:104
ENGINE_API void BeginAsyncUpdate(FRDGBuilder &GraphBuilder)
Definition NaniteStreamingManager.cpp:2293
ENGINE_API uint32 GetStreamingRequestsBufferVersion() const
Definition NaniteStreamingManager.cpp:3159
float GetQualityScaleFactor() const
Definition NaniteStreamingManager.h:94
ENGINE_API void PrefetchResource(const FResources *Resource, uint32 NumFramesUntilRender)
Definition NaniteStreamingManager.cpp:3135
ENGINE_API bool IsAsyncUpdateInProgress()
Definition NaniteStreamingManager.cpp:3125
virtual void InitRHI(FRHICommandListBase &RHICmdList) override
Definition NaniteStreamingManager.cpp:539
ENGINE_API void RequestNanitePages(TArrayView< uint32 > RequestData)
Definition NaniteStreamingManager.cpp:3149
virtual void ReleaseRHI() override
Definition NaniteStreamingManager.cpp:687
ENGINE_API void SubmitFrameStreamingRequests(FRDGBuilder &GraphBuilder)
Definition NaniteStreamingManager.cpp:3121
uint32 GetMaxStreamingPages() const
Definition NaniteStreamingManager.h:99
ENGINE_API FRDGBufferSRV * GetHierarchySRV(FRDGBuilder &GraphBuilder) const
Definition NaniteStreamingManager.cpp:965
FStreamingManager()
Definition NaniteStreamingManager.cpp:532
bool HasResourceEntries() const
Definition NaniteStreamingManager.h:109
TMap< uint32, uint32 > GetAndClearModifiedResources()
Definition NaniteStreamingManager.h:114
ENGINE_API FRDGBufferSRV * GetImposterDataSRV(FRDGBuilder &GraphBuilder) const
Definition NaniteStreamingManager.cpp:975
Definition NaniteStreamingManager.cpp:2022
Definition ArrayView.h:139
Definition RenderResource.h:543
Definition UnrealString.h.inl:34
Definition RefCounting.h:454
Definition SkinnedMeshComponent.h:50
TGlobalResource< FStreamingManager > GStreamingManager
Definition NaniteStreamingManager.cpp:3321
@ Release
Definition PhysicsPublic.h:123
bool operator==(const FCachedAssetKey &A, const FCachedAssetKey &B)
Definition AssetDataMap.h:501
State
Definition PacketHandler.h:88
Definition AdvancedWidgetsModule.cpp:13
Definition NaniteStreamingShared.h:32
Definition NaniteStreamingManager.h:29
bool operator==(const FPageKey &Other) const
Definition NaniteStreamingManager.h:38
bool operator!=(const FPageKey &Other) const
Definition NaniteStreamingManager.h:43
uint32 PageIndex
Definition NaniteStreamingManager.h:31
friend uint32 GetTypeHash(const FPageKey &Key)
Definition NaniteStreamingManager.h:33
bool operator<(const FPageKey &Other) const
Definition NaniteStreamingManager.h:48
uint32 RuntimeResourceID
Definition NaniteStreamingManager.h:30
Definition NaniteResources.h:410
Definition NaniteStreamingManager.h:55
FPageKey Key
Definition NaniteStreamingManager.h:56
bool operator<(const FStreamingRequest &Other) const
Definition NaniteStreamingManager.h:59
uint32 Priority
Definition NaniteStreamingManager.h:57